### Question:
TransactionException extends Exception { @Override public synchronized Throwable getCause() { return this.causes.isEmpty() ? super.getCause() : this.causes.get(0); } TransactionException(final List<Throwable> causes);  TransactionException(final String message, final List<Throwable> causes);  TransactionException(final String message,
        final List<Throwable> causes,
        final boolean isNonRecoverable); @Override synchronized Throwable getCause(); List<Throwable> getCauses(); int exceptionCount(); boolean isNonRecoverable(); @Override String getMessage(); String getStackTraceString(); @Override void printStackTrace(); @Override void printStackTrace(final PrintStream writeTo); @Override void printStackTrace(final PrintWriter writeTo);  }### Answer:
@Test private void emptyException() { TransactionException exception = new TransactionException(Collections.emptyList()); assertNull(exception.getCause()); }