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