United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-4879835 Provide the dynamic bytecode instrumentation capability, as found in JFluid
JDK-4879835 : Provide the dynamic bytecode instrumentation capability, as found in JFluid

Details
Type:
Enhancement
Submit Date:
2003-06-17
Status:
Closed
Updated Date:
2005-04-20
Project Name:
JDK
Resolved Date:
2005-04-20
Component:
tools
OS:
windows_2000
Sub-Component:
hprof
CPU:
x86
Priority:
P4
Resolution:
Duplicate
Affected Versions:
1.4.2
Fixed Versions:

Related Reports
Duplicate:

Sub Tasks

Description

Name: rmT116609			Date: 06/17/2003


A DESCRIPTION OF THE REQUEST :
We would like to see the JVM technology for dynamic bytecode instrumentation productized in some future JDK version, preferably JDK 1.5. Such a technology is available in the JFluid experimental project by Sun Labs (see http://research.sun.com/projects/jfluid). It enables tools to dynamically instrument and de-instrument bytecodes of running Java applications, usually in order to obtain performance information. However, we understand that the same functionality can also be used for other purposes, e.g. code coverage, fault injection, or even patching bugs without stopping a program.

We also understand that the JFluid JVM provides a mechanism that keeps the above
instrumentation capability "always on". That is, it enables tools to attach to, and instrument, any program, even one running in a production mode, without any special JVM settings. Such an option, though probably it should be considered separately, is also very desirable to have.


JUSTIFICATION :
JFluid or technology similar allows for applications to be dynamically instrumented with diagnostics, monitoring, and other management features that improve the manageability of J2SE and J2EE applications and servers.
(Review ID: 185678) 
======================================================================

                                    

Comments
PUBLIC COMMENTS

This RFE requests dynamic bytecode instrumentation "as found in JFluid".

Some background --
  dynamic bytecode instrumentation was added to JVMDI in J2SE 1.4 -- the
  function is RedefineClasses.  This functionality is also available in
  the higher layers of JPDA: JDWP and JDI.

  JSR-163 is defining new tool interfaces for J2SE 1.5 -- relevant to 
  this RFE are the new JVMTI and JPLIS interfaces.  JVMTI (which will
  superceed JVMDI and JVMPI in a subsequent release) supplies RedefineClasses
  as well as an enhanced ClassFileLoadHook (as mentioned in the JDC comment).
  JPLIS will supply this functionality to in-process Java programming
  language code.

The one difference in the JFluid support is that replacement can be at method
granularity rather than class granularity.

###@###.### 2003-08-06
                                     
2003-08-06
EVALUATION

The bug fixes and performance work needed so that the NetBeans Profiler (JFluid) can run well with the JDK have been integrated into mustang (6.0) and also 5.0 update 4. See 5109602, 5079751, 6200138, and 6203233.
###@###.### 2005-03-21 09:35:08 GMT


It's now time to close this bug! All the bug fixes and performance work to make the NetBeans Profiler (JFluid) work really well with JDK5.0 and mustang (6.0) is complete. The changes are in mustang since b26 (download the latest mustang snapshot from https://mustang.dev.java.net/). For JDK5.0 the changes have been back-ported to 5.0u4 - sorry it's not 5.0u3 but the changes are too extensive and 5.0u3 was too far along to integrate them late in the schedule. 

The other news is that milestone 6 of the NetBeans Profiler has been released. (download it from http://profiler.netbeans.org/). In milestone 6 the profiling agent has been ported to JVMTI (the new tools interface added in JDK1.5 via JSR-163).  

###@###.### 2005-04-20 08:14:22 GMT
                                     
2005-04-20



Hardware and Software, Engineered to Work Together