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 ch...@apache.org on 2006/02/26 13:12:44 UTC

svn commit: r381083 - in /webservices/sandesha/trunk/src/org/apache/sandesha2: msgprocessors/ApplicationMsgProcessor.java workers/InOrderInvoker.java wsrm/AckRequested.java

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org