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 de...@apache.org on 2007/02/26 10:02:38 UTC

svn commit: r511759 - /webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java

Author: deepal
Date: Mon Feb 26 01:02:38 2007
New Revision: 511759

URL: http://svn.apache.org/viewvc?view=rev&rev=511759
Log:
fixing AXIS2-2215

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java?view=diff&rev=511759&r1=511758&r2=511759
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/rpc/receivers/RPCUtil.java Mon Feb 26 01:02:38 2007
@@ -27,6 +27,8 @@
 import javax.xml.stream.XMLStreamReader;
 import java.lang.reflect.Array;
 import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Iterator;
 /*
 * Copyright 2004,2005 The Apache Software Foundation.
 *
@@ -210,14 +212,35 @@
                             objArray, service.isElementFormDefault(), service.getTypeTable());
                     envelope.getBody().addChild(bodyChild);
                 } else {
-                    if (service.isElementFormDefault()) {
-                        RPCUtil.processResponse(fac, resObject, bodyContent, ns,
-                                envelope, method, service.isElementFormDefault(),
+                    if(SimpleTypeMapper.isCollection(resObject.getClass())){
+                        Collection collection = (Collection) resObject;
+                        int size = collection.size();
+                        Object values [] = new Object[size];
+                        int count = 0;
+                        for (Iterator iterator = collection.iterator(); iterator.hasNext();)
+                        {
+                            values[count] = iterator.next();
+                            count ++;
+
+                        }
+                        QName resName = new QName(elementQName.getNamespaceURI(),
+                                method.getName() + "Response",
+                                elementQName.getPrefix());
+                        OMElement bodyChild = RPCUtil.getResponseElement(resName,
+                                values,
+                                service.isElementFormDefault(),
                                 service.getTypeTable());
+                        envelope.getBody().addChild(bodyChild);
                     } else {
-                        RPCUtil.processResponse(fac, resObject, bodyContent, ns,
-                                envelope, method, service.isElementFormDefault(),
-                                null);
+                        if (service.isElementFormDefault()) {
+                            RPCUtil.processResponse(fac, resObject, bodyContent, ns,
+                                    envelope, method, service.isElementFormDefault(),
+                                    service.getTypeTable());
+                        } else {
+                            RPCUtil.processResponse(fac, resObject, bodyContent, ns,
+                                    envelope, method, service.isElementFormDefault(),
+                                    null);
+                        }
                     }
                 }
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org