Author: rmannibucau
Date: Sun Jun 10 23:13:46 2012
New Revision: 1348679
URL: http://svn.apache.org/viewvc?rev=1348679&view=rev
Log:
trying to avoid memory leak for servlet 3.0 objects
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java?rev=1348679&r1=1348678&r2=1348679&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Sun Jun 10 23:13:46 2012
@@ -19,6 +19,7 @@ package org.apache.openejb.core;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javax.enterprise.context.spi.CreationalContext;
import javax.naming.Context;
import javax.naming.InitialContext;
@@ -39,6 +40,7 @@ public class WebContext {
private Context jndiEnc;
private final AppContext appContext;
private Map<String,Object> bindings;
+ private Map<Object, CreationalContext<?>> creatonalContexts = new
ConcurrentHashMap<Object, CreationalContext<?>>();
private WebBeansContext webbeansContext;
private String contextRoot;
@@ -125,6 +127,7 @@ public class WebContext {
}
}
+ creatonalContexts.put(beanInstance, creationalContext);
return beanInstance;
}
@@ -193,4 +196,11 @@ public class WebContext {
public String getContextRoot() {
return contextRoot;
}
+
+ public void destroy(final Object o) {
+ final CreationalContext<?> ctx = creatonalContexts.remove(o);
+ if (ctx != null) {
+ ctx.release();
+ }
+ }
}
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java?rev=1348679&r1=1348678&r2=1348679&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/JavaeeInstanceManager.java
Sun Jun 10 23:13:46 2012
@@ -76,6 +76,7 @@ public class JavaeeInstanceManager imple
public void destroyInstance(Object o) throws IllegalAccessException,
InvocationTargetException {
if (o == null) return;
preDestroy(o, o.getClass());
+ webContext.destroy(o);
}
/**