You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/01/15 02:43:35 UTC

svn commit: r1231611 - in /openejb/branches/openejb-4.0.0-beta-2: ./ container/openejb-core/src/test/java/org/apache/openejb/config/ container/openejb-jee/src/test/resources/jsf/ examples/alternate-descriptors/src/main/resources/META-INF/ examples/appl...

Author: dblevins
Date: Sun Jan 15 01:43:35 2012
New Revision: 1231611

URL: http://svn.apache.org/viewvc?rev=1231611&view=rev
Log:
svn merge -r 1230436:1230437 https://svn.apache.org/repos/asf/openejb/trunk/openejb

http://svn.apache.org/viewvc?view=revision&revision=1230437
------------------------------------------------------------------------
r1230437 | dblevins | 2012-01-12 00:15:16 -0800 (Thu, 12 Jan 2012) | 2 lines

Previous fix to remove duplicate urls removed all URLs on OSX and Linux if the UrlCache was empty

------------------------------------------------------------------------

Modified:
    openejb/branches/openejb-4.0.0-beta-2/   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/container/openejb-jee/src/test/resources/jsf/   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/examples/application-composer/   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/src/   (props changed)
    openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java

Propchange: openejb/branches/openejb-4.0.0-beta-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
 /openejb/branches/openejb-3.1.1:779593
 /openejb/branches/openejb-3.1.x:945409,945448,1004381,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
 /openejb/branches/openejb-jcdi:984659-985270
-/openejb/trunk/openejb:1230327,1230343
+/openejb/trunk/openejb:1230327,1230343,1230437

Propchange: openejb/branches/openejb-4.0.0-beta-2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
 /openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
 /openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
 /openejb/branches/openejb-jcdi/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:984659-985270
-/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:1230327,1230343
+/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:1230327,1230343,1230437

Propchange: openejb/branches/openejb-4.0.0-beta-2/container/openejb-jee/src/test/resources/jsf/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -2,4 +2,4 @@
 /geronimo/server/branches/3.0-M1/plugins/myfaces/geronimo-myfaces-builder/src/test/resources:948864,951792
 /geronimo/server/trunk/plugins/j2ee/myfaces/geronimo-myfaces-builder/src/test/resources:887507
 /openejb/branches/openejb-jcdi/container/openejb-jee/src/test/resources/jsf:984659-985270
-/openejb/trunk/openejb/container/openejb-jee/src/test/resources/jsf:1230327,1230343
+/openejb/trunk/openejb/container/openejb-jee/src/test/resources/jsf:1230327,1230343,1230437

Propchange: openejb/branches/openejb-4.0.0-beta-2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,4 +1,4 @@
 /openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
 /openejb/branches/openejb-3.1.x/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:945409,945448,1005322,1021880,1021903,1021955,1021961,1021965,1021975,1021979,1021990,1022375,1022393,1023096,1023116,1023125,1026527,1027696,1027724,1027739,1027754,1032856,1032866,1034030,1040222,1040250
 /openejb/branches/openejb-jcdi/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:984659-985270
-/openejb/trunk/openejb/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:1230327,1230343
+/openejb/trunk/openejb/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:1230327,1230343,1230437

Propchange: openejb/branches/openejb-4.0.0-beta-2/examples/application-composer/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,3 +1,3 @@
 /openejb/branches/openejb-3.1.1/examples/application-composer:779593
-/openejb/trunk/openejb/examples/application-composer:1230327,1230343
+/openejb/trunk/openejb/examples/application-composer:1230327,1230343,1230437
 /openejb/trunk/openejb3/examples/application-composer:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528

Propchange: openejb/branches/openejb-4.0.0-beta-2/src/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Jan 15 01:43:35 2012
@@ -1,3 +1,3 @@
 /openejb/branches/openejb-3.1.1/src:779593
-/openejb/trunk/openejb/src:1230327,1230343
+/openejb/trunk/openejb/src:1230327,1230343,1230437
 /openejb/trunk/openejb3/src:943472,943862,943965,944757,945989,946399,946485,946489,946705,946792,946805,946814,946861,946863-946864,947010,947017,947042,948022,948241,948243,948548,949014,949233,950391,950801,951611,953191,953196,953556,955104,955496,957463,962382,962750,987030,1004172,1029528

Modified: openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java?rev=1231611&r1=1231610&r2=1231611&view=diff
==============================================================================
--- openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java (original)
+++ openejb/branches/openejb-4.0.0-beta-2/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java Sun Jan 15 01:43:35 2012
@@ -23,6 +23,7 @@ import org.apache.catalina.loader.Webapp
 import org.apache.naming.resources.DirContextURLStreamHandler;
 import org.apache.openejb.ClassLoaderUtil;
 import org.apache.openejb.util.ArrayEnumeration;
+import org.apache.openejb.util.URLs;
 import org.apache.tomcat.util.ExceptionUtils;
 
 import java.io.File;
@@ -32,7 +33,9 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class TomEEWebappLoader extends WebappLoader {
     private ClassLoader appClassLoader;
@@ -80,17 +83,21 @@ public class TomEEWebappLoader extends W
          * @throws IOException
          */
         @Override public Enumeration<URL> getResources(final String name) throws IOException {
-            final List<URL> urls = new ArrayList<URL>();
+            // DMB: On inspection I was seeing three copies of the same resource
+            // due to the app.getResources and webapp.getResources call.
+            // Switching from a list to a form of set trims the duplicates
+            final Map<String, URL> urls = new HashMap<String, URL>();
+
 
             if (webapp instanceof WebappClassLoader && ((WebappClassLoader) webapp).isStarted() || webapp.getParent() == null) { // we set a parent so if it is null webapp was detroyed
                 add(urls, app.getResources(name));
                 add(urls, webapp.getResources(name));
-                return new ArrayEnumeration(clear(urls));
+                return new ArrayEnumeration(clear(urls.values()));
             }
             return app.getResources(name);
         }
 
-        private List<URL> clear(List<URL> urls) { // take care of antiJarLocking
+        private List<URL> clear(Iterable<URL> urls) { // take care of antiJarLocking
         	final List<URL> clean = new ArrayList<URL>();
         	for (URL url : urls) {
 	            final String urlStr = url.toExternalForm();
@@ -115,7 +122,13 @@ public class TomEEWebappLoader extends W
 	                	if (resource != null && !clean.contains(resource)) {
 							clean.add(resource);
 	                	}
-	            	}
+	            	} else {
+                        // DMB: Unsure if this is the correct hanlding of the else case,
+                        // but in OSX the getUrlKeyCached returns null so the url was
+                        // being ignored
+                        clean.add(url);
+                    }
+
 	            } else if (clean.contains(url)) {
 	                clean.add(url);
 	            }
@@ -123,11 +136,11 @@ public class TomEEWebappLoader extends W
 			return clean;
 		}
 
-		private void add(Collection<URL> urls, Enumeration<URL> enumUrls) {
+		private void add(Map<String, URL> urls, Enumeration<URL> enumUrls) {
             try {
                 while (enumUrls.hasMoreElements()) {
                     final URL url = enumUrls.nextElement();
-                    urls.add(url);
+                    urls.put(url.toExternalForm(), url);
                 }
             } catch (IllegalStateException ese) {
                 // ignored: if jars are already closed...shutdown for instance
@@ -135,17 +148,7 @@ public class TomEEWebappLoader extends W
         }
 
 		private static File file(URL jarUrl) {
-			String urlAsString = jarUrl.getFile();
-			if (urlAsString.startsWith("jar:")) {
-				urlAsString = urlAsString.substring(4);
-			}
-			if (urlAsString.startsWith("file:/")) {
-				urlAsString = urlAsString.substring(6);
-			}
-			if (urlAsString.endsWith("!/")) {
-				urlAsString = urlAsString.substring(0, urlAsString.length() - 2);
-			}
-			return new File(urlAsString);
+            return URLs.toFile(jarUrl);
 		}
     }
 }