Author: chamikara
Date: Sun Feb 26 04:12:39 2006
New Revision: 381083

URL: http://svn.apache.org/viewcvs?rev=381083&view=rev
Log:
Corrected mustUnderstand processing of the ackRequested header block. (SOAP 1.2 
case was not working correctly due to this).

A bug fix in the InOrderInvoker. 

Modified:
    
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=381083&r1=381082&r2=381083&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Sun Feb 26 04:12:39 2006
@@ -297,6 +297,13 @@
 
                AckRequested ackRequested = (AckRequested) rmMsgCtx
                                
.getMessagePart(Sandesha2Constants.MessageParts.ACK_REQUEST);
+               
+               if (ackRequested!=null) {
+                       //setting mustundestand=false for the ackRequested 
header block.
+                       ackRequested.setMustUnderstand(false);
+                       rmMsgCtx.addSOAPEnvelope();
+               }
+               
                LastMessage lastMessage = (LastMessage) 
sequence.getLastMessage();
 
                //Setting the ack depending on AcksTo.

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java?rev=381083&r1=381082&r2=381083&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/InOrderInvoker.java 
Sun Feb 26 04:12:39 2006
@@ -155,10 +155,10 @@
                                                        new InvokerBean(null, 
nextMsgno, sequenceId))
                                                        .iterator();
                                        
+                                       boolean invoked = false;
+                                       
                                        while (stMapIt.hasNext()) {
 
-
-                                               
                                                InvokerBean stMapBean = 
(InvokerBean) stMapIt
                                                                .next();
                                                String key = 
stMapBean.getMessageContextRefKey();
@@ -184,6 +184,7 @@
                                                        
                                                        new AxisEngine 
(msgToInvoke.getConfigurationContext())
                                                                        
.resume(msgToInvoke);
+                                                       invoked = true;
                                                        
                                                        if 
(!AxisOperationFactory.MEP_URI_IN_ONLY.equals(msgToInvoke.getAxisOperation().getMessageExchangePattern()))
 {
                                                                
invocationTransaction = storageManager.getTransaction();
@@ -222,10 +223,12 @@
                                                
                                        }
 
-                                       nextMsgno++;
-                                       
nextMsgBean.setNextMsgNoToProcess(nextMsgno);
-                                       nextMsgMgr.update(nextMsgBean);
-                                       invocationTransaction.commit();
+                                       if (invoked) {
+                                               nextMsgno++;
+                                               
nextMsgBean.setNextMsgNoToProcess(nextMsgno);
+                                               nextMsgMgr.update(nextMsgBean);
+                                               invocationTransaction.commit();
+                                       }
                                }
                                
                        } catch (SandeshaException e1) {

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java?rev=381083&r1=381082&r2=381083&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/wsrm/AckRequested.java 
Sun Feb 26 04:12:39 2006
@@ -43,6 +43,7 @@
        private SOAPFactory factory;
        OMNamespace rmNamespace = null;
        String namespaceValue = null;
+       private boolean mustUnderstand = true;
 
        public AckRequested(SOAPFactory factory,String namespaceValue) {
                this.factory = factory;
@@ -100,7 +101,7 @@
                SOAPHeader SOAPHdr = (SOAPHeader) header;
                SOAPHeaderBlock ackReqHdrBlock = SOAPHdr.addHeaderBlock(
                                Sandesha2Constants.WSRM_COMMON.ACK_REQUESTED, 
rmNamespace);
-               ackReqHdrBlock.setMustUnderstand(true);
+               ackReqHdrBlock.setMustUnderstand(isMustUnderstand());
 
                identifier.toOMElement(ackReqHdrBlock);
 
@@ -140,6 +141,14 @@
                        elem.detach();
                
                toOMElement(header);
+       }
+       
+       public boolean isMustUnderstand() {
+               return mustUnderstand;
+       }
+
+       public void setMustUnderstand(boolean mustUnderstand) {
+               this.mustUnderstand = mustUnderstand;
        }
 
 }



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

Reply via email to