[
https://issues.jboss.org/browse/AS7-4675?page=com.atlassian.jira.plugin.s...
]
Frederico Francisco commented on AS7-4675:
------------------------------------------
Stuart Douglas,
Actually the following was removed from
ee/src/main/java/org/jboss/as/ee/component/BasicComponent.java:
final Map<Method, InterceptorFactory> interceptorFactoryMap =
this.getInterceptorFactoryMap();
// This is an identity map. This means that only <b>certain</b> {@code
Method} objects will
// match - specifically, they must equal the objects provided to the proxy.
final IdentityHashMap<Method, Interceptor> interceptorMap = new
IdentityHashMap<Method, Interceptor>();
for (Method method : interceptorFactoryMap.keySet()) {
interceptorMap.put(method,
interceptorFactoryMap.get(method).create(context));
}
Instead of creating the identiy map above, the interceptorFactoryMap is passed to the
constructor of BasicComponentInstance, which internally will populate the interceptorMap,
on demand, as methods are called.
All the subclasses were changed to receive the interceptorFactoryMap and the
InterceptorContext in their constructor.
Could you give us some feedback? Are these changes sane? Are we missing something?
Thanks.
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: Stuart Douglas
Priority: Critical
Fix For: 7.1.2.Final (EAP)
Attachments: HeapDumpScreenShot.png, JCTest-maven.zip, JCTest.zip
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
For more information on JIRA, see:
http://www.atlassian.com/software/jira