Author: gatfora
Date: Wed Jan 31 08:14:31 2007
New Revision: 501876

URL: http://svn.apache.org/viewvc?view=rev&rev=501876
Log:
Add support for the CreateSequenceRefused fault message

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/SequenceFault.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java 
(original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/FaultData.java Wed 
Jan 31 08:14:31 2007
@@ -35,8 +35,12 @@
        private String reason;
 
        private OMElement detail;
+       
+       private String detailString;
 
        private String sequenceId;
+       
+       private String exceptionString;
 
        public OMElement getDetail() {
                return detail;
@@ -85,4 +89,20 @@
        public void setSequenceId(String sequenceId) {
                this.sequenceId = sequenceId;
        }
-}
\ No newline at end of file
+
+       public String getDetailString() {
+       return detailString;
+  }
+
+       public void setDetailString(String detailString) {
+       this.detailString = detailString;
+  }
+
+       public String getExceptionString() {
+       return exceptionString;
+  }
+
+       public void setExceptionString(String exceptionString) {
+       this.exceptionString = exceptionString;
+  }
+}

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Wed Jan 31 08:14:31 2007
@@ -130,6 +130,8 @@
                
                String FAULT_CODE = "FaultCode";
 
+               String DETAIL = "Detail";
+
                String SEQUENCE_FAULT = "SequenceFault";
 
                String ACKS_TO = "AcksTo";

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
 Wed Jan 31 08:14:31 2007
@@ -285,4 +285,8 @@
        
        public final static String couldNotLoadModulePolicies = 
"couldNotLoadModulePolicies";
        public final static String modulePoliciesLoaded = 
"modulePoliciesLoaded";
+       
+       public final static String createSequenceRefused = 
"createSequenceRefused";
+       public final static String referencedMessageNotFound = 
"referencedMessageNotFound";
+
 }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
 Wed Jan 31 08:14:31 2007
@@ -294,3 +294,6 @@
 
 couldNotLoadModulePolicies=Could not load module policies. Using default 
values.
 modulePoliciesLoaded=Module policies were successfully loaded
+
+createSequenceRefused=The Create Sequence request has been refused by the RM 
Destination
+referencedMessageNotFound = Reference message is not present for the sequence 
with property key {0}

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Wed Jan 31 08:14:31 2007
@@ -478,8 +478,7 @@
                ConfigurationContext configCtx = 
applicationMsg.getConfigurationContext();
 
                // generating a new create sequeuce message.
-               RMMsgContext createSeqRMMessage = 
RMMsgCreator.createCreateSeqMsg(rmsBean, applicationRMMsg, sequencePropertyKey, 
acksTo,
-                               storageManager);
+               RMMsgContext createSeqRMMessage = 
RMMsgCreator.createCreateSeqMsg(rmsBean, applicationRMMsg, acksTo);
 
                createSeqRMMessage.setFlow(MessageContext.OUT_FLOW);
                CreateSequence createSequencePart = (CreateSequence) 
createSeqRMMessage

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/CreateSeqMsgProcessor.java
 Wed Jan 31 08:14:31 2007
@@ -20,6 +20,8 @@
 import java.util.Collection;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
@@ -41,6 +43,7 @@
 import org.apache.sandesha2.storage.beanmanagers.RMSBeanMgr;
 import org.apache.sandesha2.storage.beans.RMDBean;
 import org.apache.sandesha2.storage.beans.RMSBean;
+import org.apache.sandesha2.util.FaultManager;
 import org.apache.sandesha2.util.MsgInitializer;
 import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.RangeString;
@@ -65,173 +68,206 @@
                if (log.isDebugEnabled())
                        log.debug("Enter: 
CreateSeqMsgProcessor::processInMessage");
 
-               MessageContext createSeqMsg = 
createSeqRMMsg.getMessageContext();
-               CreateSequence createSeqPart = (CreateSequence) createSeqRMMsg
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ);
-               if (createSeqPart == null) {
-                       String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts);
-                       log.debug(message);
-                       throw new SandeshaException(message);
-               }
-
-               ConfigurationContext context = 
createSeqMsg.getConfigurationContext();
-               StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(context, context.getAxisConfiguration());
-               
-               // If the inbound CreateSequence includes a 
SecurityTokenReference then
-               // ask the security manager to resolve that to a token for us. 
We also
-               // check that the Create was secured using the token.
-               SecurityManager secManager = 
SandeshaUtil.getSecurityManager(context);
-               OMElement theSTR = createSeqPart.getSecurityTokenReference();
-               SecurityToken token = null;
-               if(theSTR != null) {
-                       MessageContext msgcontext = 
createSeqRMMsg.getMessageContext();
-                       token = secManager.getSecurityToken(theSTR, msgcontext);
-                       
-                       // The create must be the body part of this message, so 
we check the
-                       // security of that element.
-                       OMElement body = msgcontext.getEnvelope().getBody();
-                       secManager.checkProofOfPossession(token, body, 
msgcontext);
-               }
-
-               MessageContext outMessage = null;
-
-               // Create the new sequence id, as well as establishing the 
beans that handle the
-               // sequence state.
-               RMDBean rmdBean = 
SequenceManager.setupNewSequence(createSeqRMMsg, storageManager, secManager, 
token);
-                       
-               RMMsgContext createSeqResponse = 
RMMsgCreator.createCreateSeqResponseMsg(createSeqRMMsg, rmdBean);
-               outMessage = createSeqResponse.getMessageContext();
-                       
-               createSeqResponse.setFlow(MessageContext.OUT_FLOW);
+               try {
+                       CreateSequence createSeqPart = (CreateSequence) 
createSeqRMMsg
+                                       
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ);
+                       if (createSeqPart == null) {
+                               if (log.isDebugEnabled())
+                                       
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts));
+                               
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, 
+                                                                               
                                                                                
                                                
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noCreateSeqParts), 
+                                                                               
                                                                                
                                                new Exception());
+                               // Return false if an Exception hasn't been 
thrown.
+                               if (log.isDebugEnabled())
+                                       log.debug("Exit: 
CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);                     
       
+                               return false;
 
-               // for making sure that this won't be processed again
-               
createSeqResponse.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE, 
"true"); 
-               
-               CreateSequenceResponse createSeqResPart = 
(CreateSequenceResponse) createSeqResponse
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ_RESPONSE);
-
-                       // OFFER PROCESSING
-               SequenceOffer offer = createSeqPart.getSequenceOffer();
-               if (offer != null) {
-                       Accept accept = createSeqResPart.getAccept();
-                       if (accept == null) {
-                               String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart);
-                               log.debug(message);
-                               throw new SandeshaException(message);
                        }
-
-                       // offered seq id
-                       String offeredSequenceID = 
offer.getIdentifer().getIdentifier(); 
+       
+                       MessageContext createSeqMsg = 
createSeqRMMsg.getMessageContext();
+                       ConfigurationContext context = 
createSeqMsg.getConfigurationContext();
+                       StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(context, context.getAxisConfiguration());
+                       
+                       // If the inbound CreateSequence includes a 
SecurityTokenReference then
+                       // ask the security manager to resolve that to a token 
for us. We also
+                       // check that the Create was secured using the token.
+                       SecurityManager secManager = 
SandeshaUtil.getSecurityManager(context);
+                       OMElement theSTR = 
createSeqPart.getSecurityTokenReference();
+                       SecurityToken token = null;
+                       if(theSTR != null) {
+                               MessageContext msgcontext = 
createSeqRMMsg.getMessageContext();
+                               token = secManager.getSecurityToken(theSTR, 
msgcontext);
+                               
+                               // The create must be the body part of this 
message, so we check the
+                               // security of that element.
+                               OMElement body = 
msgcontext.getEnvelope().getBody();
+                               secManager.checkProofOfPossession(token, body, 
msgcontext);
+                       }
+       
+                       MessageContext outMessage = null;
+       
+                       // Create the new sequence id, as well as establishing 
the beans that handle the
+                       // sequence state.
+                       RMDBean rmdBean = 
SequenceManager.setupNewSequence(createSeqRMMsg, storageManager, secManager, 
token);
+                               
+                       RMMsgContext createSeqResponse = 
RMMsgCreator.createCreateSeqResponseMsg(createSeqRMMsg, rmdBean);
+                       outMessage = createSeqResponse.getMessageContext();
+                               
+                       createSeqResponse.setFlow(MessageContext.OUT_FLOW);
+       
+                       // for making sure that this won't be processed again
+                       
createSeqResponse.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE, 
"true"); 
                        
-                       boolean offerEcepted = offerAccepted(offeredSequenceID, 
context, createSeqRMMsg, storageManager);
-
-                       if (offerEcepted) {
-                               // Setting the CreateSequence table entry for 
the outgoing
-                               // side.
-                               RMSBean rMSBean = new RMSBean();
-                               rMSBean.setSequenceID(offeredSequenceID);
-                               String outgoingSideInternalSequenceId = 
SandeshaUtil
-                                               
.getOutgoingSideInternalSequenceID(rmdBean.getSequenceID());
-                               
rMSBean.setInternalSequenceID(outgoingSideInternalSequenceId);
-                               // this is a dummy value
-                               
rMSBean.setCreateSeqMsgID(SandeshaUtil.getUUID()); 
-                                       
-                               rMSBean.setToEPR(rmdBean.getToEPR());
-                               rMSBean.setAcksToEPR(rmdBean.getAcksToEPR());
-                               rMSBean.setReplyToEPR(rmdBean.getReplyToEPR());
-                               
rMSBean.setLastActivatedTime(System.currentTimeMillis());
-                               rMSBean.setRMVersion(rmdBean.getRMVersion());
-                               rMSBean.setClientCompletedMessages(new 
RangeString());
-
-                               // Setting sequence properties for the outgoing 
sequence.
-                               // Only will be used by the server side 
response path. Will
-                               // be wasted properties for the client side.
-                                       
-                               Endpoint endpoint = offer.getEndpoint();
-                               if (endpoint!=null) {
-                                       // setting the OfferedEndpoint
-                                       
rMSBean.setOfferedEndPoint(endpoint.getEPR().getAddress());
+                       CreateSequenceResponse createSeqResPart = 
(CreateSequenceResponse) createSeqResponse
+                                       
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ_RESPONSE);
+       
+                               // OFFER PROCESSING
+                       SequenceOffer offer = createSeqPart.getSequenceOffer();
+                       if (offer != null) {
+                               Accept accept = createSeqResPart.getAccept();
+                               if (accept == null) {
+                                       if (log.isDebugEnabled())
+                                               
log.debug(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart));
+                                       
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, 
+                                                                               
                                                                                
                                                        
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcceptPart), 
+                                                                               
                                                                                
                                                        new Exception());
+                                       // Return false if an Exception hasn't 
been thrown.
+                                       if (log.isDebugEnabled())
+                                               log.debug("Exit: 
CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);                     
       
+                                       return false;
                                }
        
-                               RMSBeanMgr rmsBeanMgr = 
storageManager.getRMSBeanMgr();
-
-                               // Store the inbound token (if any) with the 
new sequence
-                               
rMSBean.setSecurityTokenData(rmdBean.getSecurityTokenData());
+                               // offered seq id
+                               String offeredSequenceID = 
offer.getIdentifer().getIdentifier(); 
                                
-                               rmsBeanMgr.insert(rMSBean);
-                       } else {
-                               // removing the accept part.
-                               createSeqResPart.setAccept(null);
-                               createSeqResponse.addSOAPEnvelope();
-                       }
-               }
+                               boolean offerEcepted = 
offerAccepted(offeredSequenceID, context, createSeqRMMsg, storageManager);
+       
+                               if (offerEcepted) {
+                                       // Setting the CreateSequence table 
entry for the outgoing
+                                       // side.
+                                       RMSBean rMSBean = new RMSBean();
+                                       
rMSBean.setSequenceID(offeredSequenceID);
+                                       String outgoingSideInternalSequenceId = 
SandeshaUtil
+                                                       
.getOutgoingSideInternalSequenceID(rmdBean.getSequenceID());
+                                       
rMSBean.setInternalSequenceID(outgoingSideInternalSequenceId);
+                                       // this is a dummy value
+                                       
rMSBean.setCreateSeqMsgID(SandeshaUtil.getUUID()); 
                                                
-               //TODO add createSequenceResponse message as the 
referenceMessage to the RMDBean.
-
-               outMessage.setResponseWritten(true);
-
-               rmdBean.setLastActivatedTime(System.currentTimeMillis());
-               storageManager.getRMDBeanMgr().update(rmdBean);
-
-               AxisEngine engine = new AxisEngine(context);
-               try{
-                       engine.send(outMessage);                                
-               }
-               catch(AxisFault e){
-                       throw new SandeshaException(
-                                       
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendCreateSeqResponse,
 e.toString()), 
-                                       e);
-               }
-
-               boolean anon = true;
-               if (rmdBean.getToEPR() != null) {
-                       EndpointReference toEPR = new 
EndpointReference(rmdBean.getToEPR());
-                       if (!toEPR.hasAnonymousAddress()) anon = false;
-               }
-               if(anon) {
-                       
createSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN,
 "true");
-               } else {
-                               
createSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN,
 "false");
-               }
-               
-
-               
-//             SequencePropertyBean findBean = new SequencePropertyBean ();
-//             findBean.setName 
(Sandesha2Constants.SequenceProperties.TERMINATE_ON_CREATE_SEQUENCE);
-//             findBean.setValue(createSeqMsg.getTo().getAddress());
-               
-               
+                                       rMSBean.setToEPR(rmdBean.getToEPR());
+                                       
rMSBean.setAcksToEPR(rmdBean.getAcksToEPR());
+                                       
rMSBean.setReplyToEPR(rmdBean.getReplyToEPR());
+                                       
rMSBean.setLastActivatedTime(System.currentTimeMillis());
+                                       
rMSBean.setRMVersion(rmdBean.getRMVersion());
+                                       rMSBean.setClientCompletedMessages(new 
RangeString());
+       
+                                       // Setting sequence properties for the 
outgoing sequence.
+                                       // Only will be used by the server side 
response path. Will
+                                       // be wasted properties for the client 
side.
+                                               
+                                       Endpoint endpoint = offer.getEndpoint();
+                                       if (endpoint!=null) {
+                                               // setting the OfferedEndpoint
+                                               
rMSBean.setOfferedEndPoint(endpoint.getEPR().getAddress());
+                                       }
                
-               String toAddress = createSeqMsg.getTo().getAddress();
-               //if toAddress is RMAnon we may need to terminate the request 
side sequence here.
-               if (toAddress!=null && SandeshaUtil.isWSRMAnonymous(toAddress)) 
{
-
-                       RMSBean findBean = new RMSBean ();
-                       findBean.setReplyToEPR(toAddress);
+                                       RMSBeanMgr rmsBeanMgr = 
storageManager.getRMSBeanMgr();
+       
+                                       // Store the inbound token (if any) 
with the new sequence
+                                       
rMSBean.setSecurityTokenData(rmdBean.getSecurityTokenData());
+                                       
+                                       rmsBeanMgr.insert(rMSBean);
+                               } else {
+                                       // removing the accept part.
+                                       createSeqResPart.setAccept(null);
+                                       createSeqResponse.addSOAPEnvelope();
+                               }
+                       }
+                                                       
+                       //TODO add createSequenceResponse message as the 
referenceMessage to the RMDBean.
+       
+                       outMessage.setResponseWritten(true);
+       
+                       
rmdBean.setLastActivatedTime(System.currentTimeMillis());
+                       storageManager.getRMDBeanMgr().update(rmdBean);
+       
+                       AxisEngine engine = new AxisEngine(context);
+                       try{
+                               engine.send(outMessage);                        
        
+                       }
+                       catch(AxisFault e){
+                               
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, 
+                                               
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.couldNotSendCreateSeqResponse,
 
+                                                                               
                                                                                
                 SandeshaUtil.getStackTraceFromException(e)), e);
+                               // Return false if an Exception hasn't been 
thrown.
+                               if (log.isDebugEnabled())
+                                       log.debug("Exit: 
CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);                     
       
+                               return false;
+                       }
+       
+                       boolean anon = true;
+                       if (rmdBean.getToEPR() != null) {
+                               EndpointReference toEPR = new 
EndpointReference(rmdBean.getToEPR());
+                               if (!toEPR.hasAnonymousAddress()) anon = false;
+                       }
+                       if(anon) {
+                               
createSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN,
 "true");
+                       } else {
+                                       
createSeqMsg.getOperationContext().setProperty(org.apache.axis2.Constants.RESPONSE_WRITTEN,
 "false");
+                       }
                        
-                       //TODO recheck
-                       RMSBean rmsBean = 
storageManager.getRMSBeanMgr().findUnique(findBean);
-                       if (rmsBean!=null) {
+       //              SequencePropertyBean findBean = new 
SequencePropertyBean ();
+       //              findBean.setName 
(Sandesha2Constants.SequenceProperties.TERMINATE_ON_CREATE_SEQUENCE);
+       //              findBean.setValue(createSeqMsg.getTo().getAddress());
+                       
+                       String toAddress = createSeqMsg.getTo().getAddress();
+                       //if toAddress is RMAnon we may need to terminate the 
request side sequence here.
+                       if (toAddress!=null && 
SandeshaUtil.isWSRMAnonymous(toAddress)) {
+       
+                               RMSBean findBean = new RMSBean ();
+                               findBean.setReplyToEPR(toAddress);
                                
-                               if (rmsBean.isTerminationPauserForCS()) {
-                                       //AckManager hs not done the 
termination. Do the termination here.
+                               //TODO recheck
+                               RMSBean rmsBean = 
storageManager.getRMSBeanMgr().findUnique(findBean);
+                               if (rmsBean!=null) {
                                        
-                                       MessageContext requestSideRefMessage = 
storageManager.retrieveMessageContext(rmsBean.getReferenceMessageStoreKey(),context);
-                                       if (requestSideRefMessage==null) {
-                                               String message = "Reference 
message is not present for the sequence with property key " + 
rmsBean.getInternalSequenceID();
-                                               throw new SandeshaException 
(message);
+                                       if (rmsBean.isTerminationPauserForCS()) 
{
+                                               //AckManager hs not done the 
termination. Do the termination here.
                                                
+                                               MessageContext 
requestSideRefMessage = 
storageManager.retrieveMessageContext(rmsBean.getReferenceMessageStoreKey(),context);
+                                               if 
(requestSideRefMessage==null) {
+                                                       
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, 
+                                                                       
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.referencedMessageNotFound, 
rmsBean.getInternalSequenceID()),
+                                                                       new 
Exception());                                               
+                                                       // Return false if an 
Exception hasn't been thrown.
+                                                       if 
(log.isDebugEnabled())
+                                                               
log.debug("Exit: CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);    
                        
+                                                       return false;
+                                               }
+                                               
+                                               RMMsgContext 
requestSideRefRMMessage = 
MsgInitializer.initializeMessage(requestSideRefMessage);
+                                               
TerminateManager.addTerminateSequenceMessage(requestSideRefRMMessage, 
rmsBean.getInternalSequenceID(), rmsBean.getSequenceID(), storageManager);
                                        }
-                                       
-                                       RMMsgContext requestSideRefRMMessage = 
MsgInitializer.initializeMessage(requestSideRefMessage);
-                                       
TerminateManager.addTerminateSequenceMessage(requestSideRefRMMessage, 
rmsBean.getInternalSequenceID(), rmsBean.getSequenceID(), storageManager);
                                }
-                               
                        }
-
+                               
+                       createSeqRMMsg.pause();
+               }
+               catch (Exception e) {
+                       if (log.isDebugEnabled())
+                               log.debug("Caught an exception processing 
CreateSequence message", e);
+                       // Does the message context already contain a fault ?
+                       // If it doesn't then we can add the 
CreateSequenceRefusedFault.
+                       if 
(createSeqRMMsg.getMessageContext().getProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME)
 == null && 
+                                       
createSeqRMMsg.getMessageContext().getProperty(SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME)
 == null) {
+                               // Add the fault details to the message
+                               
FaultManager.makeCreateSequenceRefusedFault(createSeqRMMsg, 
SandeshaUtil.getStackTraceFromException(e), e);                             
+                               
+                               // Return false if an Exception hasn't been 
thrown.
+                               if (log.isDebugEnabled())
+                                       log.debug("Exit: 
CreateSeqMsgProcessor::processInMessage " + Boolean.FALSE);                     
       
+                               return false;
+                       } 
                }
-                       
-               createSeqRMMsg.pause();
 
                if (log.isDebugEnabled())
                        log.debug("Exit: 
CreateSeqMsgProcessor::processInMessage " + Boolean.TRUE);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgreceivers/RMMessageReceiver.java
 Wed Jan 31 08:14:31 2007
@@ -81,8 +81,12 @@
                                        }
                                }
        
-                               String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.inMsgError, e.toString());
-                               throw new AxisFault(message, e);
+                               if (!(e instanceof AxisFault)) {
+                                       String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.inMsgError, e.toString());
+                                       throw new AxisFault(message, e);
+                               }
+                               
+                               throw (AxisFault)e;
                        } finally {
                                if (transaction != null) {
                                        try {

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/FaultManager.java 
Wed Jan 31 08:14:31 2007
@@ -35,7 +35,10 @@
 import org.apache.axiom.soap.SOAPFaultText;
 import org.apache.axiom.soap.SOAPFaultValue;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.util.MessageContextBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.FaultData;
@@ -258,6 +261,48 @@
                        log.debug("Exit: 
FaultManager::checkForInvalidAcknowledgement");
        }
 
+       /**
+        * Makes a Create sequence refused fault
+        */
+       public static void makeCreateSequenceRefusedFault(RMMsgContext 
rmMessageContext, 
+                                                                               
                                                                                
                                                String detail,
+                                                                               
                                                                                
                                                Exception e) 
+       
+       throws AxisFault {
+               if (log.isDebugEnabled())
+                       log.debug("Enter: 
FaultManager::makeCreateSequenceRefusedFault, " + detail);
+               
+               // Return an UnknownSequence error
+               MessageContext messageContext = 
rmMessageContext.getMessageContext();
+
+               int SOAPVersion = 
SandeshaUtil.getSOAPVersion(messageContext.getEnvelope());
+
+               FaultData data = new FaultData();
+               if (SOAPVersion == Sandesha2Constants.SOAPVersion.v1_1)
+                       data.setCode(SOAP11Constants.FAULT_CODE_RECEIVER);
+               else
+                       data.setCode(SOAP12Constants.FAULT_CODE_SENDER);
+
+               
data.setSubcode(Sandesha2Constants.SOAPFaults.Subcodes.CREATE_SEQUENCE_REFUSED);
+
+               SOAPFactory factory = 
SOAPAbstractFactory.getSOAPFactory(SOAPVersion);
+               OMElement identifierElement = 
factory.createOMElement(Sandesha2Constants.WSRM_COMMON.IDENTIFIER,
+                               rmMessageContext.getRMNamespaceValue(), 
Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
+               identifierElement.setText(detail);
+               data.setDetail(identifierElement);
+               data.setDetailString(detail);
+
+               
data.setReason(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.createSequenceRefused));
+               
+               
data.setType(Sandesha2Constants.SOAPFaults.FaultType.CREATE_SEQUENCE_REFUSED);
+               
+               
data.setExceptionString(SandeshaUtil.getStackTraceFromException(e));
+
+               if (log.isDebugEnabled())
+                       log.debug("Exit: 
FaultManager::makeCreateSequenceRefusedFault");
+               getOrSendFault(rmMessageContext, data);
+       }
+       
        public static void checkForSequenceClosed(RMMsgContext 
referenceRMMessage, String sequenceID,
                        RMDBean rmdBean) throws AxisFault {
                if (log.isDebugEnabled())
@@ -298,6 +343,73 @@
 
                if (log.isDebugEnabled())
                        log.debug("Exit: FaultManager::checkForSequenceClosed");
+       }
+       
+       /**
+        * Adds the necessary Fault elements as properties to the message 
context.
+        * Or if this is a SOAP11 Fault, generates the correct RM Fault and 
sends.
+        * 
+        * @param referenceRMMsgContext - Message in reference to which the 
fault will be generated.
+        * @param data - data for the fault
+        * @return - The dummy fault to be thrown out.
+        * 
+        * @throws AxisFault
+        */
+       public static void getOrSendFault(RMMsgContext referenceRMMsgContext, 
FaultData data) throws AxisFault {
+               SOAPFactory factory = (SOAPFactory) 
referenceRMMsgContext.getSOAPEnvelope().getOMFactory();
+               
+               SOAPFaultCode faultCode = factory.createSOAPFaultCode();
+               SOAPFaultSubCode faultSubCode = 
factory.createSOAPFaultSubCode(faultCode);
+               
+               SOAPFaultValue faultColdValue = 
factory.createSOAPFaultValue(faultCode);
+               SOAPFaultValue faultSubcodeValue = 
factory.createSOAPFaultValue(faultSubCode);
+               
+               faultColdValue.setText(data.getCode());
+               faultSubcodeValue.setText(data.getSubcode());
+
+               faultCode.setSubCode(faultSubCode);
+               
+               SOAPFaultReason reason = factory.createSOAPFaultReason();
+               SOAPFaultText reasonText = factory.createSOAPFaultText();
+               reasonText.setText(data.getReason());
+               reason.addSOAPText(reasonText);
+               
+               SOAPFaultDetail detail = factory.createSOAPFaultDetail();
+               detail.addDetailEntry(data.getDetail());
+               
+               String SOAPNamespaceValue = factory.getSoapVersionURI();
+               
+               if 
(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(SOAPNamespaceValue)) {
+                       
referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME, 
faultCode);
+                       
referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME, 
reason);
+                       
referenceRMMsgContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, 
detail);
+               } else if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals 
(SOAPNamespaceValue)) {
+                       // Need to send this message as the Axis Layer doesn't 
set the "SequenceFault" header
+                       MessageContext faultMessageContext = 
+                               
MessageContextBuilder.createFaultMessageContext(referenceRMMsgContext.getMessageContext(),
 null);
+                       
SOAPFaultEnvelopeCreator.addSOAPFaultEnvelope(faultMessageContext, 
Sandesha2Constants.SOAPVersion.v1_1, data, 
referenceRMMsgContext.getRMNamespaceValue());
+                       
+                       
referenceRMMsgContext.getMessageContext().getOperationContext().setProperty(
+                                       
org.apache.axis2.Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
+
+                       if (log.isDebugEnabled())
+                               log.debug("Sending fault message " + 
faultMessageContext.getEnvelope().getHeader());
+                       // Send the message
+                       AxisEngine engine = new 
AxisEngine(faultMessageContext.getConfigurationContext());
+                       engine.sendFault(faultMessageContext);
+                       
+                       
referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME, 
faultCode);
+                       
referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_DETAIL_LOCAL_NAME, 
detail);
+                       
referenceRMMsgContext.setProperty(SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME, 
reason);
+                       
+                       return;
+               } else {
+                       String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.unknownSoapVersion);
+                       throw new SandeshaException (message);
+               }
+               AxisFault fault = new 
AxisFault(faultColdValue.getTextAsQName(), data.getReason(), "", "", 
data.getDetail());
+               throw fault;            
+               
        }
        
        /**

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
Wed Jan 31 08:14:31 2007
@@ -81,8 +81,8 @@
         * @return
         * @throws SandeshaException
         */
-       public static RMMsgContext createCreateSeqMsg(RMSBean rmsBean, 
RMMsgContext applicationRMMsg, String sequencePropertyKey,
-                       EndpointReference acksToEPR, StorageManager 
storageManager) throws AxisFault {
+       public static RMMsgContext createCreateSeqMsg(RMSBean rmsBean, 
RMMsgContext applicationRMMsg,
+                       EndpointReference acksToEPR) throws AxisFault {
 
                MessageContext applicationMsgContext = 
applicationRMMsg.getMessageContext();
                if (applicationMsgContext == null)
@@ -131,8 +131,8 @@
                }
                
                // If acksTo has not been set, then default to anonaymous, 
using the correct spec level
-               String anon = 
SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace);
-               if(acksToEPR == null) acksToEPR = new EndpointReference(anon);
+               if(acksToEPR == null) acksToEPR = 
+                       new 
EndpointReference(SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace));
                
                CreateSequence createSequencePart = new 
CreateSequence(rmNamespaceValue);
 
@@ -153,7 +153,7 @@
                        }
                        // Finally fall back to using an anonymous endpoint
                        if (offeredEndpoint==null) {
-                               offeredEndpoint = new EndpointReference(anon);
+                               offeredEndpoint = new 
EndpointReference(SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace));
                        }
                        if (offeredSequence != null && 
!"".equals(offeredSequence)) {
                                SequenceOffer offerPart = new 
SequenceOffer(rmNamespaceValue);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SOAPFaultEnvelopeCreator.java
 Wed Jan 31 08:14:31 2007
@@ -17,9 +17,7 @@
 
 package org.apache.sandesha2.util;
 
-import org.apache.axiom.om.OMConstants;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
@@ -115,7 +113,10 @@
 
                FaultCode faultCode = new FaultCode(rmNamespaceValue);
                faultCode.setFaultCode(faultData.getSubcode());
+               faultCode.setDetail(faultData.getDetailString());
                sequenceFault.setFaultCode(faultCode);
+               
+               
sequenceFault.toOMElement(faultMessageContext.getEnvelope().getHeader());
        }
 
        /**
@@ -137,33 +138,17 @@
                                .getSOAPVersion(faultMsgEnvelope));
 
                SOAPFault fault = faultMsgEnvelope.getBody().getFault();
+               
+               // Set the faultcode
                SOAPFaultCode faultCode = fault.getCode();
-
-               if (isSequenceFault(data)) {
-                       faultCode.setText(data.getCode());
-               } else {
-                       faultCode.setText(data.getSubcode());
-               }
-
-               SOAPFaultReason faultReason = fault.getReason();
-
-               OMNamespace namespace = factory.createOMNamespace(
-                               OMConstants.XMLNS_URI, 
OMConstants.XMLNS_PREFIX);
-
-               faultReason.setText(data.getReason());
-               faultCode.getValue().setText(data.getSubcode());
-               SOAPFaultText faultText = faultReason.getSOAPFaultText("en");
-               if (faultText==null)
-    {
-                       faultText = factory.createSOAPFaultText();
-      // Add the SOAP text
-      faultReason.addSOAPText(faultText);
-    }
-       
-    faultText.addAttribute("lang", "en", namespace);
-
-               faultText.setText(data.getReason());
-    
+               faultCode.getValue().setText(data.getCode());
+                       
+               // Set the faultstring
+               fault.getReason().getFirstSOAPText().setText(data.getReason());
+               
+               if (data.getExceptionString() != null)
+                       fault.getDetail().setText(data.getExceptionString());
+               
                //SequenceFault header is added only for SOAP 1.1
                if (isSequenceFault(data))
                        addSequenceFaultHeader(faultMsgContext, data, factory, 
rmNamespaceValue);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
Wed Jan 31 08:14:31 2007
@@ -18,7 +18,9 @@
 package org.apache.sandesha2.util;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
+import java.io.PrintWriter;
 import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -1162,5 +1164,14 @@
                }
                
                return clonedEnvelope;
+       }
+       
+       public static final String getStackTraceFromException(Exception e) {
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    PrintWriter pw = new PrintWriter(baos);
+    e.printStackTrace(pw);
+    pw.flush();
+    String stackTrace = baos.toString();
+    return stackTrace;
        }
 }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SequenceManager.java
 Wed Jan 31 08:14:31 2007
@@ -13,6 +13,7 @@
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
+import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
@@ -80,9 +81,9 @@
                EndpointReference acksTo = createSequence.getAcksTo().getEPR();
 
                if (acksTo == null) {
-                       String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcksToPartInCreateSequence);
-                       log.debug(message);
-                       throw new AxisFault(message);
+                       
FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noAcksToPartInCreateSequence),
 new Exception());
+               } else if 
(acksTo.getAddress().equals(AddressingConstants.Final.WSA_NONE_URI)){
+                       
FaultManager.makeCreateSequenceRefusedFault(createSequenceMsg, "AcksTo can not 
be " + AddressingConstants.Final.WSA_NONE_URI, new Exception());
                }
 
                MessageContext createSeqContext = 
createSequenceMsg.getMessageContext();
@@ -123,11 +124,6 @@
                // message to invoke. This will apply for only in-order 
invocations.
 
                SandeshaUtil.startSenderForTheSequence(configurationContext, 
sequenceId);
-
-               // stting the RM SPEC version for this sequence.
-               String createSequenceMsgAction = 
createSequenceMsg.getWSAAction();
-               if (createSequenceMsgAction == null)
-                       throw new 
SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noWSAACtionValue));
 
                String messageRMNamespace = createSequence.getNamespaceValue();
 

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/FaultCode.java 
Wed Jan 31 08:14:31 2007
@@ -37,6 +37,8 @@
        private String faultCode = null;
        
        private String namespaceValue = null;
+
+       private String detail;
        
        public FaultCode(String namespaceValue) throws SandeshaException {
                if (!isNamespaceSupported(namespaceValue))
@@ -69,6 +71,15 @@
 
                this.faultCode = faultCodePart.getText();
 
+               OMElement detailPart = sequenceFault
+                       .getFirstChildWithName(new QName(namespaceValue,
+                                       Sandesha2Constants.WSRM_COMMON.DETAIL));
+               
+               this.faultCode = faultCodePart.getText();
+               
+               if (detailPart != null)
+                       detail = detailPart.getText();
+
                return sequenceFault;
 
        }
@@ -89,10 +100,14 @@
                
                OMNamespace rmNamespace = 
factory.createOMNamespace(namespaceValue,Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
                OMElement faultCodeElement = 
factory.createOMElement(Sandesha2Constants.WSRM_COMMON.FAULT_CODE,rmNamespace);
+               OMElement detailElement = 
factory.createOMElement(Sandesha2Constants.WSRM_COMMON.DETAIL,rmNamespace);
 
                faultCodeElement.setText(faultCode);
                sequenceFault.addChild(faultCodeElement);
 
+               detailElement.setText(detail);
+               sequenceFault.addChild(detailElement);
+               
                return sequenceFault;
        }
     
@@ -104,6 +119,14 @@
         return faultCode;
     }
 
+       public void setDetail(String detail) {
+               this.detail = detail; 
+    }
+
+       public String getDetail() {
+               return detail;
+       }
+       
        public boolean isNamespaceSupported (String namespaceName) {
                if 
(Sandesha2Constants.SPEC_2005_02.NS_URI.equals(namespaceName))
                        return true;
@@ -113,4 +136,5 @@
                
                return false;
        }
+
 }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/SequenceFault.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/SequenceFault.java?view=diff&rev=501876&r1=501875&r2=501876
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/SequenceFault.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/SequenceFault.java
 Wed Jan 31 08:14:31 2007
@@ -23,7 +23,7 @@
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPHeader;
 import org.apache.sandesha2.Sandesha2Constants;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.i18n.SandeshaMessageHelper;
@@ -54,7 +54,7 @@
 
        public Object fromOMElement(OMElement body) throws 
OMException,SandeshaException {
 
-               if (body == null || !(body instanceof SOAPBody))
+               if (body == null || !(body instanceof SOAPHeader))
                        throw new OMException(
                                        SandeshaMessageHelper.getMessage(
                                                        
SandeshaMessageKeys.seqFaultCannotBeExtractedToNonHeader));
@@ -80,7 +80,7 @@
 
        public OMElement toOMElement(OMElement body) throws OMException {
 
-               if (body == null || !(body instanceof SOAPBody))
+               if (body == null || !(body instanceof SOAPHeader))
                        throw new OMException(SandeshaMessageHelper.getMessage(
                                        
SandeshaMessageKeys.seqFaultCannotBeExtractedToNonHeader));
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to