details:   https://code.openbravo.com/erp/devel/pi/rev/87b13b8ceac8
changeset: 24266:87b13b8ceac8
user:      Rafa Alonso <rafael.alonso <at> openbravo.com>
date:      Sun Aug 17 18:01:11 2014 +0200
summary:   Fixes issue 27351: 'getGlobalComponentResources' have to be set as 
synchronized because multiple calls were corrupting the globalResources array
Marking variables as final was not necessary but a nice plus
(client.kernel)
(service.datasource)

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelComponentProvider.java
               |  11 ++++++++-
 
modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceComponentProvider.java
 |  11 ++++++++-
 2 files changed, 18 insertions(+), 4 deletions(-)

diffs (46 lines):

diff -r 0ddec04e8ce3 -r 87b13b8ceac8 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelComponentProvider.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelComponentProvider.java
  Fri Aug 15 08:57:47 2014 -0500
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelComponentProvider.java
  Sun Aug 17 18:01:11 2014 +0200
@@ -80,8 +80,15 @@
     return versionParam;
   }
 
-  public List<ComponentResource> getGlobalComponentResources() {
-    final List<ComponentResource> globalResources = new 
ArrayList<ComponentResource>();
+  final List<ComponentResource> globalResources = new 
ArrayList<ComponentResource>();
+
+  @Override
+  public synchronized List<ComponentResource> getGlobalComponentResources() {
+    if (globalResources.size() > 0) {
+      return globalResources;
+    }
+    globalResources.clear();
+
     globalResources.add(createStaticResource("org.openbravo.client.kernel/"
         + KernelConstants.KERNEL_COMPONENT_TYPE + "/" + 
KernelConstants.APPLICATION_COMPONENT_ID,
         true));
diff -r 0ddec04e8ce3 -r 87b13b8ceac8 
modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceComponentProvider.java
--- 
a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceComponentProvider.java
    Fri Aug 15 08:57:47 2014 -0500
+++ 
b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceComponentProvider.java
    Sun Aug 17 18:01:11 2014 +0200
@@ -75,12 +75,19 @@
     return dataSourceComponent;
   }
 
+  final List<ComponentResource> globalResources = new 
ArrayList<ComponentResource>();
+
   /**
    * @return an empty String (no global resources)
    * @see 
org.openbravo.client.kernel.ComponentProvider#getGlobalComponentResources()
    */
-  public List<ComponentResource> getGlobalComponentResources() {
-    final List<ComponentResource> globalResources = new 
ArrayList<ComponentResource>();
+  @Override
+  public synchronized List<ComponentResource> getGlobalComponentResources() {
+    if (globalResources.size() > 0) {
+      return globalResources;
+    }
+    globalResources.clear();
+
     globalResources.add(createStaticResource(
         "web/org.openbravo.service.datasource/js/ob-datasource-utilities.js", 
true));
     return globalResources;

------------------------------------------------------------------------------
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to