diff --git a/classpath/java/lang/Throwable.java b/classpath/java/lang/Throwable.java index 8660e7e5b9..d4330f7bf4 100644 --- a/classpath/java/lang/Throwable.java +++ b/classpath/java/lang/Throwable.java @@ -7,7 +7,7 @@ public class Throwable { public Throwable(String message, Throwable cause) { this.message = message; - this.trace = trace(0); + this.trace = trace(1); this.cause = cause; } diff --git a/src/vm.cpp b/src/vm.cpp index 1dae025c20..83b1173a3e 100644 --- a/src/vm.cpp +++ b/src/vm.cpp @@ -3892,8 +3892,12 @@ run(Thread* t) unsigned base = sp - parameterCount; if (methodFlags(t, code) & ACC_NATIVE) { + frame = makeFrame(t, code, frame, 0, base, 0, false); + object r = invokeNative(t, code); + frame = frameNext(t, frame); + if (UNLIKELY(exception)) { goto throw_; }