Eliminated a dependency on the bug described in AXIOM-422; the children of a SOAPHeaderBlock should be plain OMElements, not SOAPHeaderBlocks.


git-svn-id: https://svn.apache.org/repos/asf/axis/axis2/java/sandesha/trunk@1338864 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/modules/core/src/main/java/org/apache/sandesha2/wsrm/AcksTo.java b/modules/core/src/main/java/org/apache/sandesha2/wsrm/AcksTo.java
index d5ab274..bf30742 100644
--- a/modules/core/src/main/java/org/apache/sandesha2/wsrm/AcksTo.java
+++ b/modules/core/src/main/java/org/apache/sandesha2/wsrm/AcksTo.java
@@ -102,7 +102,9 @@
 					SandeshaMessageKeys.cannotSetAcksTo,
 					null));
 
-		OMFactory factory = element.getOMFactory();
+		// Ensure that we use the plain OMFactory (and not SOAPFactory). This forces
+		// EndpointReferenceHelper.toOM to create an OMElement instead of a SOAPHeaderBlock.
+		OMFactory factory = element.getOMFactory().getMetaFactory().getOMFactory();
 		
 		QName acksTo = new QName (rmNamespaceValue,Sandesha2Constants.WSRM_COMMON.ACKS_TO, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
 	    OMElement endpointElement =	EndpointReferenceHelper.toOM (factory,epr, acksTo ,addressingNamespaceValue);
diff --git a/modules/core/src/main/java/org/apache/sandesha2/wsrm/Endpoint.java b/modules/core/src/main/java/org/apache/sandesha2/wsrm/Endpoint.java
index 68f5e2f..1c17200 100644
--- a/modules/core/src/main/java/org/apache/sandesha2/wsrm/Endpoint.java
+++ b/modules/core/src/main/java/org/apache/sandesha2/wsrm/Endpoint.java
@@ -93,7 +93,9 @@
 					SandeshaMessageKeys.cannotSetEndpoint,
 					null));
 
-		OMFactory factory = element.getOMFactory();
+        // Ensure that we use the plain OMFactory (and not SOAPFactory). This forces
+        // EndpointReferenceHelper.toOM to create an OMElement instead of a SOAPHeaderBlock.
+        OMFactory factory = element.getOMFactory().getMetaFactory().getOMFactory();
 		
 		QName endpoint = new QName (rmNamespaceValue,Sandesha2Constants.WSRM_COMMON.ENDPOINT, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
 	    OMElement endpointElement =	EndpointReferenceHelper.toOM (factory, epr, endpoint, addressingNamespaceValue);
diff --git a/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java b/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
index 058dfa3..48287f6 100644
--- a/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
+++ b/modules/core/src/main/java/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
@@ -74,7 +74,7 @@
 	}
 
 	public Object fromHeaderBlock(SOAPHeaderBlock sequenceAckElement) throws OMException,SandeshaException {
-		originalSequenceAckElement = sequenceAckElement;
+		originalSequenceAckElement = sequenceAckElement.cloneOMElement();
 		OMElement identifierPart = null;
 		Iterator childElements = sequenceAckElement.getChildElements();
 		while(childElements.hasNext()){