svn commit: r903809 - /ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r903809 - /ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java

doogie-3
Author: doogie
Date: Wed Jan 27 19:56:37 2010
New Revision: 903809

URL: http://svn.apache.org/viewvc?rev=903809&view=rev
Log:
Since the only way to access the parsed services is thru static
helper methods, it means the only callers will be local to the current
thread.  This then leads to not having to synchronize the parsing of the
xml data.

Modified:
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java?rev=903809&r1=903808&r2=903809&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java Wed Jan 27 19:56:37 2010
@@ -93,8 +93,6 @@
         this.readerURL = readerURL;
         this.handler = null;
         this.dctx = dctx;
-        // preload models...
-        getModelServices();
     }
 
     private ModelServiceReader(ResourceHandler handler, DispatchContext dctx) {
@@ -102,16 +100,9 @@
         this.readerURL = null;
         this.handler = handler;
         this.dctx = dctx;
-        // preload models...
-        getModelServices();
     }
 
     private Map<String, ModelService> getModelServices() {
-        if (modelServices == null) { // don't want to block here
-            synchronized (ModelServiceReader.class) {
-                // must check if null again as one of the blocked threads can still enter
-                if (modelServices == null) { // now it's safe
-                    modelServices = FastMap.newInstance();
 
                     UtilTimer utilTimer = new UtilTimer();
 
@@ -122,7 +113,6 @@
                         document = getDocument(readerURL);
 
                         if (document == null) {
-                            modelServices = null;
                             return null;
                         }
                     } else {
@@ -135,13 +125,13 @@
                         }
                     }
 
+                    Map<String, ModelService> modelServices = FastMap.newInstance();
                     if (this.isFromURL) {// utilTimer.timerString("Before getDocumentElement in file " + readerURL);
                     } else {// utilTimer.timerString("Before getDocumentElement in " + handler);
                     }
 
                     Element docElement = document.getDocumentElement();
                     if (docElement == null) {
-                        modelServices = null;
                         return null;
                     }
 
@@ -215,9 +205,6 @@
                             Debug.logImportant("Loaded [" + StringUtil.leftPad(Integer.toString(i), 3) + "] Services from " + resourceLocation, module);
                         }
                     }
-                }
-            }
-        }
         return modelServices;
     }