-
Bug
-
Resolution: Fixed
-
P4
-
8
-
b55
-
generic
-
generic
-
Not verified
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
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
- duplicates
-
JDK-7125063 jvmti: write regression test for 7064927
-
- Closed
-
- relates to
-
JDK-7064927 retransformClasses() does not pass in LocalVariableTable of a method
-
- Closed
-
-
JDK-7194607 VerifyLocalVariableTableOnRetransformTest.sh fails after JSR-292 merge
-
- Resolved
-
-
JDK-7191786 retransformClasses() does not pass in LocalVariableTypeTable of a method
-
- Resolved
-