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]

Reply via email to