You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2011/11/09 09:33:56 UTC
svn commit: r1199648 -
/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java
Author: mgrigorov
Date: Wed Nov 9 08:33:56 2011
New Revision: 1199648
URL: http://svn.apache.org/viewvc?rev=1199648&view=rev
Log:
WICKET-4203 Wicket fails to start when deployed filenames contain space characters
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java?rev=1199648&r1=1199647&r2=1199648&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/application/AbstractClassResolver.java Wed Nov 9 08:33:56 2011
@@ -17,8 +17,6 @@
package org.apache.wicket.application;
import java.lang.ref.WeakReference;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
@@ -130,25 +128,25 @@ public abstract class AbstractClassResol
{
List<URL> resultList = new ArrayList<URL>();
- // URIs should be used instead of URLs as Set keys. See WICKET-3867.
- HashSet<URI> loadedFiles = new HashSet<URI>();
+ // URL's externalForm should be used instead of URLs as Set keys. See WICKET-3867/4203.
+ Set<String> loadedResources = new HashSet<String>();
try
{
// Try the classloader for the wicket jar/bundle
Enumeration<URL> resources = Application.class.getClassLoader().getResources(name);
- loadResources(resources, loadedFiles);
+ loadResources(resources, loadedResources);
// Try the classloader for the user's application jar/bundle
resources = Application.get().getClass().getClassLoader().getResources(name);
- loadResources(resources, loadedFiles);
+ loadResources(resources, loadedResources);
// Try the context class loader
resources = getClassLoader().getResources(name);
- loadResources(resources, loadedFiles);
+ loadResources(resources, loadedResources);
- for (URI uri : loadedFiles)
+ for (String urlExternalForm : loadedResources)
{
- resultList.add(uri.toURL());
+ resultList.add(new URL(urlExternalForm));
}
}
catch (Exception e)
@@ -162,23 +160,17 @@ public abstract class AbstractClassResol
/**
*
* @param resources
- * @param loadedFiles
- * @throws URISyntaxException
- * if URL.toURI() throws
+ * @param loadedResources
*/
- private void loadResources(Enumeration<URL> resources, Set<URI> loadedFiles)
- throws URISyntaxException
+ private void loadResources(Enumeration<URL> resources, Set<String> loadedResources)
{
if (resources != null)
{
while (resources.hasMoreElements())
{
final URL url = resources.nextElement();
- URI uri = url.toURI();
- if (!loadedFiles.contains(uri))
- {
- loadedFiles.add(uri);
- }
+ String externalForm = url.toExternalForm();
+ loadedResources.add(externalForm);
}
}
}