Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2.9
-
None
-
None
-
Ubuntu, JDK 1.6
Description
The class org.apache.axiom.om.impl.dom.ElementImpl implements both DOM Element and OMElement interfaces. According to DOM API the method hasAttrbutes() should return true if there are attributes attached to current node. Also this method will return true if there are namespaces attached to current node. But according to current implementation the ElementImpl class only checks for namespace nullability. This code will fail if we have a xml like follows,
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-739587016">
<GetDirectionsResponse xmlns="http://www.example.org/webservices/">
<GetDirectionsResult>
<drivingdirections xmlns="">
<route distanceToTravel="500m" finalStep="false" id="0">Head south on Grove St</route>
</drivingdirections>
</GetDirectionsResult>
</GetDirectionsResponse>
</soapenv:Body>
In above xml the node "drivingdirections" is having an empty namespace. But for "drivingdirections" node, the method "hasAttribute()" should return true, as there is a namespace attached to it. But current implementation of ElementImpl returns false.
Also getAttributes() method should return empty namespace ("xmlns=\"\"") for "drivingdirections" node. Current implementation doesnt return empty namespace as an attribute. Since namespace of drivingdirections is empty, namespace of child elements of "drivingdirections" are also null. Therefore hasAttribute() method will return false for even elements like "route". ("route" element has attributes, therefore hasAttribute() should return true)
There are 2 rampart issues which depends on this.
[1] https://issues.apache.org/jira/browse/RAMPART-303
[2] https://issues.apache.org/jira/browse/RAMPART-128
Attachments
Attachments
Issue Links
- blocks
-
RAMPART-128 Rampart breaks xml document in soap message when using policies
- Open
-
RAMPART-303 Incorrect XML Passed to Digest Algorithm when XML Elements Belong to Empty Namespace
- Resolved