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)