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