You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/05/06 23:54:36 UTC
cvs commit: ws-axis/java/src/org/apache/axis/description JavaServiceDesc.java
dims 2005/05/06 14:54:36
Modified: java/src/org/apache/axis/description JavaServiceDesc.java
Log:
Fix for AXIS-1959 - Wrapper style is defined at the operation level.
URL: http://issues.apache.org/jira/browse/AXIS-1959
Revision Changes Path
1.27 +21 -8 ws-axis/java/src/org/apache/axis/description/JavaServiceDesc.java
Index: JavaServiceDesc.java
===================================================================
RCS file: /home/cvs/ws-axis/java/src/org/apache/axis/description/JavaServiceDesc.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- JavaServiceDesc.java 24 Apr 2005 15:49:01 -0000 1.26
+++ JavaServiceDesc.java 6 May 2005 21:54:36 -0000 1.27
@@ -484,17 +484,30 @@
initQNameMap();
ArrayList overloads = (ArrayList)qname2OperationsMap.get(qname);
-
if (overloads == null) {
// Nothing specifically matching this QName.
- if ((isWrapped() ||
- ((style==Style.MESSAGE) &&
- (getDefaultNamespace() == null))) &&
- (name2OperationsMap != null)) {
- // Try ignoring the namespace....?
- overloads = (ArrayList)name2OperationsMap.get(qname.getLocalPart());
+ if (name2OperationsMap != null) {
+ if ((isWrapped() ||
+ ((style == Style.MESSAGE) &&
+ (getDefaultNamespace() == null)))) {
+ // Try ignoring the namespace....?
+ overloads = (ArrayList) name2OperationsMap.get(qname.getLocalPart());
+ } else {
+ // TODO the above code is weird: a JavaServiceDesc can be document or rpc and
+ // still define a WSDL operation using a wrapper style mapping.
+ // The following code handles this case.
+ Object ops = name2OperationsMap.get(qname.getLocalPart());
+ if (ops != null) {
+ overloads = new ArrayList((Collection) ops);
+ for (Iterator iter = overloads.iterator(); iter.hasNext();) {
+ OperationDesc operationDesc = (OperationDesc) iter.next();
+ if (Style.WRAPPED != operationDesc.getStyle()) {
+ iter.remove();
+ }
+ }
+ }
+ }
}
-
// Handle the case where a single Message-style operation wants
// to accept anything.
if ((style == Style.MESSAGE) && (messageServiceDefaultOp != null))