You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Romain Manni-Bucau (JIRA)" <ji...@apache.org> on 2013/02/25 16:54:13 UTC

[jira] [Updated] (OPENEJB-1986) Deployment of web application with white spaces in its name fails due to unencoded characters

     [ https://issues.apache.org/jira/browse/OPENEJB-1986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Romain Manni-Bucau updated OPENEJB-1986:
----------------------------------------

    Fix Version/s:     (was: 4.5.2)
                   4.6.0
    
> Deployment of web application with white spaces in its name fails due to unencoded characters
> ---------------------------------------------------------------------------------------------
>
>                 Key: OPENEJB-1986
>                 URL: https://issues.apache.org/jira/browse/OPENEJB-1986
>             Project: OpenEJB
>          Issue Type: Bug
>          Components: configuration, deployment
>            Reporter: Polina Genova
>            Assignee: Romain Manni-Bucau
>             Fix For: 4.6.0
>
>         Attachments: Space AppTest.war
>
>
> Hi, 
> The deployment of web applications with special characters (such as white spaces) in the name fails with  the following exception (tested on Tomee Webprofile 1.5.1).
> To reproduce simply deploy the attached test application:
> SEVERE: Unable to deploy collapsed ear in war StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Space AppTest]
> java.lang.IllegalArgumentException
> 	at java.net.URI.create(URI.java:842)
> 	at org.apache.openejb.config.AutoConfig.resolveDestinationLinks(AutoConfig.java:582)
> 	at org.apache.openejb.config.AutoConfig.deploy(AutoConfig.java:183)
> 	at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:338)
> 	at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:827)
> 	at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:974)
> 	at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:901)
> 	at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:118)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
> 	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> 	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
> 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> 	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> 	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
> 	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)
> 	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 5: Space AppTest
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3024)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URI.create(URI.java:840)
> 	... 22 more
> The exception is due to incorrect construction of URL in org.apache.openejb.config.AutoConfig class.
> To make special characters legal in this case, they need to be first encoded before passing them to the URI factory method create. 
> For example:
> URI.create(URLEncoder.encode(webModule.getModuleId()));
> I’ve successfully tested this fix using the standard java.net.Encoder (as I could not find any other internal encoding utility).
> Thanks and regards,
> Polina

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