axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Venkat Reddy (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-1537) getPreviousSibling results in NullPointerException on Envelopes
Date Wed, 04 May 2005 15:47:08 GMT
     [ http://issues.apache.org/jira/browse/AXIS-1537?page=comments#action_64476 ]
     
Venkat Reddy commented on AXIS-1537:
------------------------------------

I think this is already fixed by a dims commit in last December by adding a null check after
the call to getParentElement() inside getPreviousSibling(). Can't reproduce any more.

> getPreviousSibling results in NullPointerException on Envelopes
> ---------------------------------------------------------------
>
>          Key: AXIS-1537
>          URL: http://issues.apache.org/jira/browse/AXIS-1537
>      Project: Axis
>         Type: Bug
>   Components: SAAJ
>     Versions: beta-3
>  Environment: Windows 2000, JDK 1.3
>     Reporter: Michael Theroux
>     Assignee: Venkat Reddy
>     Priority: Minor
>  Attachments: MessageElement.java.patch, MessageElement.java.patch, NodeImpl.java.diff
>
> I am attempting to run an XSLT directly against a result SOAPEnvelope and have hit a
couple of issues.
> One issue is that SOAPEnvelope.getPreviousSibling() will result in a NullPointerException.
 Below is a code snippet:
> /*
>  * Copyright 2001-2004 The Apache Software Foundation.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
>  * You may obtain a copy of the License at
>  *
>  *      http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> import org.apache.axis.client.Call;
> import org.apache.axis.client.Service;
> import javax.xml.namespace.QName;
> public class Test
> {
>    public static void main(String [] args) {
>        try {
>            String endpoint =
>                     "http://webservices.sonicsw.com:8080/axis/CreditCheck.jws";
>            Service  service = new Service();
>            Call     call    = (Call) service.createCall();
>            call.setTargetEndpointAddress( new java.net.URL(endpoint) );
>            call.setOperationName(new QName("http://webservices.sonicsw.com:8080/axis/CreditCheck.jws",
"checkCredit") );
>            // Call to addParameter/setReturnType as described in user-guide.html
>            call.addParameter("custid",
>                              org.apache.axis.Constants.XSD_STRING,
>                              javax.xml.rpc.ParameterMode.IN);
>            call.addParameter("amount",
>                              org.apache.axis.Constants.XSD_FLOAT,
>                              javax.xml.rpc.ParameterMode.IN);
>            call.setReturnType(org.apache.axis.Constants.XSD_BOOLEAN);
>            Boolean ret = (Boolean) call.invoke( new Object[] { "1234", new Float( 1.24
) } );
>            org.w3c.dom.Node n = call.getResponseMessage().getSOAPEnvelope();
>            n.getPreviousSibling();
> /*           Node parentNode = n.getParentNode();
>            if( parentNode == null )
>                System.err.println( "PARENT NODE IS NULL!" );*/
> //           String test = com.sonicsw.xqimpl.script.Util.getElementAsString( (org.w3c.dom.Element)n,
true );
>            String test = org.apache.axis.utils.DOM2Writer.nodeToString( n, true );
>            System.out.println("Resulting XML: " + test );
>        } catch (Exception e) {
>            e.printStackTrace();
>            System.err.println(e.toString());
>        }
>    }
> }
> n.getPreviousSibling() throws a NullPointerException.
> A workaround is to call getAsDOM() on the Envelope.  
> However, performance may make this undesireable.  getAsDOM() will cause Axis's object
model to be serialized as a string, then a subsequent deserialization will occur to create
a native DOM because of performanceit results in a serialization of Axis's DOM structure to
a string, then another deserialization occurs to create a DOM in your parser (such as Xerces).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message