[
https://jira.jboss.org/jira/browse/JBSEAM-4576?page=com.atlassian.jira.pl...
]
Marek Novotny updated JBSEAM-4576:
----------------------------------
Description:
The problem is caused by the current javassist usage pattern of calling
ProxyFactory.createClass().newInstance() which currently (due to the broken cache), always
creates a new class for the proxy. And once this class gets classloaded, you cannot easily
get rid of it from the ClassLoaders class map.
There were also a few problems with deserialization, mainly because it did drop the
assigned MethodHandler and used the DefaultMethodHandler instead.
Storing a static reference cause a problem for garbage collection, because the
MethodHandler set directly into the ProxyFactory can never get freed.
Patches from Mark Struberg are available at
http://github.com/struberg/javassist
was:
The problem is caused by the current javassist usage pattern of calling
ProxyFactory.createClass().newInstance() which currently (due to the broken cache), always
creates a new class for the proxy. And once this class gets classloaded, you cannot easily
get rid of it from the ClassLoaders class map.
There were also a few problems with deserialization, mainly because it did drop the
assigned MethodHandler and used the DefaultMethodHandler instead.
Storing a static reference cause a problem for garbage collection, because the
MethodHandler set directly into the ProxyFactory can never get freed.
Patches from Mark Struberg is available at
http://github.com/struberg/javassist
Upgrade Javassist to new version - current version has memory leaks
-------------------------------------------------------------------
Key: JBSEAM-4576
URL:
https://jira.jboss.org/jira/browse/JBSEAM-4576
Project: Seam
Issue Type: Task
Components: Core
Affects Versions: 2.2.0.CR1, 2.2.0.GA
Reporter: Marek Novotny
Assignee: Marek Novotny
Fix For: 2.2.1.CR2
The problem is caused by the current javassist usage pattern of calling
ProxyFactory.createClass().newInstance() which currently (due to the broken cache), always
creates a new class for the proxy. And once this class gets classloaded, you cannot easily
get rid of it from the ClassLoaders class map.
There were also a few problems with deserialization, mainly because it did drop the
assigned MethodHandler and used the DefaultMethodHandler instead.
Storing a static reference cause a problem for garbage collection, because the
MethodHandler set directly into the ProxyFactory can never get freed.
Patches from Mark Struberg are available at
http://github.com/struberg/javassist
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira