Community
Participate
Working Groups
This fix needs to get into the active development streams - R3_2_maintenance and HEAD. +++ This bug was initially created as a clone of Bug #343558 +++ Currently, if JEM is gathering (or has gathered) the Methods from a (JEM) JavaClass, and a flush() occurs, the Methods are removed from their parents and are invalid, resulting in NPEs and other errors without any warning. There are things we can do, such as replacing the parent JavaClass with a JavaClassRef, that will at least keep the current Methods useful, while still allowing the flush to proceed.
This is causing (intermittent) major problems, including unnecessary termination, of various "headless" utilities based on WTP. The adopter (IBM) is requesting that this fix be propagated to all active versions of WTP.
Created attachment 193917 [details] Keep the current Methods "valid"
approved
Committed to HEAD for WTP 3.3 M7
Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such. When a flush occurs while Methods are being accessed, the Methods become "invalid" without warning, causing various exceptions and other problems. In headless tooling, there is no way to recover from this, and thus the tools will fail. IBM is requesting that this be fixed. Is there a work-around? If so, why do you believe the work-around is insufficient? There is no simple work-around. How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added? This fix was tested both via running the Java EE JUnit bucket and by providing a patch to adopters/customers that were encountering this problem utilizing tools based on WTP in a headless environment. This fix resolved their issues. Give a brief technical overview. Who has reviewed this fix? Chuck Bridgham has reviewed the fix. Simply put, instead of setting the container to null, this fix now puts in a JavaClassRef as the container, so that future queries to this Method still provide the current information, yet the reference from the JavaClass is still removed, allowing the Method to be garbage-collected as soon as no external reference exists. What is the risk associated with this fix? This is a low risk fix.
Sounds important, and in need of lots of testing ... which I assume has already happened. Thanks!
Committed to R3_2_maintenance for WTP 3.2.4