[jboss-jira] [JBoss JIRA] Commented: (JBAS-8734) API change in deployment scanner's add cause failed deployments

Snjezana Peco (JIRA) jira-events at lists.jboss.org
Tue Dec 14 11:55:53 EST 2010


    [ https://issues.jboss.org/browse/JBAS-8734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570054#comment-12570054 ] 

Snjezana Peco commented on JBAS-8734:
-------------------------------------

The problem exists because the TomcatDeployment.performDeployInternal method decodes the URL string (lines 125-126)

// Decode the URL as tomcat can't deal with paths with escape chars
warUrl = URLDecoder.decode(warUrl, "UTF-8");

The decoded warURL is used in the TomcatDeployment.performDeployInternal method to create the URL (line 161)

URL warUrl = new URL(warUrlStr);

If warUrlStr contains the space char (or any other prohibited character), the warUrl URL will be an invalid URL. The VFS.getChild(warUrl) method throws an exception (line 222)

docBase = VFS.getChild(warUrl).getPhysicalFile().getAbsolutePath();

There is also a bug in the weld integration causing JBoss AS 6 not to be installed to a directory that contains space. 
The problem happens in LibraryDiscoveryService.java, line 81. It is necessary to encode URLs.

The problem wasn't happening in JBoss AS 5.x because JBoss AS 5 didn't use the VFS.getChild(warUrl) method. The line 222 (199 in the JBoss AS 5.1 source) looks like the following:

docBase = warUrl.getFile();

The weld integration isn't included in JBoss AS 5.x.

> API change in deployment scanner's add cause failed deployments
> ---------------------------------------------------------------
>
>                 Key: JBAS-8734
>                 URL: https://issues.jboss.org/browse/JBAS-8734
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Deployers
>    Affects Versions: 6.0.0.CR1
>            Reporter: Rob Stryker
>            Assignee: Remy Maucherat
>            Priority: Critical
>         Attachments: JBAS_8734.trace
>
>
> When using the deployment scanner mbean to pass in a new URL that the JBossAS should scan for deployments, a path format which worked fine in JBoss 5 and below no longer works. Specifically, passing in a URL such as the one below:
> file:/home/rob/apps/eclipse/workspaces/main_code/runtime%20space%20workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1292215199516/deploy/Dyn888.war/
> When passing this string into the addURL mbean, the following error in the jboss console results:
> 14:52:54,927 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/Dyn888
> 14:52:54,930 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=jboss.web.deployment:war=/Dyn888 state=Create mode=Manual requiredState=Installed: java.net.URISyntaxException: Illegal character in path at index 56: file:/home/rob/apps/eclipse/workspaces/main_code/runtime space workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.0_Runtime_Server1292215199516/deploy/Dyn888.war/
> 	at java.net.URI$Parser.fail(URI.java:2809) [:1.6.0_14]
> 	at java.net.URI$Parser.checkChars(URI.java:2982) [:1.6.0_14]
> Despite that I pass in a string with clear %20 blocking out the spaces, the deployment scanner does not seem to recognize this and errors. This format of a string has no problem working in AS 5.1 however. 
> This is blocking JBossTools server integration. 

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list