You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2005/04/27 01:08:29 UTC

svn commit: r164907 - /geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java

Author: djencks
Date: Tue Apr 26 16:08:29 2005
New Revision: 164907

URL: http://svn.apache.org/viewcvs?rev=164907&view=rev
Log:
don't leave holes for out parameters

Modified:
    geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java

Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java?rev=164907&r1=164906&r2=164907&view=diff
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/client/ServiceEndpointMethodInterceptor.java Tue Apr 26 16:08:29 2005
@@ -85,7 +85,7 @@
         }
         Object response = null;
         List parameterDescs = operationInfo.getOperationDesc().getParameters();
-        Object[] unwrapped = extractFromHolders(objects, parameterDescs);
+        Object[] unwrapped = extractFromHolders(objects, parameterDescs, operationInfo.getOperationDesc().getNumInParams());
         try {
             response = call.invoke(unwrapped);
         } catch (RemoteException e) {
@@ -108,19 +108,20 @@
         }
     }
 
-    private Object[] extractFromHolders(Object[] objects, List parameterDescs) throws JavaUtils.HolderException {
+    private Object[] extractFromHolders(Object[] objects, List parameterDescs, int inParameterCount) throws JavaUtils.HolderException {
         if (objects.length != parameterDescs.size()) {
             throw new IllegalArgumentException("Mismatch parameter count: expected: " + parameterDescs.size() + ", actual: " + objects.length);
         }
-        Object[] unwrapped = new Object[objects.length];
+        Object[] unwrapped = new Object[inParameterCount];
+        int j = 0;
         for (int i = 0; objects != null && i < objects.length; i++) {
             Object parameter = objects[i];
             ParameterDesc parameterDesc = (ParameterDesc) parameterDescs.get(i);
 
             if (parameterDesc.getMode() == ParameterDesc.INOUT) {
-                unwrapped[i] = JavaUtils.getHolderValue((Holder) parameter);
+                unwrapped[j++] = JavaUtils.getHolderValue((Holder) parameter);
             } else if (parameterDesc.getMode() == ParameterDesc.IN) {
-                unwrapped[i] = parameter;
+                unwrapped[j++] = parameter;
             }
         }
         return unwrapped;