[CXF-6731/CXF-6580] Fix bug introduced by CXF-6580 # Conflicts: # tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/d8d709cf Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/d8d709cf Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/d8d709cf Branch: refs/heads/3.0.x-fixes Commit: d8d709cfa69e99f81cf0fd3e21357be90040ea6a Parents: 8e4d8ed Author: Daniel Kulp <dk...@apache.org> Authored: Fri Mar 31 14:22:50 2017 -0400 Committer: Daniel Kulp <dk...@apache.org> Committed: Fri Mar 31 15:33:18 2017 -0400 ---------------------------------------------------------------------- .../wsdlto/databinding/jaxb/JAXBDataBinding.java | 17 +++++++++++++---- .../cxf/tools/wsdlto/jaxws/CodeGenBugTest.java | 8 ++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/d8d709cf/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java ---------------------------------------------------------------------- diff --git a/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java b/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java index 8daf996..e9f1611 100644 --- a/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java +++ b/tools/wsdlto/databinding/jaxb/src/main/java/org/apache/cxf/tools/wsdlto/databinding/jaxb/JAXBDataBinding.java @@ -604,12 +604,12 @@ public class JAXBDataBinding implements DataBindingProfile { return result; } - @SuppressWarnings("unchecked") private void addSchemas(Options opts, SchemaCompiler schemaCompiler, SchemaCollection schemaCollection) { - Set<String> ids = new HashSet<String>(); + Set<String> ids = new HashSet<>(); + @SuppressWarnings("unchecked") List<ServiceInfo> serviceList = (List<ServiceInfo>)context.get(ToolConstants.SERVICE_LIST); for (ServiceInfo si : serviceList) { for (SchemaInfo sci : si.getSchemas()) { @@ -672,8 +672,10 @@ public class JAXBDataBinding implements DataBindingProfile { continue; } String key = schema.getSourceURI(); + String tns = schema.getTargetNamespace(); + String ltns = schema.getLogicalTargetNamespace(); // accepting also a null tns (e.g., reported by apache.ws.xmlschema for no-namespace) - if (ids.contains(key)) { + if (ids.contains(key) || (tns == null && !StringUtils.isEmpty(ltns))) { continue; } if (key.startsWith("file:") || key.startsWith("jar:")) { @@ -706,7 +708,14 @@ public class JAXBDataBinding implements DataBindingProfile { } } } - ids.clear(); + addSchemasForServiceInfos(catalog, serviceList, opts, schemaCompiler, schemaCollection); + } + private void addSchemasForServiceInfos(OASISCatalogManager catalog, + List<ServiceInfo> serviceList, + Options opts, + SchemaCompiler schemaCompiler, + SchemaCollection schemaCollection) { + Set<String> ids = new HashSet<>(); for (ServiceInfo si : serviceList) { for (SchemaInfo sci : si.getSchemas()) { String key = sci.getSystemId(); http://git-wip-us.apache.org/repos/asf/cxf/blob/d8d709cf/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java ---------------------------------------------------------------------- diff --git a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java index 27236f8..f3cc145 100644 --- a/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java +++ b/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java @@ -1196,6 +1196,14 @@ public class CodeGenBugTest extends AbstractCodeGenTest { fail("shouldn't get exception"); } } + + + @Test + public void testsdfasdf() throws Exception { + env.put(ToolConstants.CFG_WSDLURL, "/Users/dkulp/Downloads/test/WSDL.wsdl"); + processor.setContext(env); + processor.execute(); + } @Test public void testCXF5280() throws Exception {