src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File open Cdiff src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java

src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java

Print this page

        

*** 47,66 **** @Override public Throwable fillInStackTrace() { return this; } ! @Override ! public String toString() { ! return getMessage(); } - private static TranslatedException create(String className, String message) { if (className.equals(TranslatedException.class.getName())) { // Chop the class name when boxing another TranslatedException return new TranslatedException(message); } if (message == null) { return new TranslatedException(className); } return new TranslatedException(className + ": " + message); } --- 47,73 ---- @Override public Throwable fillInStackTrace() { return this; } ! private static Throwable create(String className, String message) { ! // Try create with reflection first. ! try { ! Class<?> cls = Class.forName(className); ! if (message == null) { ! return (Throwable) cls.getConstructor().newInstance(); ! } ! cls.getDeclaredConstructor(String.class); ! return (Throwable) cls.getConstructor(String.class).newInstance(message); ! } catch (Throwable ignore) { } if (className.equals(TranslatedException.class.getName())) { // Chop the class name when boxing another TranslatedException return new TranslatedException(message); } + if (message == null) { return new TranslatedException(className); } return new TranslatedException(className + ": " + message); }
*** 145,155 **** String exceptionClassName = parts[i++]; String exceptionMessage = parts[i++]; Throwable throwable = create(exceptionClassName, exceptionMessage); int stackTraceDepth = Integer.parseInt(parts[i++]); ! StackTraceElement[] suffix = parent == null ? new StackTraceElement[0] : getStackTraceSuffix(); StackTraceElement[] stackTrace = new StackTraceElement[stackTraceDepth + suffix.length]; for (int j = 0; j < stackTraceDepth; j++) { String className = parts[i++]; String methodName = parts[i++]; String fileName = parts[i++]; --- 152,162 ---- String exceptionClassName = parts[i++]; String exceptionMessage = parts[i++]; Throwable throwable = create(exceptionClassName, exceptionMessage); int stackTraceDepth = Integer.parseInt(parts[i++]); ! StackTraceElement[] suffix = getStackTraceSuffix(); StackTraceElement[] stackTrace = new StackTraceElement[stackTraceDepth + suffix.length]; for (int j = 0; j < stackTraceDepth; j++) { String className = parts[i++]; String methodName = parts[i++]; String fileName = parts[i++];
src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File