2
0
Эх сурвалжийг харах

[java] fix npe in CallStack.exceptionStack() (fixes #8322)

Aleksandr Kuzmenko 6 жил өмнө
parent
commit
dee7452fe3

+ 16 - 12
std/haxe/CallStack.hx

@@ -195,18 +195,22 @@ class CallStack {
 			return makeStack(s);
 		#elseif java
 			var stack = [];
-			for ( el in #if jvm jvm.Exception #else java.internal.Exceptions#end.currentException().getStackTrace() ) {
-				var className = el.getClassName();
-				var methodName = el.getMethodName();
-				var fileName = el.getFileName();
-				var lineNumber = el.getLineNumber();
-				var method = Method( className, methodName );
-				if ( fileName != null || lineNumber >= 0 ) {
-					stack.push( FilePos( method, fileName, lineNumber ) );
-				}
-				else {
-					stack.push( method );
-				}
+			switch(#if jvm jvm.Exception #else java.internal.Exceptions#end.currentException()) {
+				case null:
+				case current:
+					for ( el in current.getStackTrace() ) {
+						var className = el.getClassName();
+						var methodName = el.getMethodName();
+						var fileName = el.getFileName();
+						var lineNumber = el.getLineNumber();
+						var method = Method( className, methodName );
+						if ( fileName != null || lineNumber >= 0 ) {
+							stack.push( FilePos( method, fileName, lineNumber ) );
+						}
+						else {
+							stack.push( method );
+						}
+					}
 			}
 			return stack;
 		#elseif cs

+ 7 - 0
tests/misc/projects/Issue8322/Main.hx

@@ -0,0 +1,7 @@
+import haxe.CallStack;
+
+class Main {
+	static function main() {
+		CallStack.exceptionStack();
+	}
+}

+ 3 - 0
tests/misc/projects/Issue8322/compile.hxml

@@ -0,0 +1,3 @@
+-main Main
+-java bin
+-cmd java -jar bin/Main.jar