You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by ga...@apache.org on 2007/11/20 14:17:03 UTC
svn commit: r596652 - in
/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2:
./ client/ handlers/ msgprocessors/ storage/inmemory/ util/ workers/ wsrm/
Author: gatfora
Date: Tue Nov 20 05:17:01 2007
New Revision: 596652
URL: http://svn.apache.org/viewvc?rev=596652&view=rev
Log:
Removed several unused imports/fields. Updated InvokerWorker to support rollbacks
Modified:
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/MessageValidator.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/SandeshaModule.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryStorageManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/PropertyManager.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RangeString.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/Identifier.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/MessagePending.java
webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/RMElements.java
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/MessageValidator.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/MessageValidator.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/MessageValidator.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/MessageValidator.java Tue Nov 20 05:17:01 2007
@@ -19,10 +19,6 @@
package org.apache.sandesha2;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.WSDL2Constants;
-import org.apache.sandesha2.client.SandeshaClientConstants;
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
import org.apache.sandesha2.policy.SandeshaPolicyBean;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/SandeshaModule.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/SandeshaModule.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/SandeshaModule.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/SandeshaModule.java Tue Nov 20 05:17:01 2007
@@ -29,7 +29,6 @@
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
import org.apache.axis2.description.AxisDescription;
import org.apache.axis2.description.AxisModule;
import org.apache.axis2.description.AxisOperation;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/client/SandeshaClientConstants.java Tue Nov 20 05:17:01 2007
@@ -23,18 +23,18 @@
* Constants that are needed for the Sandesha2 Client API.
*/
public class SandeshaClientConstants {
- public static String AcksTo = "Sandesha2AcksTo";
- public static String LAST_MESSAGE = "Sandesha2LastMessage";
- public static String OFFERED_SEQUENCE_ID = "Sandesha2OfferedSequenceId";
- public static String INTERNAL_SEQUENCE_ID = "Sandesha2InternalSequenceId";
- public static String SANDESHA_DEBUG_MODE = "Sandesha2DebugMode";
- public static String SEQUENCE_KEY = "Sandesha2SequenceKey";
- public static String MESSAGE_NUMBER = "Sandesha2MessageNumber";
- public static String RM_SPEC_VERSION = "Sandesha2RMSpecVersion";
- public static String DUMMY_MESSAGE = "Sandesha2DummyMessage"; //If this property is set, even though this message will invoke the RM handlers, this will not be sent as an actual application message
- public static String UNRELIABLE_MESSAGE = "Sandesha2UnreliableMessage";
- public static String SANDESHA_LISTENER = "Sandesha2Listener";
- public static String USE_REPLY_TO_AS_ACKS_TO = "UseReplyToAsAcksTo";
- public static String OFFERED_ENDPOINT = "OfferedEndpoint";
- public static String AVOID_AUTO_TERMINATION = "AviodAutoTermination";
+ public static final String AcksTo = "Sandesha2AcksTo";
+ public static final String LAST_MESSAGE = "Sandesha2LastMessage";
+ public static final String OFFERED_SEQUENCE_ID = "Sandesha2OfferedSequenceId";
+ public static final String INTERNAL_SEQUENCE_ID = "Sandesha2InternalSequenceId";
+ public static final String SANDESHA_DEBUG_MODE = "Sandesha2DebugMode";
+ public static final String SEQUENCE_KEY = "Sandesha2SequenceKey";
+ public static final String MESSAGE_NUMBER = "Sandesha2MessageNumber";
+ public static final String RM_SPEC_VERSION = "Sandesha2RMSpecVersion";
+ public static final String DUMMY_MESSAGE = "Sandesha2DummyMessage"; //If this property is set, even though this message will invoke the RM handlers, this will not be sent as an actual application message
+ public static final String UNRELIABLE_MESSAGE = "Sandesha2UnreliableMessage";
+ public static final String SANDESHA_LISTENER = "Sandesha2Listener";
+ public static final String USE_REPLY_TO_AS_ACKS_TO = "UseReplyToAsAcksTo";
+ public static final String OFFERED_ENDPOINT = "OfferedEndpoint";
+ public static final String AVOID_AUTO_TERMINATION = "AviodAutoTermination";
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/handlers/SequenceIDDispatcher.java Tue Nov 20 05:17:01 2007
@@ -39,11 +39,9 @@
import org.apache.sandesha2.util.MsgInitializer;
import org.apache.sandesha2.util.SandeshaUtil;
-import java.util.Map;
-
public class SequenceIDDispatcher extends AbstractDispatcher {
- private final String NAME = "SequenceIDDIspatcher";
+ private static final String NAME = "SequenceIDDIspatcher";
private static final Log log = LogFactory.getLog(SequenceIDDispatcher.class);
public AxisOperation findOperation(AxisService service, MessageContext messageContext) {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java Tue Nov 20 05:17:01 2007
@@ -571,13 +571,12 @@
if (rmsBean != null && rmsBean.getLastSendError() != null) {
if (rmsBean.getLastSendError() instanceof AxisFault)
throw (AxisFault)rmsBean.getLastSendError();
- }
- if (rmsBean.getLastSendError() != null)
+
throw new AxisFault(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.createSequenceRefused),
rmsBean.getLastSendError());
+ }
- throw new AxisFault(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.createSequenceRefused));
-
+ throw new AxisFault(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.createSequenceRefused));
}
}
// Setup enough of the workers to get this create sequence off the box.
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java Tue Nov 20 05:17:01 2007
@@ -44,7 +44,6 @@
import org.apache.sandesha2.storage.StorageManager;
import org.apache.sandesha2.storage.Transaction;
import org.apache.sandesha2.storage.beanmanagers.RMDBeanMgr;
-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.storage.beans.SenderBean;
@@ -57,9 +56,6 @@
import org.apache.sandesha2.util.SpecSpecificConstants;
import org.apache.sandesha2.util.TerminateManager;
import org.apache.sandesha2.util.WSRMMessageSender;
-import org.apache.sandesha2.workers.SandeshaThread;
-import org.apache.sandesha2.workers.SenderWorker;
-import org.apache.sandesha2.workers.WorkerLock;
import org.apache.sandesha2.wsrm.SequenceAcknowledgement;
import org.apache.sandesha2.wsrm.TerminateSequence;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryBeanMgr.java Tue Nov 20 05:17:01 2007
@@ -27,7 +27,6 @@
import org.apache.axis2.context.AbstractContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.sandesha2.SandeshaException;
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
import org.apache.sandesha2.storage.SandeshaStorageException;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryStorageManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryStorageManager.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryStorageManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/storage/inmemory/InMemoryStorageManager.java Tue Nov 20 05:17:01 2007
@@ -343,7 +343,7 @@
return useSerialization;
}
- private class SerializedStorageEntry {
+ private static class SerializedStorageEntry {
MessageContext message;
byte[] data;
ConfigurationContext context;
@@ -354,7 +354,7 @@
Object inTransportOut;
Object inTransportOutInfo;
}
- private class StorageEntry {
+ private static class StorageEntry {
MessageContext msgContext;
SOAPEnvelope envelope;
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/AcknowledgementManager.java Tue Nov 20 05:17:01 2007
@@ -39,7 +39,6 @@
import org.apache.sandesha2.i18n.SandeshaMessageHelper;
import org.apache.sandesha2.i18n.SandeshaMessageKeys;
import org.apache.sandesha2.storage.StorageManager;
-import org.apache.sandesha2.storage.Transaction;
import org.apache.sandesha2.storage.beanmanagers.SenderBeanMgr;
import org.apache.sandesha2.storage.beans.RMDBean;
import org.apache.sandesha2.storage.beans.SenderBean;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/MsgInitializer.java Tue Nov 20 05:17:01 2007
@@ -178,7 +178,7 @@
TerminateSequence terminateSequence = elements.getTerminateSequence();
TerminateSequenceResponse terminateSequenceResponse = elements.getTerminateSequenceResponse();
Iterator sequenceAcknowledgementsIter = elements.getSequenceAcknowledgements();
- Sequence sequence = (Sequence) elements.getSequence();
+ Sequence sequence = elements.getSequence();
Iterator ackRequestedIter = elements.getAckRequests();
CloseSequence closeSequence = elements.getCloseSequence();
CloseSequenceResponse closeSequenceResponse = elements.getCloseSequenceResponse();
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/PropertyManager.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/PropertyManager.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/PropertyManager.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/PropertyManager.java Tue Nov 20 05:17:01 2007
@@ -222,8 +222,6 @@
public static SandeshaPolicyBean loadPropertiesFromModuleDescPolicy(AxisModule desc,
SandeshaPolicyBean parentPropertyBean) throws SandeshaException {
-
- SandeshaPolicyBean propertyBean = new SandeshaPolicyBean();
Policy policy = desc.getPolicyInclude().getEffectivePolicy();
@@ -255,7 +253,7 @@
return null;
}
- propertyBean = (SandeshaPolicyBean) assertion;
+ SandeshaPolicyBean propertyBean = (SandeshaPolicyBean) assertion;
propertyBean.setParent(parentPropertyBean);
return propertyBean;
@@ -264,8 +262,6 @@
public static SandeshaPolicyBean loadPropertiesFromAxisDescription(AxisDescription desc,
SandeshaPolicyBean parentPropertyBean) throws SandeshaException {
- SandeshaPolicyBean propertyBean = new SandeshaPolicyBean();
-
Policy policy = desc.getPolicyInclude().getEffectivePolicy();
if (policy == null) {
@@ -296,17 +292,16 @@
return null;
}
- propertyBean = (SandeshaPolicyBean) assertion;
+ SandeshaPolicyBean propertyBean = (SandeshaPolicyBean) assertion;
if (propertyBean!=parentPropertyBean) {
if(parentPropertyBean != null) propertyBean.setParent(parentPropertyBean);
return propertyBean;
- } else {
- //propertyBean and parent being the same object means that there is no policy in this level, this is simply the reflection of
- //the parent.
- return null;
- }
+ }
+ //propertyBean and parent being the same object means that there is no policy in this level, this is simply the reflection of
+ //the parent.
+ return null;
}
public static void reloadFromPropertyFile(InputStream stream) throws SandeshaException {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RangeString.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RangeString.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RangeString.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/util/RangeString.java Tue Nov 20 05:17:01 2007
@@ -347,7 +347,6 @@
above.lowerValue = r.lowerValue; //extend down
rangeMap.put(new Long(above.lowerValue), above);
- finalRange = above;
}
//finally we do the remove of the above range under its old key
rangeMap.remove(removeKey);
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/Invoker.java Tue Nov 20 05:17:01 2007
@@ -342,10 +342,10 @@
try {
// Set the lock up before we start the thread, but roll it back
// if we hit any problems
- getWorkerLock().addWork(workId, worker);
- threadPool.execute(work);
+ if(worker.getLock().addWork(workId, worker))
+ threadPool.execute(work);
} catch(Exception e) {
- getWorkerLock().removeWork(workId);
+ worker.getLock().removeWork(workId);
}
processedMessage = true;
}
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/InvokerWorker.java Tue Nov 20 05:17:01 2007
@@ -107,7 +107,7 @@
Runnable nextRunnable = null;
// Invoke the first message
- lastMessageInvoked = invokeMessage(null);
+ lastMessageInvoked = invokeMessage(null);
// Look for the next message, so long as we are still processing normally
while(!ignoreNextMsg && lastMessageInvoked) {
@@ -208,11 +208,11 @@
MessageContext msgToInvoke = null;
boolean messageInvoked = true;
- // If we are not the holder of the correct lock, then we have to stop
- if(lock != null && (!lock.ownsLock(workId, this))) {
- if (log.isDebugEnabled()) log.debug("Exit: InvokerWorker::run, another worker holds the lock");
- return false;
- }
+ // If we are not the holder of the correct lock, then we have to stop
+ if(lock != null && (!lock.ownsLock(workId, this))) {
+ if (log.isDebugEnabled()) log.debug("Exit: InvokerWorker::run, another worker holds the lock");
+ return false;
+ }
try {
@@ -244,14 +244,48 @@
RMMsgContext rmMsg = MsgInitializer.initializeMessage(msgToInvoke);
// Lock the RMD Bean just to avoid deadlocks
- SandeshaUtil.getRMDBeanFromSequenceId(storageManager, invokerBean.getSequenceID());
+ RMDBean rMDBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, invokerBean.getSequenceID());
+
+ boolean highestMessage = false;
+
+ if(!ignoreNextMsg){
+ // updating the next msg to invoke
+ long nextMsgNo = rMDBean.getNextMsgNoToProcess();
+
+ if (!(invokerBean.getMsgNo()==nextMsgNo)) {
+ //someone else has invoked this before us - this run should now stop
+ if(log.isDebugEnabled()) log.debug("Operated message number is different from the Next Message Number to invoke");
+ return false;
+ }
+
+ nextMsgNo++;
+ rMDBean.setNextMsgNoToProcess(nextMsgNo);
+ storageManager.getRMDBeanMgr().update(rMDBean);
+ }
+
+ // Check if this is the last message
+ if (rmMsg.getMessageType() == Sandesha2Constants.MessageTypes.APPLICATION) {
+ Sequence sequence = (Sequence) rmMsg
+ .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
+
+ if (sequence.getLastMessage() != null) {
+ //this will work for RM 1.0 only
+ highestMessage = true;
+ } else {
+ if (rMDBean!=null && rMDBean.isTerminated()) {
+ long highestInMsgNo = rMDBean.getHighestInMessageNumber();
+ if (invokerBean.getMsgNo()==highestInMsgNo)
+ highestMessage = true;
+ }
+ }
+ }
+
// Depending on the transaction support, the service will be invoked only once.
// Therefore we delete the invoker bean and message now, ahead of time
invokerBeanMgr.delete(messageContextKey);
// removing the corresponding message context as well.
storageManager.removeMessageContext(messageContextKey);
-
try {
boolean postFailureInvocation = false;
@@ -265,7 +299,7 @@
&& Sandesha2Constants.VALUE_TRUE.equals(postFaulureProperty))
postFailureInvocation = true;
- InvocationResponse response = null;
+ InvocationResponse response = null;
if (postFailureInvocation) {
makeMessageReadyForReinjection(msgToInvoke);
if (log.isDebugEnabled())
@@ -279,77 +313,42 @@
msgToInvoke.setPaused(false);
response = AxisEngine.resumeReceive(msgToInvoke);
}
- if(!InvocationResponse.SUSPEND.equals(response)) {
- // Performance work - need to close the XMLStreamReader to prevent GC thrashing.
- SOAPEnvelope env = msgToInvoke.getEnvelope();
- if(env!=null){
- StAXBuilder sb = (StAXBuilder)msgToInvoke.getEnvelope().getBuilder();
- if(sb!=null){
- sb.close();
- }
- }
- }
-
- if (transaction != null && transaction.isActive())
- transaction.commit();
-
- } catch (Exception e) {
- if (log.isDebugEnabled())
- log.debug("Exception :", e);
-
- if (transaction != null && transaction.isActive())
- transaction.rollback();
- messageInvoked = false;
-
- handleFault(rmMsg, e);
- }
- transaction = storageManager.getTransaction();
-
- if (rmMsg.getMessageType() == Sandesha2Constants.MessageTypes.APPLICATION) {
- Sequence sequence = (Sequence) rmMsg
- .getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
-
- boolean highestMessage = false;
- if (sequence.getLastMessage() != null) {
- //this will work for RM 1.0 only
- highestMessage = true;
- } else {
- RMDBean rmdBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, invokerBean.getSequenceID());
-
- if (rmdBean!=null && rmdBean.isTerminated()) {
- long highestInMsgNo = rmdBean.getHighestInMessageNumber();
- if (invokerBean.getMsgNo()==highestInMsgNo)
- highestMessage = true;
+ if(!InvocationResponse.SUSPEND.equals(response)) {
+ // Performance work - need to close the XMLStreamReader to prevent GC thrashing.
+ SOAPEnvelope env = msgToInvoke.getEnvelope();
+ if(env!=null){
+ StAXBuilder sb = (StAXBuilder)msgToInvoke.getEnvelope().getBuilder();
+ if(sb!=null){
+ sb.close();
+ }
}
}
-
+
+ if (transaction != null && transaction.isActive()) {
+ transaction.commit();
+ transaction = storageManager.getTransaction();
+ }
+
if (highestMessage) {
//do cleaning stuff that hs to be done after the invocation of the last message.
TerminateManager.cleanReceivingSideAfterInvocation(invokerBean.getSequenceID(), storageManager);
// exit from current iteration. (since an entry
// was removed)
- if(transaction != null && transaction.isActive()) transaction.commit();
- if(log.isDebugEnabled()) log.debug("Exit: InvokerWorker::invokeMessage Last message return " + messageInvoked);
- return messageInvoked;
- }
- }
-
- if(!ignoreNextMsg){
- // updating the next msg to invoke
- RMDBean rMDBean = storageManager.getRMDBeanMgr().retrieve(invokerBean.getSequenceID());
- long nextMsgNo = rMDBean.getNextMsgNoToProcess();
-
- if (!(invokerBean.getMsgNo()==nextMsgNo)) {
- String message = "Operated message number is different from the Next Message Number to invoke";
- throw new SandeshaException (message);
+ if(log.isDebugEnabled()) log.debug("Exit: InvokerWorker::invokeMessage Last message return " + messageInvoked);
+ return messageInvoked;
}
+
+ } catch (Exception e) {
+ if (log.isDebugEnabled())
+ log.debug("Exception :", e);
+
+ if (transaction != null && transaction.isActive())
+ transaction.rollback();
+ messageInvoked = false;
- nextMsgNo++;
- rMDBean.setNextMsgNoToProcess(nextMsgNo);
- storageManager.getRMDBeanMgr().update(rMDBean);
+ handleFault(rmMsg, e);
}
-
if(transaction != null && transaction.isActive()) transaction.commit();
transaction = null;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/Identifier.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/Identifier.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/Identifier.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/Identifier.java Tue Nov 20 05:17:01 2007
@@ -36,15 +36,11 @@
private String identifier = null;
- private String namespaceValue = null;
-
public Identifier(String namespaceValue) throws SandeshaException {
if (!isNamespaceSupported(namespaceValue))
throw new SandeshaException (SandeshaMessageHelper.getMessage(
SandeshaMessageKeys.unknownSpec,
namespaceValue));
-
- this.namespaceValue = namespaceValue;
}
public void setIndentifer(String identifier) {
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/MessagePending.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/MessagePending.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/MessagePending.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/MessagePending.java Tue Nov 20 05:17:01 2007
@@ -108,7 +108,7 @@
SOAPHeaderBlock headerBlock = header.addHeaderBlock(Sandesha2Constants.WSRM_COMMON.MESSAGE_PENDING,namespace);
- OMAttribute attribute = factory.createOMAttribute(Sandesha2Constants.WSRM_COMMON.PENDING,null,new Boolean (pending).toString());
+ OMAttribute attribute = factory.createOMAttribute(Sandesha2Constants.WSRM_COMMON.PENDING,null, Boolean.valueOf (pending).toString());
headerBlock.addAttribute(attribute);
return headerElement;
Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/RMElements.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/RMElements.java?rev=596652&r1=596651&r2=596652&view=diff
==============================================================================
--- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/RMElements.java (original)
+++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/wsrm/RMElements.java Tue Nov 20 05:17:01 2007
@@ -95,7 +95,6 @@
if(firstBodyElement != null) {
QName firstBodyQName = firstBodyElement.getQName();
String namespace = firstBodyQName.getNamespaceURI();
- String localName = firstBodyQName.getLocalPart();
boolean isSPEC2007_02 = SPEC_2007_02.NS_URI.equals(namespace);
boolean isSPEC2005_02 = false;
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org