You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2015/06/17 01:44:00 UTC

[jira] [Updated] (ISIS-1137) PermGen errors through WrapperFactory (javassist)

     [ https://issues.apache.org/jira/browse/ISIS-1137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Haywood updated ISIS-1137:
------------------------------
    Fix Version/s:     (was: 1.10.0)
                   1.9.0

> PermGen errors through WrapperFactory (javassist)
> -------------------------------------------------
>
>                 Key: ISIS-1137
>                 URL: https://issues.apache.org/jira/browse/ISIS-1137
>             Project: Isis
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: core-1.8.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: 1.9.0
>
>
> as per Oscar's report on the mailing list, see http://markmail.org/message/ilow6jkg5iuxbzis
> Looking at the code, it does seem that we are leaking memory by not holding the ProxyFactory class [1] (we create a new instance each time).
> The Javadoc [2] does suggest that these should be cached (it is the deafult).
> One subtlety: the ProxyFactory is per class being enhanced.  So we actually need to hold a cache of these.  But at least then we will only get one extra enhanced class in the permgen per type, rather than per instance (as at the moment).
> ~~~
> While we are here, we should probably delete the cglib support, and do some inlining of redundant interfaces.
> [1] https://github.com/apache/isis/blob/dec670567ce96fa96fe89c8111c6dbca35b3ed3b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/proxy/ProxyInstantiatorForJavassist.java#L62
> [2] http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/html/javassist/util/proxy/ProxyFactory.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)