Merge pull request #37 from BuZZ-dEE/owb_1.7.x
OWB-1389 Remove destroyed instance from memory (backport from cdi-2.0 to owb_1.7.x)
diff --git a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
index eb127e6..9889341 100644
--- a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
+++ b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatInstanceManager.java
@@ -47,7 +47,7 @@
@Override
public void destroyInstance(Object instance) throws IllegalAccessException, InvocationTargetException
{
- Object injectorInstance = objects.get(instance);
+ Object injectorInstance = this.objects.remove(instance);
if (injectorInstance != null)
{
try
@@ -60,10 +60,14 @@
}
catch (Exception e)
{
- log.error("Erros is occured while destroying the OpenWebBeans injector instance", e);
+ log.error("Error is occured while destroying the OpenWebBeans injector instance", e);
}
}
this.processor.destroyInstance(instance);
+ if (log.isDebugEnabled())
+ {
+ log.debug("Number of 'objects' map entries after destroying instance: " + this.objects.size());
+ }
}
@Override
@@ -122,7 +126,11 @@
Object injectorInstance = TomcatUtil.inject(object, loader);
if (injectorInstance != null)
{
- objects.put(object, injectorInstance);
+ this.objects.put(object, injectorInstance);
+ }
+ if (log.isDebugEnabled())
+ {
+ log.debug("Number of 'objects' map entries after injecting instance: " + this.objects.size());
}
}
catch (Exception e)