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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]