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]

Reply via email to