You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2011/11/22 09:34:08 UTC

svn commit: r1204856 - in /tomcat/trunk: java/org/apache/tomcat/util/http/mapper/Mapper.java test/org/apache/tomcat/util/http/mapper/TestMapper.java

Author: kkolinko
Date: Tue Nov 22 08:34:06 2011
New Revision: 1204856

URL: http://svn.apache.org/viewvc?rev=1204856&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=52225
Fix ClassCastException in Alias added for existing host via JMX

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java
    tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java?rev=1204856&r1=1204855&r2=1204856&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/mapper/Mapper.java Tue Nov 22 08:34:06 2011
@@ -147,7 +147,7 @@ public final class Mapper {
         Host newHost = new Host();
         newHost.name = alias;
         newHost.contextList = realHost.contextList;
-        newHost.object = realHost;
+        newHost.object = realHost.object;
         if (insertMap(hosts, newHosts, newHost)) {
             hosts = newHosts;
         }

Modified: tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java?rev=1204856&r1=1204855&r2=1204856&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/mapper/TestMapper.java Tue Nov 22 08:34:06 2011
@@ -48,6 +48,7 @@ public class TestMapper {
         mapper.addHost("zzzuyopjvewpovewjhfewoih", new String[0], "blah12");
         mapper.addHost("xxxxgqwiwoih", new String[0], "blah13");
         mapper.addHost("qwigqwiwoih", new String[0], "blah14");
+        mapper.addHostAlias("iowejoiejfoiew", "iowejoiejfoiew_alias");
 
         mapper.setDefaultHostName("ylwrehirkuewh");
 
@@ -84,11 +85,13 @@ public class TestMapper {
 
     @Test
     public void testAddHost() throws Exception {
-        // Check we have the right number (add 16 but one is a duplicate)
-        assertEquals(15, mapper.hosts.length);
+        // Check we have the right number
+        // (added 17 including one host alias but one is a duplicate)
+        assertEquals(16, mapper.hosts.length);
 
         // Make sure adding a duplicate *does not* overwrite
-        assertEquals("blah7", mapper.hosts[3].object);
+        final int iowPos = 3;
+        assertEquals("blah7", mapper.hosts[iowPos].object);
 
         // Check for alphabetical order of host names
         String previous;
@@ -98,6 +101,14 @@ public class TestMapper {
             current = mapper.hosts[i].name;
             assertTrue(previous.compareTo(current) < 0);
         }
+
+        // Check that host alias has the same data
+        Mapper.Host host = mapper.hosts[iowPos];
+        Mapper.Host alias = mapper.hosts[iowPos + 1];
+        assertEquals("iowejoiejfoiew", host.name);
+        assertEquals("iowejoiejfoiew_alias", alias.name);
+        assertEquals(host.contextList, alias.contextList);
+        assertEquals(host.object, alias.object);
     }
 
     @Test
@@ -105,6 +116,8 @@ public class TestMapper {
         MappingData mappingData = new MappingData();
         MessageBytes host = MessageBytes.newInstance();
         host.setString("iowejoiejfoiew");
+        MessageBytes alias = MessageBytes.newInstance();
+        alias.setString("iowejoiejfoiew_alias");
         MessageBytes uri = MessageBytes.newInstance();
         uri.setString("/foo/bar/blah/bobou/foo");
         uri.toChars();
@@ -132,6 +145,19 @@ public class TestMapper {
         assertEquals("/bobou", mappingData.wrapperPath.toString());
         assertEquals("/foo", mappingData.pathInfo.toString());
         assertTrue(mappingData.redirectPath.isNull());
+
+        mappingData.recycle();
+        uri.setString("/foo/bar/bla/bobou/foo");
+        uri.toChars();
+        uri.getCharChunk().setLimit(-1);
+        mapper.map(alias, uri, null, mappingData);
+        assertEquals("blah7", mappingData.host);
+        assertEquals("context3", mappingData.context);
+        assertEquals("wrapper7", mappingData.wrapper);
+        assertEquals("/foo/bar/bla", mappingData.contextPath.toString());
+        assertEquals("/bobou", mappingData.wrapperPath.toString());
+        assertEquals("/foo", mappingData.pathInfo.toString());
+        assertTrue(mappingData.redirectPath.isNull());
     }
 
     @Test



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org