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);
}
}
}