Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
N/A
Description
Currently if the BPEL process contains any XSL stylesheets it will not free up all the memory that was allocated during the compilation/dehydration of the process. This seems to be because there is a cache of XSLTemplates stored in the XSLTransformHandler, and these XSLTemplates can sometimes contain (transitive) references back to the OProcess object instances (via for example the URIResolvers/XPAth Expressions). Unfortunately this cache lives forever (crucially even after the process has been un-deployed) because of this the object graph hanging from the OProcess object instance is never available for the GC to pick-off.
There is also another reference issue in the ErrorListener that is associated with the XSLTransformHandler instance, but I don't really understand that bit of code just as yet, a patch for the former issue follows, I'm reviewing the ErrorListener issue currently.