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=16977>.
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=16977

MessageElement.getNamespaceURI() results in a NullPointer if element has an href that 
does not successfuly resolve

           Summary: MessageElement.getNamespaceURI() results in a
                    NullPointer if element has an href that does not
                    successfuly resolve
           Product: Axis
           Version: current (nightly)
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


When a message element has an href that fails to resolve, you can not lookup 
namespace URI by prefix, and you can not lookup prefixes by namespace.

Patch provided is for 1.0 build, but current nightly build still has the same 
problem.

Sample JUnit test:
    public void testMessageElementNullOngetNamespaceURI() throws Exception{
        String data="<anElement xmlns:ns1=\"aNamespace\" 
href=\"unknownProtocol://data\"/>";
        data="<SOAP-ENV:Envelope xmlns:SOAP-
ENV=\"http://schemas.xmlsoap.org/soap/envelope/\";><SOAP-ENV:Body>"+
             data+"</SOAP-ENV:Body></SOAP-ENV:Envelope>";
        MessageContext ctx=new MessageContext(new AxisClient());
        DeserializationContext dser = new DeserializationContextImpl(
                                           new org.xml.sax.InputSource(new 
StringReader(data)),
                                           ctx,
                                           Message.REQUEST);
        dser.parse();
                MessageElement elem=dser.getEnvelope().getBodyByName
("","anElement");
        assertEquals("aNamespace",elem.getNamespaceURI("ns1"));
        assertEquals("ns1",elem.getPrefix("aNamespace"));
    }

patch to the MessageElement.java:
RCS file: /home/cvspublic/xml-
axis/java/src/org/apache/axis/message/MessageElement.java,v
retrieving revision 1.128.4.1
diff -r1.128.4.1 MessageElement.java
315c315
<     
---
> 
448c448,450
<             return getRealElement().getPrefix(namespaceURI);
---
>             MessageElement realElement=getRealElement();
>                       if(realElement!=null)
>                               return realElement.getPrefix(namespaceURI);
470c472,474
<             return getRealElement().getNamespaceURI(prefix);
---
>             MessageElement realElement=getRealElement();
>                       if(realElement!=null)
>                               return realElement.getNamespaceURI(prefix);

Reply via email to