@Test public void testAbort5() throws Throwable { transactionManager.abort(1, 100L, Long.valueOf(-64L), members, members.add(new Join()), null, null); assertEquals("(ArrayList) members.size()", 1, members.size()); }
@Test public void testAbort2() throws Throwable { members.add(new Join()); transactionManager.abort(1, 100L, "", members, false, null, null); assertEquals("(ArrayList) members.size()", 1, members.size()); }
@Test public void testAbortThrowsNullPointerException2() throws Throwable { LogEvent evt = new LogEvent("testTransactionManagerTag", ""); try { transactionManager.abort(1, 100L, new File("testTransactionManagerParam1"), null, true, evt, null); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { assertNull("ex.getMessage()", ex.getMessage()); } }
@Test public void testAbort6() throws Throwable { LogEvent evt = new LogEvent(); transactionManager.abort(1, 100L, new NotActiveException(), members, true, evt, null); assertEquals("(ArrayList) members.size()", 0, members.size()); }
@Test public void testAbort3() throws Throwable { LogEvent evt = new LogEvent("testTransactionManagerTag", Integer.valueOf(2)); transactionManager.abort(1, 100L, Boolean.TRUE, members, members.add(new Forward()), evt, null); assertEquals("evt.payLoad.size()", 2, evt.getPayLoad().size()); assertEquals("evt.payLoad.get(1)", " abort: org.jpos.transaction.participant.Forward", evt.getPayLoad().get(1)); }
@Test public void testAbortThrowsNullPointerException() throws Throwable { LogEvent evt = new LogEvent("testTransactionManagerTag"); try { transactionManager.abort(1, 100L, new NotActiveException("testTransactionManagerParam1"), members, members.add(null), evt, null); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { assertNull("ex.getMessage()", ex.getMessage()); assertEquals("(ArrayList) members.size()", 1, members.size()); } }
@Test public void testAbort4() throws Throwable { members.add(new Debug()); LogEvent evt = new LogEvent("testTransactionManagerTag"); transactionManager.abort(1, 100L, "", members, false, evt, null); assertEquals("evt.payLoad.size()", 1, evt.getPayLoad().size()); assertEquals("evt.payLoad.get(0)", " abort: org.jpos.transaction.participant.Debug", evt.getPayLoad().get(0)); }
protected void recover (int session, long id) { LogEvent evt = getLog().createLogEvent ("recover"); Profiler prof = new Profiler(); evt.addMessage ("<id>" + id + "</id>"); try { String stateKey = getKey (STATE, id); String contextKey = getKey (CONTEXT, id); Integer state = (Integer) psp.rdp (stateKey); if (state == null) { evt.addMessage ("unknown stateKey " + stateKey); SpaceUtil.wipe (psp, contextKey); // just in case ... return; } Serializable context = (Serializable) psp.rdp (contextKey); if (context != null) evt.addMessage (context); if (DONE.equals (state)) { evt.addMessage ("<done/>"); } else if (COMMITTING.equals (state)) { commit (session, id, context, getParticipants (id), true, evt, prof); } else if (PREPARING.equals (state)) { abort (session, id, context, getParticipants (id), true, evt, prof); } purge (id, true); } finally { evt.addMessage (prof); Logger.log (evt); } } protected synchronized void checkRetryTask () {
protected void abort (int session, long id, Serializable context, List<TransactionParticipant> members, boolean recover, LogEvent evt, Profiler prof) { for (TransactionParticipant p :members) { if (recover && p instanceof ContextRecovery) { context = ((ContextRecovery) p).recover (id, context, false); if (evt != null) evt.addMessage (" abort-recover: " + getName(p)); } if (hasStatusListeners) notifyStatusListeners ( session, TransactionStatusEvent.State.ABORTING, id, getName(p), context ); abort(p, id, context); if (evt != null) { evt.addMessage (" abort: " + getName(p)); if (prof != null) prof.checkPoint (" abort: " + getName(p)); } } } protected int prepareForAbort
if (members.size() > 0) { setThreadLocal(id, context); abort(session, id, context, members, false, evt, prof); removeThreadLocal();