Fixed: Reinstate url cache in UtilURL.fromResource
(OFBIZ-9208)

Adrian created the following commit to cache URL objects 


Revision: 1649979
Author: adrianc
Date: 07 January 2015 00:24:28
Message:
Some optimizations for URL lookups.
----
Modified : /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java
Modified : /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilURL.java

and was later reverted in this commit

Revision: 1650347
Author: adrianc
Date: 08 January 2015 17:53:59
Message:
Some small fixups for some of my previous commits.
----
Modified : /ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityClassLoader.java
Modified : /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilURL.java

We have found in one of our production servers that line 98 in UtilURL.java

url = loader.getResource(resourceName);

has caused locking and looking at the stack trace (from jstack). There are 
numerous threads waiting on locks from within this method

I propose the cache gets added back (we have done this as a patch on our systems
 with no ill effect)

FYI - The commits are in reference to the EntityClassLoader which is not used 
and does not work see OFBIZ-6210

Thanks: Gareth Carter for report and suggestion

git-svn-id: https://svn.apache.org/repos/asf/ofbiz/trunk@1782520 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilURL.java b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilURL.java
index 6e2ee9b..d114bf6 100644
--- a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilURL.java
+++ b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilURL.java
@@ -97,8 +97,7 @@
         }
         url = loader.getResource(resourceName);
         if (url != null) {
-            // Do not cache URLs from ClassLoader - interferes with EntityClassLoader operation
-            //urlMap.put(resourceName, url);
+            urlMap.put(resourceName, url);
             return url;
         }
         url = ClassLoader.getSystemResource(resourceName);