--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleNatives.java Fri Oct 28 11:18:54 2016 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleNatives.java Tue Nov 01 17:20:45 2016 -0700
@@ -379,11 +379,13 @@
name, fixMethodType(callerClass, type), appendixResult);
}
}
+ } catch (Error e) {
+ // Pass through an Error, including say StackOverflowError or
+ // OutOfMemoryError
+ throw e;
} catch (Throwable ex) {
- if (ex instanceof LinkageError)
- throw (LinkageError) ex;
- else
- throw new LinkageError(ex.getMessage(), ex);
+ // Wrap anything else in LinkageError
+ throw new LinkageError(ex.getMessage(), ex);
}
throw new LinkageError("no such method "+defc.getName()+"."+name+type);
}