[ https://issues.apache.org/jira/browse/OPENJPA-2538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14190196#comment-14190196 ]
Rick Curtis commented on OPENJPA-2538: -------------------------------------- Hmm, okay. Just as long as you're sure that _metas gets cleaned up... I think this problem does exist in other app server environments. > Classloader memory leak in PCRegistry > ------------------------------------- > > Key: OPENJPA-2538 > URL: https://issues.apache.org/jira/browse/OPENJPA-2538 > Project: OpenJPA > Issue Type: Bug > Components: Enhance, osgi > Affects Versions: 2.3.0 > Reporter: Grzegorz Grzybek > Assignee: Rick Curtis > Priority: Critical > > I'm using OpenJPA in OSGi environment (namely: JBoss Fuse 6.1). We had nasty > {{NullPointerException}} in Felix when trying to load source code during > initialization of class metadata. [This > line|https://github.com/apache/openjpa/blob/2.3.0/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataRepository.java#L1614] > returned duplicate entity classes - half of them were from old revision of a > bundle and half - from new revision. > I tracked down the problem to the point, where > {{org.apache.openjpa.enhance.PCRegistry#register()}} was invoked as part of > constructing new instances of entity classes (static initialization injected > during class enhancement). Although {{_metas}} is instance of > {{ConcurrentReferenceHashMap}} with weak keys, the keys (entity classes) had > other hard references too. Here's a list of the hard refs I got from simple > heap dump: > * org.apache.openjpa.meta.MetaDataRepository#_impls > * org.apache.openjpa.meta.InheritanceComparator#_base > * org.apache.openjpa.enhance.PCRegistry.Meta#pcSuper > * org.apache.openjpa.meta.MetaDataRepository#_oids > so on every bundle refresh we have next bunch of classes in {{_metas}}... -- This message was sent by Atlassian JIRA (v6.3.4#6332)