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()){