diff --git a/bvm/ballerina-runtime/src/main/java/io/ballerina/runtime/transactions/TransactionResourceManager.java b/bvm/ballerina-runtime/src/main/java/io/ballerina/runtime/transactions/TransactionResourceManager.java index b12e8a342b95..337fafeee032 100644 --- a/bvm/ballerina-runtime/src/main/java/io/ballerina/runtime/transactions/TransactionResourceManager.java +++ b/bvm/ballerina-runtime/src/main/java/io/ballerina/runtime/transactions/TransactionResourceManager.java @@ -30,8 +30,6 @@ import io.ballerina.runtime.internal.scheduling.Scheduler; import io.ballerina.runtime.internal.scheduling.Strand; import io.ballerina.runtime.internal.util.RuntimeUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -40,7 +38,9 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -86,7 +86,7 @@ public class TransactionResourceManager { private static final String ATOMIKOS_LOG_NAME_PROPERTY = "com.atomikos.icatch.log_base_name"; private static final String ATOMIKOS_REGISTERED_PROPERTY = "com.atomikos.icatch.registered"; - private static final Logger log = LoggerFactory.getLogger(TransactionResourceManager.class); + private static final PrintStream outStream = System.out; private Map> resourceRegistry; private Map trxRegistry; private Map xidRegistry; @@ -261,7 +261,7 @@ public boolean prepare(String transactionId, String transactionBlockId) { xaResource.prepare(xid); } } catch (XAException e) { - log.error("error at transaction prepare phase in transaction " + transactionId + logError("error at transaction prepare phase in transaction " + transactionId + ":" + e.getMessage(), e); return false; } @@ -273,7 +273,7 @@ public boolean prepare(String transactionId, String transactionBlockId) { // resource participant reported failure. status = false; } - log.info(String.format("Transaction prepare (participants): %s", status ? "success" : "failed")); + outStream.printf("Transaction prepare (participants): %s%n", status ? "success" : "failed"); return status; } @@ -297,7 +297,7 @@ public boolean notifyCommit(String transactionId, String transactionBlockId) { } } catch (SystemException | HeuristicMixedException | HeuristicRollbackException | RollbackException e) { - log.error("error when committing transaction " + transactionId + ":" + e.getMessage(), e); + logError("error when committing transaction " + transactionId + ":" + e.getMessage(), e); commitSuccess = false; } } @@ -316,7 +316,7 @@ public boolean notifyCommit(String transactionId, String transactionBlockId) { } } } catch (XAException e) { - log.error("error when committing transaction " + transactionId + ":" + e.getMessage(), e); + logError("error when committing transaction " + transactionId + ":" + e.getMessage(), e); commitSuccess = false; } finally { ctx.close(); @@ -354,7 +354,7 @@ public boolean notifyAbort(String transactionId, String transactionBlockId) { trx.rollback(); } } catch (SystemException e) { - log.error("error when aborting transaction " + transactionId + ":" + e.getMessage(), e); + logError("error when aborting transaction " + transactionId + ":" + e.getMessage(), e); abortSuccess = false; } } @@ -373,7 +373,7 @@ public boolean notifyAbort(String transactionId, String transactionBlockId) { } } } catch (XAException e) { - log.error("error when aborting the transaction " + transactionId + ":" + e.getMessage(), e); + logError("error when aborting the transaction " + transactionId + ":" + e.getMessage(), e); abortSuccess = false; } finally { ctx.close(); @@ -412,7 +412,7 @@ public void beginXATransaction(String transactionId, String transactionBlockId, trxRegistry.put(combinedId, trx); } } catch (SystemException | NotSupportedException e) { - log.error("error in initiating transaction " + transactionId + ":" + e.getMessage(), e); + logError("error in initiating transaction " + transactionId + ":" + e.getMessage(), e); } } else { Xid xid = xidRegistry.get(combinedId); @@ -423,7 +423,7 @@ public void beginXATransaction(String transactionId, String transactionBlockId, try { xaResource.start(xid, TMNOFLAGS); } catch (XAException e) { - log.error("error in starting XA transaction " + transactionId + ":" + e.getMessage(), e); + logError("error in starting XA transaction " + transactionId + ":" + e.getMessage(), e); } } } @@ -556,7 +556,7 @@ void endXATransaction(String transactionId, String transactionBlockId, boolean a trx.delistResource(xaResource, TMSUCCESS); } } catch (IllegalStateException | SystemException e) { - log.error("error in ending the XA transaction " + transactionId + logError("error in ending the XA transaction " + transactionId + ":" + e.getMessage(), e); } } @@ -573,7 +573,7 @@ void endXATransaction(String transactionId, String transactionBlockId, boolean a xaResource.end(xid, abortOnly ? TMFAIL : TMSUCCESS); } } catch (XAException e) { - log.error("error in ending XA transaction " + transactionId + ":" + e.getMessage(), e); + logError("error in ending XA transaction " + transactionId + ":" + e.getMessage(), e); } } } @@ -600,7 +600,7 @@ private String generateCombinedTransactionId(String transactionId, String transa public void notifyResourceFailure(String gTransactionId) { failedResourceParticipantSet.add(gTransactionId); // The resource excepted (uncaught). - log.info("Trx infected callable unit excepted id : " + gTransactionId); + outStream.println("Trx infected callable unit excepted id : " + gTransactionId); } public void notifyLocalParticipantFailure(String gTransactionId, String blockId) { @@ -618,4 +618,8 @@ public Object getTransactionRecord(BArray xid) { return null; } } + + private void logError(String message, Exception err) { + outStream.println(LocalDateTime.now() + "ERROR\t" + message + "\n" + Arrays.toString(err.getStackTrace())); + } }