You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/05 17:00:39 UTC
svn commit: r741152 - in
/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws:
processor/internal/ParameterProcessor.java
validator/WrapperStyleNameCollisionValidator.java
Author: dkulp
Date: Thu Feb 5 16:00:39 2009
New Revision: 741152
URL: http://svn.apache.org/viewvc?rev=741152&view=rev
Log:
[CXF-2024] If only one part in the return wrapper, there isn't a conflict. If multple parts, there is.
Modified:
cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/validator/WrapperStyleNameCollisionValidator.java
Modified: cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=741152&r1=741151&r2=741152&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Thu Feb 5 16:00:39 2009
@@ -334,19 +334,21 @@
if (outputWrapElement.size() == 1 && inputWrapElement != null) {
QName outElement = outputWrapElement.iterator().next();
boolean sameWrapperChild = false;
- for (QName inElement : inputWrapElement) {
- if (isSameWrapperChild(inElement, outElement)) {
- JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement,
- JavaType.Style.INOUT, outputPart);
- if (!qualified) {
- jp.setTargetNamespace("");
- }
- addParameter(method, jp);
- sameWrapperChild = true;
- if (method.getReturn() == null) {
- addVoidReturn(method);
+ if (outputWrapElement.size() > 1) {
+ for (QName inElement : inputWrapElement) {
+ if (isSameWrapperChild(inElement, outElement)) {
+ JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement,
+ JavaType.Style.INOUT, outputPart);
+ if (!qualified) {
+ jp.setTargetNamespace("");
+ }
+ addParameter(method, jp);
+ sameWrapperChild = true;
+ if (method.getReturn() == null) {
+ addVoidReturn(method);
+ }
+ break;
}
- break;
}
}
if (!sameWrapperChild) {
@@ -638,13 +640,13 @@
private boolean isSamePart(MessagePartInfo part1, MessagePartInfo part2) {
QName qname1 = part1.getElementQName();
QName qname2 = part2.getElementQName();
+ QName tname1 = part1.getTypeQName();
+ QName tname2 = part2.getTypeQName();
if (qname1 != null && qname2 != null) {
- return qname1.equals(qname2);
+ return qname1.equals(qname2) && (tname1 == null || tname1.equals(tname2));
}
- qname1 = part1.getTypeQName();
- qname2 = part2.getTypeQName();
- if (qname1 != null && qname2 != null) {
- return qname1.equals(qname2);
+ if (tname1 != null && tname2 != null) {
+ return tname1.equals(tname2);
}
return false;
}
Modified: cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/validator/WrapperStyleNameCollisionValidator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/validator/WrapperStyleNameCollisionValidator.java?rev=741152&r1=741151&r2=741152&view=diff
==============================================================================
--- cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/validator/WrapperStyleNameCollisionValidator.java (original)
+++ cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/validator/WrapperStyleNameCollisionValidator.java Thu Feb 5 16:00:39 2009
@@ -20,6 +20,7 @@
package org.apache.cxf.tools.wsdlto.frontend.jaxws.validator;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import javax.xml.namespace.QName;
@@ -116,15 +117,17 @@
}
if (output != null) {
- for (WrapperElement element : ProcessorUtil.getWrappedElement(context,
- output.getElementQName())) {
- if (names.containsKey(element.getElementName())
- && !(names.get(element.getElementName()) == element.getSchemaTypeName()
- || names.get(element.getElementName()).equals(element.getSchemaTypeName()))) {
- handleErrors(names.get(element.getElementName()), element);
- return false;
- } else {
- names.put(element.getElementName(), element.getSchemaTypeName());
+ List<WrapperElement> els = ProcessorUtil.getWrappedElement(context, output.getElementQName());
+ if (els.size() > 1) {
+ for (WrapperElement element : els) {
+ if (names.containsKey(element.getElementName())
+ && !(names.get(element.getElementName()) == element.getSchemaTypeName()
+ || names.get(element.getElementName()).equals(element.getSchemaTypeName()))) {
+ handleErrors(names.get(element.getElementName()), element);
+ return false;
+ } else {
+ names.put(element.getElementName(), element.getSchemaTypeName());
+ }
}
}
}