Luke VanderHart created JRUBY-6339:
--------------------------------------

             Summary: JRuby can't load from JAR files on a path with a '#' 
symbol (breaks Tomcat 7 Parallel Deployment)
                 Key: JRUBY-6339
                 URL: https://jira.codehaus.org/browse/JRUBY-6339
             Project: JRuby
          Issue Type: Bug
          Components: Core Classes/Modules, Rails WAR Deployment
    Affects Versions: JRuby 1.6.5
         Environment: CentOS 5.5, Java 1.6
            Reporter: Luke VanderHart


Tomcat 7 parallel deployment indicates versioned WARs by placing a ##VERSION 
suffix on the WAR file, e.g, my-app##001.war. 
(http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Parallel_deployment)

When deploying a JRuby on Rails packaged with Warbler, this results in a 
RackInitializationException, the root cause of which is a MalformedURLException 
thrown from line 1146 of org.jruby.runtime.load.LoadService.java. The malformed 
url looks like 
"jar:file:/opt/apache-tomcat-7.0.23/webapps/my-app##001/WEB-INF/lib/jruby-rack-1.1.2.jar!/vendor/rack-1.3.6/rack.rb".
 

That this is a malformed URL can be verified by simply passing the string to 
the constructor of java.net.URL: it will throw a MalformedURLException. 
Everything after the sharp symbol is being interpreted as a fragment rather 
than part of the file path.

One possible solution is to escape the sharp signs in a file path using 
standard URL escaping. '##' becomes '%23%23'. Experimentation confirms that 
Java is capable of parsing and reading from the example URL given above when it 
is escaped in this way.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to