You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/01/22 00:57:17 UTC

svn commit: r614063 - /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java

Author: lryan
Date: Mon Jan 21 15:57:16 2008
New Revision: 614063

URL: http://svn.apache.org/viewvc?rev=614063&view=rev
Log:
Fix VM crash issue with recursive JAR loading

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java?rev=614063&r1=614062&r2=614063&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/JsFeatureLoader.java Mon Jan 21 15:57:16 2008
@@ -26,9 +26,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.JarURLConnection;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLConnection;
-import java.net.URISyntaxException;
+import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -150,6 +151,7 @@
               loadFiles(new File[]{f}, features);
             } else {
               URLConnection urlConnection = resourceUrl.openConnection();
+              List<String> featurePaths = new ArrayList<String>();
               if (urlConnection instanceof JarURLConnection) {
                 JarURLConnection jarUrlConn = (JarURLConnection)urlConnection;
                 JarFile jar = jarUrlConn.getJarFile();
@@ -159,11 +161,14 @@
                   JarEntry jarEntry =  jarEntries.nextElement();
                   if (jarEntry.getName().startsWith(file) &&
                       jarEntry.getName().endsWith("feature.xml")) {
-                    ParsedFeature feature = processResource(jarEntry.getName());
-                    if (feature != null) {
-                      features.put(feature.name, feature);
-                    }
+                    featurePaths.add(jarEntry.getName());
                   }
+                }
+              }
+              for (String path : featurePaths) {
+                ParsedFeature feature = processResource(path);
+                if (feature != null) {
+                  features.put(feature.name, feature);
                 }
               }
             }