Author: mckierna
Date: Tue Feb 20 08:58:33 2007
New Revision: 509646
URL: http://svn.apache.org/viewvc?view=rev&rev=509646
Log:
Ensure protection against null headers (support axiom change to avoid
serialization of empty SOAP headers)
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java?view=diff&rev=509646&r1=509645&r2=509646
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java
Tue Feb 20 08:58:33 2007
@@ -86,15 +86,20 @@
OMElement body = envelope.getBody();
// The sequence header
- OMElement element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.Sequence);
- if(element == null) {
- element =
envelope.getHeader().getFirstChildWithName(Sandesha2Constants.SPEC_2005_02.QNames.Sequence);
- }
- if (element != null) {
- sequence = new
Sequence(element.getNamespace().getNamespaceURI());
- sequence.fromOMElement(envelope.getHeader());
+ OMElement element = null;
+ if(header!=null)
+ {
+ element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.Sequence);
+ if(element == null) {
+ element =
envelope.getHeader().getFirstChildWithName(Sandesha2Constants.SPEC_2005_02.QNames.Sequence);
+ }
+ if (element != null) {
+ sequence = new
Sequence(element.getNamespace().getNamespaceURI());
+ sequence.fromOMElement(envelope.getHeader());
+ }
}
+
// The body messages
OMElement firstBodyElement = body.getFirstElement();
if(firstBodyElement != null) {
@@ -149,57 +154,59 @@
}
// The other headers
- Iterator headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2007_02.QNames.SequenceAck);
- while (headers.hasNext()) {
- OMElement sequenceAckElement = (OMElement)
headers.next();
- SequenceAcknowledgement sequenceAcknowledgement = new
SequenceAcknowledgement(Sandesha2Constants.SPEC_2007_02.NS_URI);
-
sequenceAcknowledgement.fromOMElement(sequenceAckElement);
- sequenceAcknowledgements.add(sequenceAcknowledgement);
- }
- headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2005_02.QNames.SequenceAck);
- while (headers.hasNext()) {
- OMElement sequenceAckElement = (OMElement)
headers.next();
- SequenceAcknowledgement sequenceAcknowledgement = new
SequenceAcknowledgement(Sandesha2Constants.SPEC_2005_02.NS_URI);
-
sequenceAcknowledgement.fromOMElement(sequenceAckElement);
- sequenceAcknowledgements.add(sequenceAcknowledgement);
- }
-
- headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2007_02.QNames.AckRequest);
- while (headers.hasNext()) {
- OMElement ackRequestElement = (OMElement)
headers.next();
- AckRequested ackRequest = new
AckRequested(Sandesha2Constants.SPEC_2007_02.NS_URI);
- ackRequest.fromOMElement(ackRequestElement);
- ackRequests.add(ackRequest);
- }
- headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2005_02.QNames.AckRequest);
- while (headers.hasNext()) {
- OMElement ackRequestElement = (OMElement)
headers.next();
- AckRequested ackRequest = new
AckRequested(Sandesha2Constants.SPEC_2005_02.NS_URI);
- ackRequest.fromOMElement(ackRequestElement);
- ackRequests.add(ackRequest);
- }
+ if(header!=null)
+ {
+ Iterator headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2007_02.QNames.SequenceAck);
+ while (headers.hasNext()) {
+ OMElement sequenceAckElement = (OMElement)
headers.next();
+ SequenceAcknowledgement sequenceAcknowledgement
= new SequenceAcknowledgement(Sandesha2Constants.SPEC_2007_02.NS_URI);
+
sequenceAcknowledgement.fromOMElement(sequenceAckElement);
+
sequenceAcknowledgements.add(sequenceAcknowledgement);
+ }
+ headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2005_02.QNames.SequenceAck);
+ while (headers.hasNext()) {
+ OMElement sequenceAckElement = (OMElement)
headers.next();
+ SequenceAcknowledgement sequenceAcknowledgement
= new SequenceAcknowledgement(Sandesha2Constants.SPEC_2005_02.NS_URI);
+
sequenceAcknowledgement.fromOMElement(sequenceAckElement);
+
sequenceAcknowledgements.add(sequenceAcknowledgement);
+ }
- element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.UsesSequenceSTR);
- if (element != null) {
- usesSequenceSTR = new UsesSequenceSTR(factory,
Sandesha2Constants.SPEC_2007_02.NS_URI);
- usesSequenceSTR.fromOMElement(envelope.getHeader());
- }
-
- element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.MessagePending);
- if (element != null) {
- messagePending = new
MessagePending(Sandesha2Constants.SPEC_2007_02.MC_NS_URI);
- messagePending.fromOMElement(element);
- }
-
- element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.SequenceFault);
- if(element == null) {
- element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2005_02.QNames.SequenceFault);
- }
- if (element !=null) {
- sequenceFault = new
SequenceFault(element.getNamespace().getNamespaceURI());
- sequenceFault.fromOMElement(element);
+ headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2007_02.QNames.AckRequest);
+ while (headers.hasNext()) {
+ OMElement ackRequestElement = (OMElement)
headers.next();
+ AckRequested ackRequest = new
AckRequested(Sandesha2Constants.SPEC_2007_02.NS_URI);
+ ackRequest.fromOMElement(ackRequestElement);
+ ackRequests.add(ackRequest);
+ }
+ headers =
header.getChildrenWithName(Sandesha2Constants.SPEC_2005_02.QNames.AckRequest);
+ while (headers.hasNext()) {
+ OMElement ackRequestElement = (OMElement)
headers.next();
+ AckRequested ackRequest = new
AckRequested(Sandesha2Constants.SPEC_2005_02.NS_URI);
+ ackRequest.fromOMElement(ackRequestElement);
+ ackRequests.add(ackRequest);
+ }
+
+ element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.UsesSequenceSTR);
+ if (element != null) {
+ usesSequenceSTR = new UsesSequenceSTR(factory,
Sandesha2Constants.SPEC_2007_02.NS_URI);
+
usesSequenceSTR.fromOMElement(envelope.getHeader());
+ }
+
+ element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.MessagePending);
+ if (element != null) {
+ messagePending = new
MessagePending(Sandesha2Constants.SPEC_2007_02.MC_NS_URI);
+ messagePending.fromOMElement(element);
+ }
+
+ element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2007_02.QNames.SequenceFault);
+ if(element == null) {
+ element =
header.getFirstChildWithName(Sandesha2Constants.SPEC_2005_02.QNames.SequenceFault);
+ }
+ if (element !=null) {
+ sequenceFault = new
SequenceFault(element.getNamespace().getNamespaceURI());
+ sequenceFault.fromOMElement(element);
+ }
}
-
}
public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope) throws
AxisFault {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]