Bug 880892

Summary: Changes to jUDDI initialisation code to allow use of spaces within directories
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: tcunning
Component: JBossESBAssignee: tcunning
Status: VERIFIED --- QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.3.1CC: jpechane, ldimaggi, soa-p-jira
Target Milestone: ---   
Target Release: 5.3.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Release Note
Doc Text:
Users were experiencing difficulties upon using jUDDI with certain directories. Directories containing spaces in their names were not loading properly. This has been patched for the current release. Directories with spaced names now appear as expected.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description tcunning 2012-11-28 03:59:04 UTC
Description of problem:

The jUDDI code requires JBossESB to pass a correctly encoded URI for initialization - but we are not escaping them correctly.    This issue is one of the impediments to SOA-P starting with spaces in the path, and is easily fixable.

Comment 1 JBoss JIRA Server 2012-11-29 03:12:58 UTC
Tom Cunningham <tcunning> updated the status of jira JBESB-3880 to Resolved

Comment 2 JBoss JIRA Server 2012-11-29 03:12:58 UTC
Tom Cunningham <tcunning> made a comment on jira JBESB-3880

Committed Kevin's patch to allow spaces within jUDDI initialization code.

Comment 3 JBoss JIRA Server 2012-11-29 03:13:05 UTC
Tom Cunningham <tcunning> updated the status of jira JBESB-3880 to Closed

Comment 4 Jiri Pechanec 2013-01-09 07:58:57 UTC
Verified in ER3

Comment 5 Jiri Pechanec 2013-01-09 08:12:37 UTC
The issue is still present. When starting the server with JBossWS native then an exception is thrown
09:09:52,061 ERROR [AbstractKernelController] Error installing to Real: name=vfsfile:/home/jpechane/releases/531%20ER3/jboss-as/server/default/deploy/juddiv3.war/ state=PreReal mode=Manual requiredState=Real
org.jboss.deployers.spi.DeploymentException: Error during deploy: vfsfile:/home/jpechane/releases/531%20ER3/jboss-as/server/default/deploy/juddiv3.war/
	at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:185)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1454)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1172)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1113)
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:789)
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:699)
	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403)
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:778)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308)
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)
	at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
	at org.jboss.Main.boot(Main.java:229)
	at org.jboss.Main$1.call(Main.java:561)
	at org.jboss.Main$1.call(Main.java:557)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.lang.Thread.run(Thread.java:722)
Caused by: org.jboss.ws.metadata.wsdl.WSDLException: Cannot parse wsdlLocation: file:/home/jpechane/releases/531 ER3/jboss-as/server/default/tmp/jbossws/UDDICustodyTransferService_8a4a9304b23e9f42efd6518f596af799.wsdl
	at org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory.getDocument(WSDLDefinitionsFactory.java:191)
	at org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory.parse(WSDLDefinitionsFactory.java:109)
	at org.jboss.ws.metadata.umdm.ServiceMetaData.getWsdlDefinitions(ServiceMetaData.java:293)
	at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:176)
	at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)
	at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)
	at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)
	at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)
	at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)
	at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)
	... 32 more
Caused by: java.io.IOException
	at org.jboss.net.protocol.file.FileURLConnection.<init>(FileURLConnection.java:102)
	at org.jboss.net.protocol.file.Handler.openConnection(Handler.java:40)
	at java.net.URL.openConnection(URL.java:969)
	at java.net.URL.openStream(URL.java:1035)
	at org.jboss.ws.core.utils.ResourceURL.openStream(ResourceURL.java:55)
	at org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory.getDocument(WSDLDefinitionsFactory.java:167)
	... 43 more
Caused by: java.net.URISyntaxException: Illegal character in path at index 32: file:/home/jpechane/releases/531 ER3/jboss-as/server/default/tmp/jbossws/UDDICustodyTransferService_8a4a9304b23e9f42efd6518f596af799.wsdl
	at java.net.URI$Parser.fail(URI.java:2829)
	at java.net.URI$Parser.checkChars(URI.java:3002)
	at java.net.URI$Parser.parseHierarchical(URI.java:3086)
	at java.net.URI$Parser.parse(URI.java:3034)
	at java.net.URI.<init>(URI.java:595)
	at java.net.URL.toURI(URL.java:936)
	at org.jboss.net.protocol.file.FileURLConnection.<init>(FileURLConnection.java:85)
	... 48 more

Comment 6 kconner 2013-01-09 13:50:59 UTC
The patch addresses the jUDDI specific startup issue and not the WS problems.  In order to workaround the JBossWS issue you must add the following to the startup

'add -Dorg.jboss.net.protocol.file.useURI=false'

There is more information on the WS/EAP issue in JBPAPP-10417

Comment 7 kconner 2013-01-09 13:52:22 UTC
Additional information, from my original investigation

There are two ways to address this in SOA 5.3.1
- workarounds
  - add -Dorg.jboss.net.protocol.file.useURI=false to the startup
  - within bpel-ds.xml change org.jboss.soa.bpel.runtime.db.H2Database
    to org.jboss.internal.soa.esb.dependencies.H2Database or fix
    https://issues.jboss.org/browse/RIFTSAW-517

- fixes
  - https://issues.jboss.org/browse/JBESB-3880 (minor)
  - https://issues.jboss.org/browse/RIFTSAW-517 (minor)
  - https://issues.jboss.org/browse/JBPAPP-10417

Comment 8 kconner 2013-01-09 14:10:34 UTC
If JBESB-3880 is not fixed then the JuddiRMI service will fail with an exception similar to the following

06:01:37,467 ERROR [AbstractKernelController] Error installing to Start: name=jboss.esb:service=JuddiRMI state=Create mode=Manual requiredState=Installed
...
Caused by: java.net.URISyntaxException: Illegal character in path at index 33: file:/Users/kevin/soa/5.3.0/jboss soa p 5/jboss-as/server/default/data/esb.juddi.properties

This is will prevent all ESB deployments from starting as JuddiRMI is a core dependency.

If JBESB-3880 is fixed then you will move past this and see the JBossWS error when deploying juddiv3.war.

Comment 9 Jiri Pechanec 2013-01-10 06:45:28 UTC
Verified in ER3.

Is there any disadvantage of having set -Dorg.jboss.net.protocol.file.useURI=false permanently?

Comment 10 kconner 2013-01-10 13:37:13 UTC
The system property reverts a change that was made within EAP, specifically JBCOMMON-106, as this change breaks the handling of file URLs.

We should enable this property until EAP address JBPAPP-10417 and the underlying File URL processing.  We should track the underlying problem through your second issue, 893362, where I have already made this suggestion.