details:   https://code.openbravo.com/erp/devel/pi/rev/900483c4a614
changeset: 21417:900483c4a614
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Tue Nov 05 17:42:51 2013 +0100
summary:   Fixes issue 25015: Many instances of WidgetClass consuming tomcat 
memory
The ComponentProviders are applicationscoped, this ment that the member 
instances and its references were maintained throughout the lifetime of the 
application. Causing each time a new component being created and stored there. 
The change creates a new instance dynamically all the time.

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponentProvider.java
 |  11 +--------
 1 files changed, 2 insertions(+), 9 deletions(-)

diffs (35 lines):

diff -r 62cfb2e198ef -r 900483c4a614 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponentProvider.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponentProvider.java
    Tue Nov 05 17:40:38 2013 +0100
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseComponentProvider.java
    Tue Nov 05 17:42:51 2013 +0100
@@ -25,10 +25,7 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.enterprise.inject.Any;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-
+import org.openbravo.base.weld.WeldUtils;
 import 
org.openbravo.client.kernel.BaseComponentProvider.ComponentResource.ComponentResourceType;
 import org.openbravo.model.ad.module.Module;
 
@@ -43,10 +40,6 @@
 
   private static Map<String, List<String>> appDependencies = new 
HashMap<String, List<String>>();
 
-  @Inject
-  @Any
-  private Instance<Component> components;
-
   /**
    * Return a component of the correct implementation using Weld.
    * 
@@ -55,7 +48,7 @@
    * @return an instance of clz
    */
   protected <U extends Component> U getComponent(Class<U> clz) {
-    return (U) components.select(clz).get();
+    return (U) WeldUtils.getInstanceFromStaticBeanManager(clz);
   }
 
   public Module getModule() {

------------------------------------------------------------------------------
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to