You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Mickael Pouliquen (JIRA)" <ji...@apache.org> on 2017/11/16 10:38:00 UTC
[jira] [Created] (AXIS2-5899) wsdl2java/xmlbeans issue on *nix
Mickael Pouliquen created AXIS2-5899:
----------------------------------------
Summary: wsdl2java/xmlbeans issue on *nix
Key: AXIS2-5899
URL: https://issues.apache.org/jira/browse/AXIS2-5899
Project: Axis2
Issue Type: Bug
Components: codegen
Affects Versions: 1.7.6, 1.4.1
Environment: linux (debian/redhat)
all axis2 versions impacted
Reporter: Mickael Pouliquen
The wsdl2java command with xmlbeans code generation applied to a complex wsdl with schemas redefinitions FAILS on LINUX os but NOT on WINDOWS os:
wsdl2java.sh -o out -d xmlbeans -or -noBuildXML -uri sample.wsdl
... error on *nix platforms only
The issue was initially produced on axis2-1.4.1, reproduced on latest version axis2-1.7.6
This platform specific issue comes from the method 'getFileFromURI' in "./modules/xmlbeans/src/org/apache/axis2/xmlbeans/CodeGenerationUtility.java": the method remove the prefix of the url/uri-like path param. It works on windows, but on unix it removes the root slash.
private File getFileFromURI(String path) {
if(path.startsWith("file:///")){
path = path.substring(8);
} else if(path.startsWith("file://")){
path = path.substring(7);
} else if(path.startsWith("file:/")){
path = path.substring(6);
}
return new File(path);
}
Exemple,
'file:/drive:/dir1/dir2/file1' becomes 'drive:/dir1/dir2/file1' => OK
'file:/dir1/dir2/file1' becomes 'dir1/dir2/file1' => KO
A fix could be:
private File getFileFromURI(String path) {
//on windows, will remove the 'file:' prefix and ALL slashes
//on unix, will remove the 'file:' prefix and keep the ROOT slash
int offset = "/".equals(File.separator) ? 1 : 0;
if(path.startsWith("file:///")){
path = path.substring(8-offset);
} else if(path.startsWith("file://")){
path = path.substring(7-offset);
} else if(path.startsWith("file:/")){
path = path.substring(6-offset);
}
return new File(path);
}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org