Jeff Thomas created AXIS2-5778:
----------------------------------
Summary: Module Deployer incorrectly invalidates MAR due to
invalid filename recognition in ModuleDeployer
Key: AXIS2-5778
URL: https://issues.apache.org/jira/browse/AXIS2-5778
Project: Axis2
Issue Type: Bug
Components: kernel
Affects Versions: 1.7.3
Environment: Windows
Reporter: Jeff Thomas
Fix For: 1.7.4, 1.8.0
When performing full build on windows, the axis2-transport-udp module fails
build in the unit test: UDPTest:testSoapOverUdpWithEchoService
It fails because it is unable to load the 'addressing.mar' Module. The module
(in my workspace) is at:
file:/C:/XXX/DEV/PWC/TRUNK/AXIS-1.7.3/modules/transport/testkit/target/classes/org/apache/axis2/transport/repo/modules/addressing.mar
The failure seems to occur in org.apache.axis2.deployment.ModuleDeployer within
the following code from method "deoloyFromUrl(...)" [side note: maybe fix the
method name to 'deployFromUrl(...)]:
{code:java}
int index = fileUrl.getPath().lastIndexOf(File.separator);
if(index > 0) {
moduleFile = fileUrl.getPath().substring(index);
} else {
moduleFile = fileUrl.getPath();
}
{code}
On Windows the File.separator is "\" (backslash) and a URL/URI the separator is
always "/" (forward slash). The effect is, that on windows the index will
always be -1 and on unix it would correctly be 113 in my case.
The result is that the module name on windows is not "addressing.mar" but the
full file URL. Because my path also has the Axis version in it, the version
recognition in AxisModule.setModuleName(...) throws an error
(NumberFormatException) and flags the module as faulty.
I believe the correct implementation is:
{code:java}
int index = fileUrl.getPath().lastIndexOf('/');
String moduleFile;
if(index > 0){
moduleFile = fileUrl.getPath().substring(index + 1);
} else {
moduleFile = fileUrl.getPath();
}
{code}
I made the following changes:
1. Changed {{File.separator}} to {{'/'}}
2. Changed {{.substring(index)}} to {{.substring(index + 1)}} so that it
returns "{{addressing.mar}}" instead of "{{/addressing.mar}}".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]