ws-soap-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ney...@locus.apache.org
Subject cvs commit: xml-soap/java/src/org/apache/soap/util/xml QName.java
Date Tue, 07 Nov 2000 01:26:32 GMT
neyama      00/11/06 17:26:31

  Modified:    java/src/org/apache/soap/util/xml QName.java
  Log:
  Bug fix for the following NullPointerException:
  -----------------
  A NullPointerException is thrown in unmarshalling an XML in which SOAP
  Body element has "Id" attribute. I'm wondering setting an "Id"
  attribute is allowed according to the schema of SOAP, because SOAP Body
  element allows any attribute.
  
  The environment is:
     Apache SOAP: The latest version in CVS
     Xerces 1.2.0
  
  The reason seems to be that the namespace URI of "Id" attribute is null.
  The exception was as follows:
  --------- Begin exception
  Exception in thread "main" java.lang.NullPointerException
  	at org.apache.soap.util.xml.QName.setNamespaceURI(QName.java:108)
  	at org.apache.soap.util.xml.QName.<init>(QName.java:102)
  	at org.apache.soap.AttributeHandler.unmarshall(AttributeHandler.java:231)
  	at org.apache.soap.Body.unmarshall(Body.java:183)
  	at org.apache.soap.Envelope.unmarshall(Envelope.java:243)
  	at test.main(test.java:11)
  --------- End exception
  
  The test program that causes the NullPointerException is as follows:
  --------- Begin test program
  import java.io.*;
  
  import org.w3c.dom.Document ;
  import org.apache.soap.Envelope ;
  import org.apache.soap.util.xml.XercesParserLiaison ;
  
  public class test {
      public static void main(String[] args) throws Exception {
          String xml ="<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body
Id=\"body\"></s:Body></s:Envelope>";
          Document dom = new XercesParserLiaison().read("test", new StringReader(xml)) ;
          Envelope.unmarshall(dom.getDocumentElement()) ;
      }
  }
  --------- End test program
  
  Revision  Changes    Path
  1.5       +1 -1      xml-soap/java/src/org/apache/soap/util/xml/QName.java
  
  Index: QName.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/xml/QName.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- QName.java	2000/09/04 21:37:29	1.4
  +++ QName.java	2000/11/07 01:26:30	1.5
  @@ -105,7 +105,7 @@
     
     public void setNamespaceURI(String namespaceURI)
     {
  -    this.namespaceURI = namespaceURI.intern();
  +    this.namespaceURI = (namespaceURI == null ? "" : namespaceURI).intern();
     }
   
     public String getNamespaceURI()
  
  
  

Mime
View raw message