Author: mrdon
Date: Mon Jan  1 00:49:14 2007
New Revision: 491545

URL: http://svn.apache.org/viewvc?view=rev&rev=491545
Log:
Added better detection of existing namespaces by requiring an ending slash on 
the match
WW-1523

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
    
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java?view=diff&rev=491545&r1=491544&r2=491545
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
 Mon Jan  1 00:49:14 2007
@@ -349,7 +349,7 @@
             for (Iterator i = config.getPackageConfigs().values().iterator(); i
                     .hasNext();) {
                 String ns = ((PackageConfig) i.next()).getNamespace();
-                if (ns != null && prefix.startsWith(ns)) {
+                if (ns != null && prefix.startsWith(ns + "/")) {
                     if (ns.length() > namespace.length()) {
                         namespace = ns;
                     }

Modified: 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java?view=diff&rev=491545&r1=491544&r2=491545
==============================================================================
--- 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
 (original)
+++ 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
 Mon Jan  1 00:49:14 2007
@@ -116,6 +116,29 @@
         assertEquals("foo/actionName", mapping.getName());
         assertNull(mapping.getMethod());      
     }
+    
+    public void testGetMappingWithNamespaceSlash() throws Exception {
+
+        req.setupGetRequestURI("/my.hh/abc.action");
+        req.setupGetServletPath("/my.hh/abc.action");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+
+        DefaultActionMapper mapper = new DefaultActionMapper();
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("", mapping.getNamespace());
+        assertEquals("abc", mapping.getName());
+        
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        mapper = new DefaultActionMapper();
+        mapper.setSlashesInActionNames("true");
+        mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("", mapping.getNamespace());
+        assertEquals("my.hh/abc", mapping.getName());
+    }
 
     public void testGetMappingWithUnknownNamespace() throws Exception {
         setUp();


Reply via email to