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/02/13 18:00:17 UTC

svn commit: r507098 - in /webservices/sandesha/trunk/java/src/org/apache/sandesha2: Sandesha2Constants.java handlers/SandeshaInHandler.java workers/InvokerWorker.java

Author: gatfora
Date: Tue Feb 13 09:00:16 2007
New Revision: 507098

URL: http://svn.apache.org/viewvc?view=rev&rev=507098
Log:
Handle exceptions generated when generating a fault message inside the InvokerWorker

Modified:
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=507098&r1=507097&r2=507098
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java Tue Feb 13 09:00:16 2007
@@ -469,8 +469,6 @@
 	
 	static final String POST_FAILURE_MESSAGE = "PostFailureMessage";
 	
-	static final String REINJECTED_MESSAGE = "ReinjectedMessage";
-	
 	static final String MODULE_CLASS_LOADER = "Sandesha2ModuleClassLoader";
 	
 	static final String SECURITY_MANAGER = "Sandesha2SecurityManager";

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=507098&r1=507097&r2=507098
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java Tue Feb 13 09:00:16 2007
@@ -76,18 +76,10 @@
 		}
 
 		String DONE = (String) msgCtx.getProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE);
-		if (null != DONE && "true".equals(DONE)) {
+		if (null != DONE && Sandesha2Constants.VALUE_TRUE.equals(DONE)) {
 			if (log.isDebugEnabled())
 				log.debug("Exit: SandeshaInHandler::invoke, Application processing done " + returnValue);
 			return returnValue;
-		}
-
-		String reinjectedMessage = (String) msgCtx.getProperty(Sandesha2Constants.REINJECTED_MESSAGE);
-		if (reinjectedMessage != null && Sandesha2Constants.VALUE_TRUE.equals(reinjectedMessage)) {
-			if (log.isDebugEnabled())
-				log.debug("Exit: SandeshaInHandler::invoke, reinjectedMessage " + returnValue);
-			return returnValue; // Reinjected messages are not processed by Sandesha2 inflow
-					// handlers
 		}
 		
 		if (log.isDebugEnabled()) log.debug("SandeshaInHandler::invoke Continuing beyond basic checks");

Modified: webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java?view=diff&rev=507098&r1=507097&r2=507098
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java (original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/InvokerWorker.java Tue Feb 13 09:00:16 2007
@@ -1,9 +1,12 @@
 package org.apache.sandesha2.workers;
 
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.addressing.AddressingConstants;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.util.MessageContextBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -35,7 +38,7 @@
 	}
 	
 	public void run() {
-		if(log.isDebugEnabled()) log.debug("Entry: InvokerWorker::run");
+		if(log.isDebugEnabled()) log.debug("Enter: InvokerWorker::run");
 		
 		Transaction transaction = null;
 		MessageContext msgToInvoke = null;
@@ -62,8 +65,6 @@
 				transaction.commit();
 				transaction = null;
 			}
-				
-			boolean invoked = false;
 			
 			try {
 
@@ -78,7 +79,7 @@
 						&& Sandesha2Constants.VALUE_TRUE.equals(postFaulureProperty))
 					postFailureInvocation = true;
 
-				AxisEngine engine = new AxisEngine(configurationContext);
+				AxisEngine engine = new AxisEngine(msgToInvoke.getConfigurationContext());
 				if (postFailureInvocation) {
 					makeMessageReadyForReinjection(msgToInvoke);
 					if (log.isDebugEnabled())
@@ -92,16 +93,12 @@
 					msgToInvoke.setPaused(false);
 					engine.resumeReceive(msgToInvoke);
 				}
-				
-				invoked = true;
 
 			} catch (Exception e) {
 				if (log.isDebugEnabled())
 					log.debug("Exception :", e);
 
 				handleFault(msgToInvoke, e);
-
-				// throw new SandeshaException(e);
 			}
 				
 			//starting a transaction for the post-invocation work.
@@ -153,14 +150,13 @@
 					throw new SandeshaException (message);
 				}
 				
-				if (invoked) {
-					nextMsgNo++;
-					rMDBean.setNextMsgNoToProcess(nextMsgNo);
-					nextMsgMgr.update(rMDBean);
-				}				
+				nextMsgNo++;
+				rMDBean.setNextMsgNoToProcess(nextMsgNo);
+				nextMsgMgr.update(rMDBean);
 			}
 		} catch (Exception e) {
-			log.error(e.toString(), e);
+			if (log.isErrorEnabled())
+				log.error(e.toString(), e);
 			if(transaction != null) {
 				transaction.rollback();
 				transaction = null;
@@ -181,14 +177,22 @@
 		messageContext.getOptions().setMessageId(null);
 		messageContext.getOptions().setTo(null);
 		messageContext.getOptions().setAction(null);
-		messageContext.setProperty(Sandesha2Constants.REINJECTED_MESSAGE, Sandesha2Constants.VALUE_TRUE);
+		messageContext.setProperty(Sandesha2Constants.APPLICATION_PROCESSING_DONE, Sandesha2Constants.VALUE_TRUE);
 	}
 
-	private void handleFault(MessageContext inMsgContext, Exception e) throws Exception {
-		// msgContext.setProperty(MessageContext.TRANSPORT_OUT, out);
+	private void handleFault(MessageContext inMsgContext, Exception e) {
 		AxisEngine engine = new AxisEngine(inMsgContext.getConfigurationContext());
-		MessageContext faultContext = engine.createFaultMessageContext(inMsgContext, e);
-		engine.sendFault(faultContext);
+		try {					
+			MessageContext faultContext = MessageContextBuilder.createFaultMessageContext(inMsgContext, e);
+			// Copy some of the parameters to the new message context.
+			faultContext.setProperty(HTTPConstants.CONTENT_TYPE, inMsgContext
+					.getProperty(HTTPConstants.CONTENT_TYPE));
+
+			engine.sendFault(faultContext);
+		} catch (AxisFault e1) {
+			if (log.isErrorEnabled())
+				log.error("Unable to send fault message ", e1);
+		}
 	}
 	
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org