# HG changeset patch # User thartmann # Date 1517814481 -3600 # Node ID 42a2dc52a4e9434d5fada744a60ab7124a195741 # Parent ca551fa1c8cd0c518792afaf22916ef83a243443 8195731: [Graal] runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperSubTwoPckgs.java intermittently fails with Graal JIT Summary: Print detailed error if class transformation fails. Exclude tests from Graal testing. Reviewed-by: kvn, dholmes, sspitsyn diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformInterfaceAndImplementor.java --- a/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformInterfaceAndImplementor.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformInterfaceAndImplementor.java Mon Feb 05 08:08:01 2018 +0100 @@ -29,6 +29,7 @@ * @library /test/lib /runtime/SharedArchiveFile /testlibrary/jvmti * @requires vm.cds * @requires vm.flavor != "minimal" + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * jdk.jartool/sun.tools.jar * java.management diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperAndSubClasses.java --- a/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperAndSubClasses.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperAndSubClasses.java Mon Feb 05 08:08:01 2018 +0100 @@ -30,6 +30,7 @@ * @library /test/lib /runtime/SharedArchiveFile /testlibrary/jvmti * @requires vm.cds * @requires vm.flavor != "minimal" + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * jdk.jartool/sun.tools.jar * java.management diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperSubTwoPckgs.java --- a/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperSubTwoPckgs.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperSubTwoPckgs.java Mon Feb 05 08:08:01 2018 +0100 @@ -30,6 +30,7 @@ * @library /test/lib /runtime/SharedArchiveFile /testlibrary/jvmti * @requires vm.cds * @requires vm.flavor != "minimal" + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * jdk.jartool/sun.tools.jar * java.management diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/appcds/jvmti/parallelLoad/ParallelLoadAndTransformTest.java --- a/test/hotspot/jtreg/runtime/appcds/jvmti/parallelLoad/ParallelLoadAndTransformTest.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/appcds/jvmti/parallelLoad/ParallelLoadAndTransformTest.java Mon Feb 05 08:08:01 2018 +0100 @@ -30,6 +30,7 @@ * /test/hotspot/jtreg/runtime/appcds/test-classes /test/hotspot/jtreg/runtime/appcds/jvmti * /test/hotspot/jtreg/testlibrary/jvmti * @requires vm.cds + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * java.management * jdk.jartool/sun.tools.jar diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformInterfaceImplementorAppCDS.java --- a/test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformInterfaceImplementorAppCDS.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformInterfaceImplementorAppCDS.java Mon Feb 05 08:08:01 2018 +0100 @@ -34,6 +34,7 @@ * /test/hotspot/jtreg/runtime/appcds/customLoader/test-classes * @requires vm.cds * @requires vm.flavor != "minimal" + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * jdk.jartool/sun.tools.jar * java.management diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformSuperSubAppCDS.java --- a/test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformSuperSubAppCDS.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformSuperSubAppCDS.java Mon Feb 05 08:08:01 2018 +0100 @@ -34,6 +34,7 @@ * /test/hotspot/jtreg/runtime/appcds/customLoader/test-classes * @requires vm.cds * @requires vm.flavor != "minimal" + * @requires !vm.graal.enabled * @modules java.base/jdk.internal.misc * jdk.jartool/sun.tools.jar * java.management diff -r ca551fa1c8cd -r 42a2dc52a4e9 test/hotspot/jtreg/testlibrary/jvmti/TransformerAgent.java --- a/test/hotspot/jtreg/testlibrary/jvmti/TransformerAgent.java Mon Feb 05 07:20:26 2018 +0100 +++ b/test/hotspot/jtreg/testlibrary/jvmti/TransformerAgent.java Mon Feb 05 08:08:01 2018 +0100 @@ -57,17 +57,25 @@ static class SimpleTransformer implements ClassFileTransformer { - public byte[] transform(ClassLoader loader, String name, Class classBeingRedefined, - ProtectionDomain pd, byte[] buffer) throws IllegalClassFormatException { + public byte[] transform(ClassLoader loader, String name, Class classBeingRedefined, + ProtectionDomain pd, byte[] buffer) throws IllegalClassFormatException { + try { + log("SimpleTransformer called for: " + name + "@" + incrCounter(name)); + if (!shouldTransform(name)) + return null; - log("SimpleTransformer called for: " + name + "@" + incrCounter(name)); - if (!shouldTransform(name)) - return null; - - log("transforming: class name = " + name); - int nrOfReplacements = TransformUtil.replace(buffer, TransformUtil.BeforePattern, - TransformUtil.AfterPattern); - log("replaced the string, nrOfReplacements = " + nrOfReplacements); + log("transforming: class name = " + name); + int nrOfReplacements = TransformUtil.replace(buffer, TransformUtil.BeforePattern, + TransformUtil.AfterPattern); + log("replaced the string, nrOfReplacements = " + nrOfReplacements); + } catch (Throwable t) { + // The retransform native code that called this method does not propagate + // exceptions. Instead of getting an uninformative generic error, catch + // problems here and print it, then exit. + log("Transformation failed!"); + t.printStackTrace(); + System.exit(1); + } return buffer; }