Author: dashorst
Date: Tue Jul 19 13:34:00 2011
New Revision: 1148313

URL: http://svn.apache.org/viewvc?rev=1148313&view=rev
Log:
Fixes WICKET-3918

Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapperTest.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java?rev=1148313&r1=1148312&r2=1148313&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapper.java
 Tue Jul 19 13:34:00 2011
@@ -33,6 +33,8 @@ import org.apache.wicket.request.resourc
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.lang.WicketObjects;
 import org.apache.wicket.util.string.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Generic {@link ResourceReference} encoder that encodes and decodes 
non-mounted
@@ -53,6 +55,8 @@ import org.apache.wicket.util.string.Str
  */
 class BasicResourceReferenceMapper extends AbstractResourceReferenceMapper
 {
+       private static final Logger log = 
LoggerFactory.getLogger(BasicResourceReferenceMapper.class);
+
        private final IPageParametersEncoder pageParametersEncoder;
 
        /** resource caching strategy */
@@ -100,8 +104,11 @@ class BasicResourceReferenceMapper exten
                                        segment = resourceUrl.getFileName();
 
                                        if (Strings.isEmpty(segment))
-                                               throw new NullPointerException(
-                                                       "caching strategy must 
not return an empty filename");
+                                       {
+                                               log.debug("Caching strategy {} 
returned an empty name, not mapping {}",
+                                                       
getCachingStrategy().getClass(), url);
+                                               return null;
+                                       }
                                }
                                if (name.length() > 0)
                                {

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapperTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapperTest.java?rev=1148313&r1=1148312&r2=1148313&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapperTest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/request/mapper/BasicResourceReferenceMapperTest.java
 Tue Jul 19 13:34:00 2011
@@ -438,18 +438,18 @@ public class BasicResourceReferenceMappe
                        }
                };
 
-               final PackageResourceReference reference =
-                       new PackageResourceReference(getClass(), "versioned", 
Locale.ENGLISH, "style", null)
+               final PackageResourceReference reference = new 
PackageResourceReference(getClass(),
+                       "versioned", Locale.ENGLISH, "style", null)
+               {
+                       @Override
+                       public IResource getResource()
                        {
-                               @Override
-                               public IResource getResource()
-                               {
-                                       return resource;
-                               }
-                       };
+                               return resource;
+                       }
+               };
 
-               IResourceCachingStrategy strategy =
-                       new 
FilenameWithVersionResourceCachingStrategy("-version-", new 
StaticResourceVersion("foobar"));
+               IResourceCachingStrategy strategy = new 
FilenameWithVersionResourceCachingStrategy(
+                       "-version-", new StaticResourceVersion("foobar"));
 
                INamedParameters params = new PageParameters();
                ResourceUrl url = new ResourceUrl("test.js", params);
@@ -464,10 +464,10 @@ public class BasicResourceReferenceMappe
                strategy.undecorateUrl(url);
                assertEquals("test", url.getFileName());
 
-               // this behavior is o.k. since a browser could request an 
+               // this behavior is o.k. since a browser could request an
                // previous version of the resource. for example we
                // could first have 'test-alpha.txt' which would be later 
replaced
-               // by 'test-beta.txt' but in any case will point to 
+               // by 'test-beta.txt' but in any case will point to
                // internal resource 'test.txt'
                url = new ResourceUrl("test-version-older.txt", params);
                strategy.undecorateUrl(url);
@@ -489,9 +489,20 @@ public class BasicResourceReferenceMappe
                assertEquals("test.txt", url.getFileName());
 
                // check a version that contains a dot which also marks the 
filename extension
-               strategy = new 
FilenameWithVersionResourceCachingStrategy("-version-", new 
StaticResourceVersion("1.0.4-beta"));
+               strategy = new 
FilenameWithVersionResourceCachingStrategy("-version-",
+                       new StaticResourceVersion("1.0.4-beta"));
                url = new ResourceUrl("test.txt", params);
                strategy.decorateUrl(url, reference);
                assertEquals("test-version-1.0.4-beta.txt", url.getFileName());
        }
+
+       /**
+        * Tests <a 
href="https://issues.apache.org/jira/browse/WICKET-3918";>WICKET-3918</a>.
+        */
+       public void testWicket3918()
+       {
+               Url url = 
Url.parse("wicket/resource/org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow/res/");
+               IRequestHandler handler = encoder.mapRequest(getRequest(url));
+               assertNull(handler);
+       }
 }


Reply via email to