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