Author: chamikara
Date: Sun Feb 4 00:32:05 2007
New Revision: 503374
URL: http://svn.apache.org/viewvc?view=rev&rev=503374
Log:
Fixed a bug in RM 1.0 Anon InOut - Was not adjusting the senderBean for
retransmissions.
Fixed a bug in InMomorySenderBeanManager.getNextMsgToSend - was not doing the
retransmission test
Fixed a bug in sender - The workId sould contain the timeToSend, otherwise
retransmissions will not happen correctly.
Moved some strings to the i18n files.
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.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/SequenceProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?view=diff&rev=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
Sun Feb 4 00:32:05 2007
@@ -191,7 +191,7 @@
SandeshaPolicyBean policyBean =
SandeshaUtil.getPropertyBean(msgContext.getAxisOperation());
if (policyBean==null) {
- String message = "Cant find a valid policy
bean";
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyBeanNotFound);
throw new SandeshaException (message);
}
@@ -199,12 +199,6 @@
if (msgContext.isServerSide() && !inOrder &&
rmMsgContext.getMessageType()==Sandesha2Constants.MessageTypes.APPLICATION) {
- String propertyKey =
SandeshaUtil.getSequencePropertyKey(rmMsgContext);
- if (propertyKey==null) {
- String message = "Cant find a
sequencePropertyKey from the given message context";
- throw new SandeshaException (message);
- }
-
Sequence sequence = (Sequence)
rmMsgContext.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
String sequenceId =
sequence.getIdentifier().getIdentifier();
@@ -215,7 +209,7 @@
RMDBean rmdBean =
rmdBeanMgr.findUnique(findBean);
if (rmdBean==null) {
- String message = "RMDBean not available
for the sequence:" + sequenceId;
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.rmdBeanNotFound,sequenceId);
throw new SandeshaException (message);
}
@@ -235,7 +229,7 @@
}
}
} catch (AxisFault e) {
- String message = "Got exception in flowCompletion of
SandeshaInHandler";
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.exceptionInFlowCompletion);
log.error(message, e);
if (transaction != null) {
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=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/SandeshaMessageKeys.java
Sun Feb 4 00:32:05 2007
@@ -293,5 +293,10 @@
public final static String createSequenceRefused =
"createSequenceRefused";
public final static String referencedMessageNotFound =
"referencedMessageNotFound";
public final static String messageNumberRollover =
"messageNumberRollover";
+
+ public final static String policyBeanNotFound = "policyBeanNotFound";
+ public final static String cloneDoesNotMatchToOriginal =
"cloneDoesNotMatchToOriginal";
+ public final static String exceptionInFlowCompletion =
"exceptionInFlowCompletion";
+ public final static String rmdBeanNotFound = "rmdBeanNotFound";
}
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=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/i18n/resource.properties
Sun Feb 4 00:32:05 2007
@@ -96,6 +96,10 @@
couldNotCopyParameters=Could not copy parameters when creating the new RM
Message. See the following exception for more details: {0}.
invalidRange=The specified range was invalid: {0}, {1}
+policyBeanNotFound=Cant find a Sandesha2 policy bean
+cloneDoesNotMatchToOriginal=The elements of the original and cloned SOAP
Envelopes do not match
+exceptionInFlowCompletion=Got exception in flowCompletion of SandeshaInHandler
+rmdBeanNotFound=RMDBean not available for the sequence:{0}
#-------------------------------------
#
# Protocol Oriented Messages
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java?view=diff&rev=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/SequenceProcessor.java
Sun Feb 4 00:32:05 2007
@@ -301,7 +301,7 @@
} else { //Scenario 2 and Scenario 3
SandeshaPolicyBean policyBean =
SandeshaUtil.getPropertyBean (msgCtx.getAxisOperation());
if (policyBean==null) {
- String message = "Cant find the policy bean
from the passed Axis2 description";
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.policyBeanNotFound);
throw new SandeshaException (message);
}
// having a negative value for timeToSend
will make this behave as having an infinite ack interval.
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java?view=diff&rev=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/TerminateSeqMsgProcessor.java
Sun Feb 4 00:32:05 2007
@@ -45,6 +45,8 @@
import org.apache.sandesha2.storage.beans.SenderBean;
import org.apache.sandesha2.util.AcknowledgementManager;
import org.apache.sandesha2.util.FaultManager;
+import org.apache.sandesha2.util.MessageRetransmissionAdjuster;
+import org.apache.sandesha2.util.MsgInitializer;
import org.apache.sandesha2.util.RMMsgCreator;
import org.apache.sandesha2.util.SandeshaUtil;
import org.apache.sandesha2.util.SpecSpecificConstants;
@@ -192,6 +194,8 @@
MessageContext message = storageManager
.retrieveMessageContext(messageKey, context);
+ RMMsgContext rmMessage =
MsgInitializer.initializeMessage(message);
+
// attaching the this outgoing
terminate message as the
// response to the incoming terminate
message.
message.setTransportOut(terminateSeqMsg.getTransportOut());
@@ -203,6 +207,8 @@
org.apache.axis2.Constants.RESPONSE_WRITTEN, "true");
AxisEngine engine = new
AxisEngine(context);
engine.send(message);
+
+
MessageRetransmissionAdjuster.adjustRetransmittion(rmMessage,
outgoingSideTerminateBean, context, storageManager);
}
}
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java?view=diff&rev=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/storage/inmemory/InMemorySenderBeanMgr.java
Sun Feb 4 00:32:05 2007
@@ -66,6 +66,8 @@
return super.find(bean);
}
+ //TODO remove this method, and move this logic out of the
StorageManager. We should not hv any RM logic inside the StorageManagers.
+ //Otherwise we will hv to repeat that logic inside every SM Impl.
public SenderBean getNextMsgToSend() throws SandeshaStorageException {
// Set up match criteria
SenderBean matcher = new SenderBean();
@@ -91,8 +93,11 @@
result = bean;
}
} else if(result == null) {
- result = bean;
- break;
+ //making sure that the bean passes the reSend
test as well
+ if (bean.getSentCount()==0 ||
(bean.getSentCount()>0 && bean.isReSend())) {
+ result = bean;
+ break;
+ }
}
}
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=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
Sun Feb 4 00:32:05 2007
@@ -1167,7 +1167,7 @@
if
(oldEnvHeaderBlock.isProcessed())
newEnvHeaderBlock.setProcessed();
} else {
- String message = "The elements
of the original and cloned SOAP Envelopes do not match";
+ String message =
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cloneDoesNotMatchToOriginal);
throw new
SandeshaException(message);
}
}
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java?view=diff&rev=503374&r1=503373&r2=503374
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/Sender.java
Sun Feb 4 00:32:05 2007
@@ -95,6 +95,7 @@
SenderBeanMgr mgr =
storageManager.getSenderBeanMgr();
SenderBean senderBean = mgr.getNextMsgToSend();
+
if (senderBean == null) {
if (log.isDebugEnabled()) {
String message =
SandeshaMessageHelper
@@ -110,7 +111,10 @@
// work Id is used to define the piece of work
that will be
// assigned to the Worker thread,
// to handle this Sender bean.
- String workId = senderBean.getMessageID();
+
+ //workId contains a timeTiSend part to cater
for retransmissions.
+ //This will cause retransmissions to be treated
as new work.
+ String workId = senderBean.getMessageID() +
senderBean.getTimeToSend();
// check weather the bean is already assigned
to a worker.
if (getWorkerLock().isWorkPresent(workId)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]