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