Author: gatfora
Date: Mon Dec 4 03:15:04 2006
New Revision: 482136
URL: http://svn.apache.org/viewvc?view=rev&rev=482136
Log:
Applying patch for SANDESHA2-57
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
Modified:
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL:
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?view=diff&rev=482136&r1=482135&r2=482136
==============================================================================
---
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
(original)
+++
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
Mon Dec 4 03:15:04 2006
@@ -58,7 +58,7 @@
private static final long serialVersionUID = -7187928423123306156L;
- private static final Log log =
LogFactory.getLog(SandeshaGlobalInHandler.class.getName());
+ private static final Log log =
LogFactory.getLog(SandeshaGlobalInHandler.class);
public InvocationResponse invoke(MessageContext msgContext) throws
AxisFault {
@@ -80,31 +80,8 @@
return returnValue; // Reinjected messages are not
processed by Sandesha2 inflow
// handlers
- StorageManager storageManager = null;
- try {
- storageManager = SandeshaUtil
-
.getSandeshaStorageManager(configContext, configContext.getAxisConfiguration());
- if (storageManager == null) {
- log.debug("Sandesha2 cannot proceed. The
StorageManager is not available " + returnValue);
- return returnValue;
- }
- } catch (SandeshaException e1) {
- // TODO make this a log
- log.debug("Sandesha2 cannot proceed. Exception thrown
when looking for the StorageManager", e1);
- return returnValue;
- }
-
boolean withinTransaction = false;
- String withinTransactionStr = (String)
msgContext.getProperty(Sandesha2Constants.WITHIN_TRANSACTION);
- if (withinTransactionStr != null &&
Sandesha2Constants.VALUE_TRUE.equals(withinTransactionStr)) {
- withinTransaction = true;
- }
-
Transaction transaction = null;
- if (!withinTransaction) {
- transaction = storageManager.getTransaction();
-
msgContext.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,
Sandesha2Constants.VALUE_TRUE);
- }
boolean rolebacked = false;
try {
@@ -151,6 +128,30 @@
return returnValue;
}
+ String withinTransactionStr = (String)
msgContext.getProperty(Sandesha2Constants.WITHIN_TRANSACTION);
+ if (withinTransactionStr != null &&
Sandesha2Constants.VALUE_TRUE.equals(withinTransactionStr)) {
+ withinTransaction = true;
+ }
+
+ StorageManager storageManager = null;
+ try {
+ storageManager = SandeshaUtil
+
.getSandeshaStorageManager(configContext, configContext.getAxisConfiguration());
+ if (storageManager == null) {
+ log.debug("Sandesha2 cannot proceed.
The StorageManager is not available " + returnValue);
+ return returnValue;
+ }
+ } catch (SandeshaException e1) {
+ // TODO make this a log
+ log.debug("Sandesha2 cannot proceed. Exception
thrown when looking for the StorageManager", e1);
+ return returnValue;
+ }
+
+ if (!withinTransaction) {
+ transaction = storageManager.getTransaction();
+
msgContext.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,
Sandesha2Constants.VALUE_TRUE);
+ }
+
RMMsgContext rmMessageContext =
MsgInitializer.initializeMessage(msgContext);
// Dropping duplicates
@@ -180,7 +181,7 @@
msgContext.pause();
returnValue = InvocationResponse.SUSPEND;
- if (!withinTransaction) {
+ if (!withinTransaction && transaction != null) {
try {
transaction.rollback();
msgContext.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,
Sandesha2Constants.VALUE_FALSE);
@@ -196,7 +197,7 @@
log.debug("Exit:
SandeshaGlobalInHandler::invoke ", e);
throw new AxisFault(message, e);
} finally {
- if (!withinTransaction && !rolebacked) {
+ if (!withinTransaction && !rolebacked && transaction !=
null) {
try {
transaction.commit();
msgContext.setProperty(Sandesha2Constants.WITHIN_TRANSACTION,
Sandesha2Constants.VALUE_FALSE);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]