DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14666>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14666

NullPointerException taken in ArraySerializer when specifying array as input parameter.

           Summary: NullPointerException taken in ArraySerializer when
                    specifying array as input parameter.
           Product: Axis
           Version: 1.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Basic Architecture
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


This bug report entered as suggested by Davanum Srinivas.

Using 1.0 version of Axis, I receive NullPointerException in Axis client
application that specifies an array for an input parameter.  Problem appears to
be resolved in code change made 11/18/2002, 00:39, in SOAPPart.java (removing
log.debug call in setCurrentForm).  This problem did not occur in the RC1
release.  Test case below submitted for future testing of this issue.


/*
 * Test NullPointerException using Array input parameter.
 */

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.soap.SOAPConstants;
import org.apache.axis.*;
import org.apache.axis.message.*;

import java.util.Vector;

public class InputArray {
  public static void main(String [] args ) {
    try {
      Service service = new Service();
      Call call = (Call) service.createCall();

      String tab_items [] = new String [4];
      tab_items [0] = "table item 1";
      tab_items [1] = "table item 1";
      tab_items [2] = "table item 1";
      tab_items [3] = "table item 1";

      call.addParameter("Input_Array", org.apache.axis.Constants.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
      call.addParameter("Result", org.apache.axis.Constants.XSD_STRING,
javax.xml.rpc.ParameterMode.OUT);

      call.setReturnType(org.apache.axis.Constants.XSD_STRING);
      call.setMaintainSession(true);

      String endpoint = "http://10.0.1.64:5505/tester";;
      call.setTargetEndpointAddress(new java.net.URL(endpoint));
      call.setReturnType(org.apache.axis.Constants.XSD_STRING);
      call.setReturnClass(String.class);
      String ret = new String();

      RPCElement[] input = new RPCElement[1];
      RPCParam in_table = new RPCParam("http://local_service.com/";,
"Input_Array", tab_items);

      input[0] = new RPCElement("http://10.0.1.64:5505/tester";, "echoString",
new Object[]{in_table});
      Vector echo_elems = (Vector) call.invoke( input );     // actual invoke here.
      System.out.println("\n  Number of echo elements returned: " +
echo_elems.size());

    } catch (Exception e) {
      System.err.println(e.toString());
    }
  }
}



The stack trace from the NullPointerException is:
R:\AXIS-1_0\TESTCASE\InputArray>java InputArray
- Exception:
java.lang.NullPointerException
        at org.apache.axis.encoding.ser.ArraySerializer.serialize(ArraySerialize
r.java:111)
        at org.apache.axis.encoding.SerializationContextImpl.serializeActual(Ser
ializationContextImpl.java:1231)
        at org.apache.axis.encoding.SerializationContextImpl.serialize(Serializa
tionContextImpl.java:756)
        at org.apache.axis.message.RPCParam.serialize(RPCParam.java:224)
        at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:305)
        at org.apache.axis.message.MessageElement.output(MessageElement.java:746
)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:142)
        at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:401
)
        at org.apache.axis.message.MessageElement.output(MessageElement.java:746
)
        at org.apache.axis.message.MessageElement.getAsString(MessageElement.jav
a:668)
        at org.apache.axis.message.MessageElement.toString(MessageElement.java:7
90)
        at java.lang.String.valueOf(String.java:2177)
        at java.lang.StringBuffer.append(StringBuffer.java:361)
        at org.apache.axis.SOAPPart.setCurrentForm(SOAPPart.java:308)
        at org.apache.axis.SOAPPart.setCurrentMessage(SOAPPart.java:300)
        at org.apache.axis.SOAPPart.<init>(SOAPPart.java:184)
        at org.apache.axis.Message.setup(Message.java:342)
        at org.apache.axis.Message.<init>(Message.java:245)
        at org.apache.axis.client.Call.invoke(Call.java:1293)
        at InputArray.main(InputArray.java:48)

Reply via email to