You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by mc...@apache.org on 2007/02/20 17:58:35 UTC

svn commit: r509646 - /webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org