[
http://jira.jboss.com/jira/browse/JBAS-3433?page=comments#action_12340113 ]
Ralph Apel commented on JBAS-3433:
----------------------------------
Test org.jboss.test.naming.test.EjbLinkUnitTestCase may be run to reproduce this issue.
Previously, replace the server "all" config's tmp subdir by e.g. tmp -->
/tmp
You should then see something like
14:51:45,255 INFO [EARDeployer] Init J2EE application:
file:/usr/share/jbossas/testsuite/output/lib/naming.ear
14:51:45,438 INFO [EjbModule] Deploying SessionB
14:51:45,530 INFO [EjbModule] Deploying SessionA
14:51:45,539 INFO [EjbModule] Deploying SessionB
****************************
14:51:45,576 WARN [EjbUtil] Can't locate deploymentInfo for target:
file:/tmp/deploy/tmp52106naming.ear-
contents/subdir/naminga.jar
****************************
14:51:45,579 WARN [ServiceController] Problem starting service
jboss.j2ee:jndiName=naming/SessionB,service=EJB
org.jboss.deployment.DeploymentException: Failed to resolve ejb-link:
subdir/naminga.jar#SessionA make by ejb-name: ejb/RelativeSessionA
Canonical paths enforced inconsistently
---------------------------------------
Key: JBAS-3433
URL:
http://jira.jboss.com/jira/browse/JBAS-3433
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Deployment services
Affects Versions: JBossAS-4.0.4.GA
Environment: Linux/Unix
Reporter: Ralph Apel
Assigned To: Dimitris Andreadis
DeploymentInfo objects are created with file-URLs without previously canonicalizing the
file's path.
If the original URL wasn't canonical (e.g. with Linux/Unix symlinks involved), this
discrepancy leads to failure of at least EjbUtil's resolution of ejb-link:
The URL to be searched for among DeploymentInfos by the MBeanServer is constructed from
the canonicalized path, but the DeploymentInfo which should be found has a
non canonical file URL (i.e. without symlinks resolved).
I have been able to provisionally solve this issue by patching EjbUtil to not invoke
target = Strings.toURL(ourPath);
(which directly or indirectly calls getCanonicalPath()) but a particular code fragment
instead.
This kind of solution surely isn't the right one. IMO, as the DeploymentInfo.url
field is used as a key to the DeploymentInfo collections, this key should be always
unique, i.e. canonicalized.
My suggestion would be to change any DeploymentInfo instantiation AND any search for
DeploymentInfo instances to use canonicalized file URLs.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira