* @throws AxisFault
*/
public static void makeInvalidAcknowledgementFault(RMMsgContext rmMsgCtx,
SequenceAcknowledgement sequenceAcknowledgement, AcknowledgementRange acknowledgementRange,
StorageManager storageManager, boolean piggybackedMessage) throws AxisFault {
FaultData data = new FaultData();
int SOAPVersion = SandeshaUtil.getSOAPVersion(rmMsgCtx.getMessageContext().getEnvelope());
if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1)
data.setCode(SOAP11Constants.FAULT_CODE_SENDER);
else
data.setCode(SOAP12Constants.FAULT_CODE_SENDER);
data.setType(Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT);
data.setSubcode(SpecSpecificConstants.getFaultSubcode(rmMsgCtx.getRMNamespaceValue(),
Sandesha2Constants.SOAPFaults.FaultType.INVALID_ACKNOWLEDGEMENT ));
data.setReason(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.invalidAckFault));
SOAPFactory factory = SOAPAbstractFactory.getSOAPFactory(SOAPVersion);
OMElement seqAckElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.SEQUENCE_ACK,
rmMsgCtx.getRMNamespaceValue(), Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
// Set the sequence Id
sequenceAcknowledgement.getIdentifier().toOMElement(seqAckElement);
// Set the Ack Range
acknowledgementRange.toOMElement(seqAckElement);
data.setDetail(seqAckElement);
if (log.isDebugEnabled())
log.debug("Exit: FaultManager::checkForInvalidAcknowledgement, invalid ACK");
boolean throwable = !piggybackedMessage;