[
https://issues.jboss.org/browse/AS7-4675?page=com.atlassian.jira.plugin.s...
]
Klaus Benary commented on AS7-4675:
-----------------------------------
It is as simple as this:
{noformat}
public void readBeans() throws Exception {
// The JNDI name of the local home interface
String TEST_BEAN_NAME =
"java:global/jcoffee/entities/jcoffee/jxtest/JCTestBeanLocalHome";
// Create an initial context
Context iCtx = new InitialContext();
// Lookup the local home interface
JCTestBeanLocalHome localHome = (JCTestBeanLocalHome)
iCtx.lookup(TEST_BEAN_NAME);
// Call a finder returning all instances of JCTestBean
for (Object next : localHome.findAll()) {
// Get the local interface
JCTestBeanLocal local = (JCTestBeanLocal) next;
// And as soon as I call an attribute-getter on the local interface
// these Interceptor arrays come up.
local.getEntityKey();
}
}
{noformat}
Whats's holding them? Well, I can pick an arbitrary one from the heap dump. The neares
GC root is always the same: ServiceContainerImpl$ServiceThread
I will try to set up a reproducer. However not until tomorrow.
Memory leak when reading EJB 2.1 CMP EntityBeans
------------------------------------------------
Key: AS7-4675
URL:
https://issues.jboss.org/browse/AS7-4675
Project: Application Server 7
Issue Type: Bug
Components: EJB
Affects Versions: 7.1.1.Final
Environment: Windows 7 Pro SP1 (64bit); JDK 1.6.0_31 (64bit); Oracle Database
11g Release 11.1.0.6.0 - 64bit Production; AS71.1Final / AS71.2 latest build
Reporter: Klaus Benary
Assignee: jaikiran pai
After reading 12000 EJB 2.1 EntityBeans in a test application there are about 5 million
Interceptor[] arrays firmely bound in the heap. A heap dump shows this as a typical
reference chain:
GC Root: ServiceContainerImpl$ServiceThread
ServiceContainerImpl$ServiceThread.container = ServiceContainerImpl
ServiceContainerImpl.registry = UnlockedReadHashMap
UnlockedReadHashMap.table = AtomicReferenceArray
AtomicReferenceArray.array = Object[16384]
Object[6209] = UnlockedReadHashMap$Item[3]
UnlockedReadHashMap$Item[1] = UnlockedReadHashMap$Item
UnlockedReadHashMap$Item.value = ServiceRegistrationImpl
ServiceRegistrationImpl.instance = ServiceControllerImpl
ServiceControllerImpl.serviceValue = ImmediateValue
ImmediateValue.value = TimedObjectInvokerImpl
TimedObjectInvokerImpl.timeoutInterceptors = HashMap
HashMap.table = HashMap$Entry[128]
HashMap$Entry[123] = HashMap$Entry
HashMap$Entry.value = ChainedInterceptor
ChainedInterceptor.interceptors = Arrays$ArrayList
Arrays$ArrayList.a = Interceptor[6]
The number of bound objects keeps growing when reading more EntityBeans - even wehn
reading the same beans again.
Even after undeploy of the application the
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira