### Question:
DirectIoTransactionEditor extends Configured { public boolean abort(String executionId) throws IOException, InterruptedException { if (executionId == null) { throw new IllegalArgumentException("executionId must not be null"); } LOG.info(MessageFormat.format( "Start aborting Direct I/O transaction (executionId={0})", executionId)); boolean aborted = doAbort(executionId); if (aborted) { LOG.info(MessageFormat.format( "Finish aborting Direct I/O transaction (executionId={0})", executionId)); } else { LOG.info(MessageFormat.format( "Direct I/O transaction is already completed (executionId={0})", executionId)); } return aborted; } DirectIoTransactionEditor();  DirectIoTransactionEditor(DirectDataSourceRepository repository); TransactionInfo get(String executionId); List<TransactionInfo> list(); boolean apply(String executionId); boolean abort(String executionId);  }### Answer:
@Test public void abort() throws Exception { indoubt("ex1"); assertThat(count(production1), is(0)); assertThat(count(production2), is(0)); assertThat(testee.abort("__UNKNOWN__"), is(false)); assertThat(count(production1), is(0)); assertThat(count(production2), is(0)); assertThat(testee.abort("ex1"), is(true)); assertThat(count(production1), is(0)); assertThat(count(production2), is(0)); assertThat(testee.abort("ex1"), is(false)); }