Duplicate :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
The fix for the following bug: 7064927 4/4 retransformClasses() does not pass in LocalVariableTable of a method was integrated in JDK8-B19/HSX-23-B09 in the hotspot repo: http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/c01e115b095e The tests for java.lang.instrument live in the jdk repo. This bug is being used to integrate the following test: java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.sh Here is what a passing run with JDK8-B51 looks like: #section:shell ----------messages:(3/148)---------- command: shell MakeJAR.sh [retransformAgent] reason: User specified action: run shell MakeJAR.sh retransformAgent elapsed time (seconds): 4.739 ----------System.out:(4/254)---------- TESTSRC=C:/work/shared/bug_hunt/jdk8/exp_7064927_test/test/java/lang/instrument TESTJAVA=c:/work/shared/mirrors/jdks-win32/jdk/1.8.0/latest/binaries/windows-i586 added manifest adding: InstrumentationHandoff.class(in = 1158) (out= 605)(deflated 47%) ----------System.err:(0/0)---------- result: Passed. Execution successful #section:shell ----------messages:(3/183)---------- command: shell VerifyLocalVariableTableOnRetransformTest.sh [] reason: User specified action: run shell VerifyLocalVariableTableOnRetransformTest.sh elapsed time (seconds): 1.576 ----------System.out:(18/1238)*---------- InstrumentationHandoff JPLIS agent initialized java version "1.8.0-ea" Java(TM) SE Runtime Environment (build 1.8.0-ea-b51) Java HotSpot(TM) Client VM (build 24.0-b19, mixed mode) Reading test class from C:\\work\\shared\\bug_hunt\\jdk8\\exp_7064927_test\\sdk-jli.windows-i586\\JTwork\\classes\\java\\lang\\instrument\\DummyClassWithLVT.class Read 1448 bytes. Debugging message: Added transformer VerifyLocalVariableTableOnRetransformTest$MyObserver with canRetransform=true VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes. Info: DummyClassWithLVT lengths match. Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes. Info: DummyClassWithLVT lengths match. Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'. Debugging message: tearDown beginning VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown' of 2956 bytes. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown$Lock' of 377 bytes. PASS: did NOT find 'did not match .class file' in the test output ----------System.err:(0/0)---------- result: Passed. Execution successful test result: Passed. Execution successful Here is what a failing run with JDK7-B147 looks like: #section:shell ----------messages:(3/183)---------- command: shell VerifyLocalVariableTableOnRetransformTest.sh [] reason: User specified action: run shell VerifyLocalVariableTableOnRetransformTest.sh elapsed time (seconds): 3.869 ----------System.out:(54/3613)*---------- InstrumentationHandoff JPLIS agent initialized java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode) Reading test class from C:\\work\\shared\\bug_hunt\\jdk8\\exp_7064927_test\\sdk-jli.windows-i586\\JTwork\\classes\\java\\lang\\instrument\\DummyClassWithLVT.class Read 1448 bytes. Debugging message: Added transformer VerifyLocalVariableTableOnRetransformTest$MyObserver with canRetransform=true VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes. Info: DummyClassWithLVT lengths match. Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1332 bytes. Warning: DummyClassWithLVT lengths do not match. Debugging message: tearDown beginning Exception in thread "main" VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Throwable$WrappedPrintStream' of 699 bytes. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Throwable$PrintStreamOrWriter' of 492 bytes. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/util/IdentityHashMap' of 9031 bytes. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/util/IdentityHashMap$KeySet' of 1793 bytes. ATestCaseScaffold$TestCaseScaffoldException: DummyClassWithLVT did not match .class file at ATestCaseScaffold.fail(ATestCaseScaffold.java:116) at ATestCaseScaffold.assertTrue(ATestCaseScaffold.java:129) at VerifyLocalVariableTableOnRetransformTest.verifyClassFileBuffer(VerifyLocalVariableTableOnRetransformTest.java:123) at VerifyLocalVariableTableOnRetransformTest.doRunTest(VerifyLocalVariableTableOnRetransformTest.java:72) at ATestCaseScaffold.runTest(ATestCaseScaffold.java:60) at VerifyLocalVariableTableOnRetransformTest.main(VerifyLocalVariableTableOnRetransformTest.java:66) VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown' of 2956 bytes. VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown$Lock' of 377 bytes. ATestCaseScaffold$TestCaseScaffoldException: DummyClassWithLVT did not match .class file FAIL: found 'did not match .class file' in the test output INFO: 'javap -v' comparison between the .class files: 1,3c1,3 < Classfile /C:/work/shared/bug_hunt/jdk8/exp_7064927_test/sdk-jli.windows-i586/JTwork/classes/java/lang/instrument/DummyClassWithLVT.class < Last modified Aug 13, 2012; size 1448 bytes < MD5 checksum add938cbf65c704016583270092d8258 --- > Classfile /C:/work/shared/bug_hunt/jdk8/exp_7064927_test/sdk-jli.windows-i586/JTwork/java/lang/instrument/VerifyLocalVariableTableOnRetransformTest/DummyClassWithLVT.class > Last modified Aug 13, 2012; size 1332 bytes > MD5 checksum 65f4b7ecfaf38db537034ecd5723e85a 116,118d115 < LocalVariableTable: < Start Length Slot Name Signature < 0 5 0 this LDummyClassWithLVT; 239,249d235 < LocalVariableTable: < Start Length Slot Name Signature < 0 236 0 args [Ljava/lang/String; < 2 234 1 b Z < 5 231 2 by B < 8 228 3 c C < 13 223 4 d D < 17 219 6 f F < 21 215 7 i I < 26 210 8 l J < 30 206 10 s S ----------System.err:(0/0)---------- result: Failed. Execution failed: exit code 1 test result: Failed. Execution failed: exit code 1
|