Make the fix for bug 49555 more robust
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 11 Jul 2010 16:37:32 +0000 (16:37 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sun, 11 Jul 2010 16:37:32 +0000 (16:37 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@963106 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/jasper/compiler/ELFunctionMapper.java
test/org/apache/el/TestELInJsp.java
test/org/apache/el/TesterFunctions.java
test/webapp-3.0/WEB-INF/bugs.tld

index 53d931e..235b402 100644 (file)
@@ -294,8 +294,14 @@ public class ELFunctionMapper {
          * @param className Binary class name
          * @return          Canonical equivalent
          */
-        private String getCanonicalName(String className) {
-            return className.replace('$', '.');
+        private String getCanonicalName(String className) throws JasperException {
+            Class<?> clazz;
+            try {
+                clazz = Class.forName(className);
+            } catch (ClassNotFoundException e) {
+                throw new JasperException(e);
+            }
+            return clazz.getCanonicalName();
         }
     }
 }
index e3bcf32..fe1ac77 100644 (file)
@@ -322,7 +322,7 @@ public class TestELInJsp extends TomcatBaseTest {
                 "/test/bug49555.jsp");
         
         String result = res.toString();
-        assertEcho(result, "00-" + TesterFunctions.Inner.RETVAL);
+        assertEcho(result, "00-" + TesterFunctions.Inner$Class.RETVAL);
     }
 
     public void testELMisc() throws Exception {
index 5e0a9ed..4e7c45e 100644 (file)
@@ -22,7 +22,7 @@ public class TesterFunctions {
         return input.trim();
     }
 
-    public static class Inner {
+    public static class Inner$Class {
         
         public static final String RETVAL = "Return from bug49555";
         public static String bug49555() {
index 2b8c685..0369c24 100644 (file)
@@ -69,7 +69,7 @@
   </tag>
   <function>
     <name>bug49555</name>
-    <function-class>org.apache.el.TesterFunctions$Inner</function-class>
+    <function-class>org.apache.el.TesterFunctions$Inner$Class</function-class>
     <function-signature>java.lang.String bug49555()</function-signature>
   </function>
 </taglib>
\ No newline at end of file