You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2013/06/02 14:19:02 UTC

svn commit: r1488694 - /ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java

Author: adrianc
Date: Sun Jun  2 12:19:02 2013
New Revision: 1488694

URL: http://svn.apache.org/r1488694
Log:
Bug fix in new ServiceConfigUtil code - do not use cached DOM object when creating models.

Modified:
    ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java?rev=1488694&r1=1488693&r2=1488694&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/config/ServiceConfigUtil.java Sun Jun  2 12:19:02 2013
@@ -19,6 +19,7 @@
 package org.ofbiz.service.config;
 
 import java.io.Serializable;
+import java.net.URL;
 import java.util.List;
 import java.util.Map;
 
@@ -28,10 +29,12 @@ import javolution.util.FastMap;
 import org.ofbiz.base.config.GenericConfigException;
 import org.ofbiz.base.config.ResourceLoader;
 import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilURL;
 import org.ofbiz.base.util.UtilXml;
 import org.ofbiz.base.util.cache.UtilCache;
 import org.ofbiz.service.config.model.ServiceConfig;
 import org.ofbiz.service.config.model.ServiceEngine;
+import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -57,7 +60,7 @@ public final class ServiceConfigUtil {
     public static ServiceConfig getServiceConfig() throws GenericConfigException {
         ServiceConfig instance = serviceConfigCache.get("instance");
         if (instance == null) {
-            Element serviceConfigElement = ResourceLoader.getXmlRootElement(ServiceConfigUtil.SERVICE_ENGINE_XML_FILENAME);
+            Element serviceConfigElement = getXmlDocument().getDocumentElement();
             instance = ServiceConfig.create(serviceConfigElement);
             serviceConfigCache.putIfAbsent("instance", instance);
             instance = serviceConfigCache.get("instance");
@@ -65,6 +68,18 @@ public final class ServiceConfigUtil {
         return instance;
     }
 
+    private static Document getXmlDocument() throws GenericConfigException {
+        URL confUrl = UtilURL.fromResource(SERVICE_ENGINE_XML_FILENAME);
+        if (confUrl == null) {
+            throw new GenericConfigException("Could not find the " + SERVICE_ENGINE_XML_FILENAME + " file on the classpath");
+        }
+        try {
+            return UtilXml.readXmlDocument(confUrl, true, true);
+        } catch (Exception e) {
+            throw new GenericConfigException("Exception thrown while reading " + SERVICE_ENGINE_XML_FILENAME + ": ", e);
+        }
+    }
+
     /**
      * Returns the specified <code>ServiceEngine</code> instance, or <code>null</code>
      * if the engine does not exist.