Andreas Neumann created TEPHRA-279: -------------------------------------- Summary: If getTransactionAwareName() throws an exception, abort() does not happen Key: TEPHRA-279 URL: https://issues.apache.org/jira/browse/TEPHRA-279 Project: Tephra Issue Type: Bug Components: core Affects Versions: 0.13.0-incubating Reporter: Andreas Neumann Assignee: Poorna Chandra
The problem is here in TransactionContext: {code} private void checkForConflicts() throws TransactionFailureException { Collection<byte[]> changes = Lists.newArrayList(); for (TransactionAware txAware : txAwares) { try { changes.addAll(txAware.getTxChanges()); } catch (Throwable e) { // ---- PROBLEM: if getTransactionAwareName() throws, abprt() is not called! String message = String.format("Unable to retrieve changes from transaction-aware '%s' for transaction %d. ", txAware.getTransactionAwareName(), currentTx.getTransactionId()); LOG.warn(message, e); abort(new TransactionFailureException(message, e)); // abort will throw that exception } } {code} We could consider such a transaction-aware ill-behaved, but we should still make sure the transaction semantics remain correct. -- This message was sent by Atlassian JIRA (v6.4.14#64029)