dims        2002/11/19 19:13:44

  Modified:    java/src/org/apache/axis/message SOAPBody.java
                        SOAPHeader.java
               java/test/message TestSOAPEnvelope.java
  Log:
  1. Fix for Bug 14574 - NullPointer on getHeaderByName call
  2. Fix for Bug 14570 - NullPointer on getBodyByName call
  
  Notes:
  Added test cases for both as well.
  
  Revision  Changes    Path
  1.34      +3 -3      xml-axis/java/src/org/apache/axis/message/SOAPBody.java
  
  Index: SOAPBody.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPBody.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- SOAPBody.java     18 Sep 2002 16:10:28 -0000      1.33
  +++ SOAPBody.java     20 Nov 2002 03:13:42 -0000      1.34
  @@ -203,13 +203,13 @@
       {
           if (vec.isEmpty())
               return null;
  -        
  +     
  +        QName qname = new QName(namespace, localPart);
           Enumeration e = vec.elements();
           MessageElement element;
           while (e.hasMoreElements()) {
               element = (MessageElement)e.nextElement();
  -            if (element.getNamespaceURI().equals(namespace) &&
  -                element.getName().equals(localPart))
  +            if (element.getQName().equals(qname))
                   return element;
           }
           
  
  
  
  1.64      +2 -2      xml-axis/java/src/org/apache/axis/message/SOAPHeader.java
  
  Index: SOAPHeader.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHeader.java,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- SOAPHeader.java   16 Oct 2002 16:36:41 -0000      1.63
  +++ SOAPHeader.java   20 Nov 2002 03:13:43 -0000      1.64
  @@ -251,12 +251,12 @@
           if (vec.isEmpty())
               return null;
           
  +        QName qname = new QName(namespace, localPart);
           Enumeration e = vec.elements();
           MessageElement element;
           while (e.hasMoreElements()) {
               element = (MessageElement)e.nextElement();
  -            if (element.getNamespaceURI().equals(namespace) &&
  -                element.getName().equals(localPart))
  +            if (element.getQName().equals(qname))
                   return element;
           }
           
  
  
  
  1.4       +31 -0     xml-axis/java/test/message/TestSOAPEnvelope.java
  
  Index: TestSOAPEnvelope.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/message/TestSOAPEnvelope.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestSOAPEnvelope.java     10 Jul 2002 18:28:53 -0000      1.3
  +++ TestSOAPEnvelope.java     20 Nov 2002 03:13:44 -0000      1.4
  @@ -63,6 +63,10 @@
   import javax.xml.soap.SOAPBody;
   import javax.xml.soap.SOAPException;
   
  +import org.apache.axis.Message;
  +import org.apache.axis.message.SOAPBodyElement;
  +import org.apache.axis.message.SOAPHeaderElement;
  +
   /**
    * Test SOAPEnvelope class.
    *
  @@ -126,5 +130,32 @@
               assertTrue("second body added", false);
           } catch (SOAPException e) {
           }
  +    }
  +    
  +    // Test for bug #14570
  +     public void testNullpointer() throws Exception{
  +             org.apache.axis.message.SOAPEnvelope env=new 
org.apache.axis.message.SOAPEnvelope();
  +             SOAPBodyElement bdy=new SOAPBodyElement();
  +             bdy.setName("testResponse");
  +             env.addBodyElement(bdy);
  +             Message msg=new Message(env);
  +             SOAPBodyElement sbe = 
msg.getSOAPEnvelope().getBodyByName(null,"testResponse");
  +        assertTrue(sbe != null);
  +     }
  +
  +    // Test for bug 14574
  +    public void testNullpointerInHeader() throws Exception{
  +             org.apache.axis.message.SOAPEnvelope env=new 
org.apache.axis.message.SOAPEnvelope();
  +             SOAPHeaderElement hdr=new SOAPHeaderElement(null,"testHeader");
  +             env.addHeader(hdr);
  +             Message msg=new Message(env);
  +             SOAPHeaderElement she = 
msg.getSOAPEnvelope().getHeaderByName(null,"testHeader");
  +        assertTrue(she != null);
  +     }
  +    
  +    public static void main(String args[]) throws Exception {
  +        TestSOAPEnvelope tester = new TestSOAPEnvelope("TestSOAPEnvelope");
  +        tester.testNullpointer();
  +        tester.testNullpointerInHeader();
       }
   }
  
  
  


Reply via email to