This bug fix is better to be in the release because it is a part of the JSR-292 support
in the JVMTI HotSwap API (includes RedefineClasses, RetransformClasses and PopFrame).
This bug is one of 12 bug fixes that depend on each other and must be integrated
in the order:
All the fixes above have been already integrated into the JDK 8
and tested in the hotspot-rt nightly for several months.
The fixes touch the JVMTI HotSwap API that includes RedefineClasses, RetransformClasses and PopFrame.
The risk is only to introduce regressions in this part of the JVMTI implementation.
This impacts only the debugging and profiling tools that use the JVMTI HotSwap feature.
There are very small chances for regressions to sneak into the class file
constant pool processing and method handles implementation.
Webrevs and reviewers:
The 7u60 webrevs location is:
The fixes above were already passed the review process before integration
into JDK 8. The reviewers were: twisti, jrose, coleenp, dholmes, etc.
The 7u60 edition of fixes must be reviewed at least by jrose and twisti.
Level of effort:
All fixes need a secondary review phase after rebase from jdk8 to 7u60 repository.
The folllowing test suites must be run to ensure correctness of the fixes:
JTREG tests: com/sun/jdi, java/lang/instrument
NSK tests: vm.mlvm.testlist, nsk.jvmti.testlist, nsk.jdi.testlist, nsk.jdwp.testlist
Result of not integrating:
The users will not be able to use HotSwap technology for debuging and profiling
Java code that depends on the JSR-292 implementation.
In that case the integration of these fixes will have to be requested/escalated
in 7 updates by the tool vendors and/or customers.
I believe the following change will fix the issue:
diff -r 0cc77f9b31ad src/share/vm/prims/jvmtiClassFileReconstituter.cpp
--- a/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Thu Oct 11 09:49:18 2012 -0700
+++ b/src/share/vm/prims/jvmtiClassFileReconstituter.cpp Tue Oct 30 03:13:27 2012 -0700
@@ -228,7 +228,7 @@
copy_bytecodes(method, (unsigned char*)writeable_address(code_size));