You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2009/02/18 17:41:41 UTC

svn commit: r745564 - /openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java

Author: jgallimore
Date: Wed Feb 18 16:41:41 2009
New Revision: 745564

URL: http://svn.apache.org/viewvc?rev=745564&view=rev
Log:
OPENEJB-999 encode + character as %2B - it seems that in the encoding/decoding process its being mistaken for a space

Modified:
    openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java

Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java?rev=745564&r1=745563&r2=745564&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatEmbedder.java Wed Feb 18 16:41:41 2009
@@ -55,14 +55,19 @@
             // Use reflection to add the openejb-tomcat-loader.jar file to the repository of WebappClassLoader. 
             // WebappClassLoader will now search for classes in this jar too
             File thisJar = getThisJar();
-            webappClClass.getMethod("addRepository", String.class).invoke(childCl, thisJar.toURI().toString());
+            String thisJarUrl = thisJar.toURI().toString();
+            thisJarUrl = thisJarUrl.replaceAll("\\+", "%2B");
+            webappClClass.getMethod("addRepository", String.class).invoke(childCl, thisJarUrl);
 
             // childCl.addRepository(openejb-loader.jar)
             // Use reflection to add the openejb-loader.jar file to the repository of WebappClassLoader. 
             // WebappClassLoader will now search for classes in this jar too
 
             File jarFile = findOpenEJBJar(openejbWar, "openejb-loader");
-            webappClClass.getMethod("addRepository", String.class).invoke(childCl, jarFile.toURI().toString());
+            String openejbLoaderUrl = jarFile.toURI().toString();
+            openejbLoaderUrl = openejbLoaderUrl.replaceAll("\\+", "%2B");
+
+            webappClClass.getMethod("addRepository", String.class).invoke(childCl, openejbLoaderUrl);
 
             // childCl.start()
             webappClClass.getMethod("start").invoke(childCl);
@@ -91,6 +96,10 @@
 
             URI uri = null;
             String url = classURL.toExternalForm();
+            if (url.contains("+")) {
+                url = url.replaceAll("\\+", "%2B");
+            }
+
             if (url.contains(" ")) {
                 url = url.replaceAll(" ", "%20");
             }
@@ -107,6 +116,7 @@
                 path = path.substring(0, path.length() - classFileName.length());
             }
 
+            path = path.replaceAll("\\+", "%2B");
             return new File(URLDecoder.decode(path));
         } catch (Exception e) {
             throw new IllegalStateException(e);