diff options
author | kshefov <none@none> | 2015-01-26 17:42:18 +0300 |
---|---|---|
committer | kshefov <none@none> | 2015-01-26 17:42:18 +0300 |
commit | 7c9dc27960e914483b8ffb8180a474909b2416af (patch) | |
tree | 51582f8c1974be411bee243608120c479455bba6 /test/java/lang/invoke/LFCaching/LambdaFormTestCase.java | |
parent | 2ac998d105eb45a094db9c5aa9edb88cec7006a3 (diff) | |
download | jdk8u_jdk-7c9dc27960e914483b8ffb8180a474909b2416af.tar.gz |
8067344: Adjust java/lang/invoke/LFCaching/LFGarbageCollectedTest.java for recent changes in java.lang.invoke
Reviewed-by: psandoz, coffeys
Diffstat (limited to 'test/java/lang/invoke/LFCaching/LambdaFormTestCase.java')
-rw-r--r-- | test/java/lang/invoke/LFCaching/LambdaFormTestCase.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java b/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java index 7b6ce2eeff..5d037cabcf 100644 --- a/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java +++ b/test/java/lang/invoke/LFCaching/LambdaFormTestCase.java @@ -24,8 +24,11 @@ import com.oracle.testlibrary.jsr292.Helper; import com.sun.management.HotSpotDiagnosticMXBean; +import java.lang.invoke.MethodHandle; import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; +import java.lang.ref.Reference; +import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Collection; import java.util.List; @@ -42,8 +45,6 @@ import jdk.testlibrary.TimeLimitedRunner; */ public abstract class LambdaFormTestCase { - private final static String METHOD_HANDLE_CLASS_NAME = "java.lang.invoke.MethodHandle"; - private final static String INTERNAL_FORM_METHOD_NAME = "internalForm"; private static final double ITERATIONS_TO_CODE_CACHE_SIZE_RATIO = 45 / (128.0 * 1024 * 1024); private static final long TIMEOUT = Helper.IS_THOROUGH ? 0L : (long) (Utils.adjustTimeout(Utils.DEFAULT_TEST_TIMEOUT) * 0.9); @@ -53,6 +54,8 @@ public abstract class LambdaFormTestCase { * used to get a lambda form from a method handle. */ protected final static Method INTERNAL_FORM; + protected final static Field DEBUG_NAME; + protected final static Field REF_FIELD; private static final List<GarbageCollectorMXBean> gcInfo; private static long gcCount() { @@ -61,9 +64,14 @@ public abstract class LambdaFormTestCase { static { try { - Class mhClass = Class.forName(METHOD_HANDLE_CLASS_NAME); - INTERNAL_FORM = mhClass.getDeclaredMethod(INTERNAL_FORM_METHOD_NAME); + INTERNAL_FORM = MethodHandle.class.getDeclaredMethod("internalForm"); INTERNAL_FORM.setAccessible(true); + + DEBUG_NAME = Class.forName("java.lang.invoke.LambdaForm").getDeclaredField("debugName"); + DEBUG_NAME.setAccessible(true); + + REF_FIELD = Reference.class.getDeclaredField("referent"); + REF_FIELD.setAccessible(true); } catch (Exception ex) { throw new Error("Unexpected exception: ", ex); } @@ -146,6 +154,10 @@ public abstract class LambdaFormTestCase { testCase.getTestMethod().name); testCase.doTest(); System.err.println("PASSED"); + } catch (OutOfMemoryError e) { + // Don't swallow OOME so a heap dump can be created. + System.err.println("FAILED"); + throw e; } catch (Throwable t) { t.printStackTrace(); System.err.println("FAILED"); |