[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