static DecoratedAssertionFailedError create(Throwable src) { // The two constructors have different behaviour due to // parent constructor org.opentest4j.DecoratedAssertionFailedError DecoratedAssertionFailedError result; if (src instanceof AssertionFailedError && ((AssertionFailedError) src).getExpected() != null && ((AssertionFailedError) src).getActual() != null) { result = new DecoratedAssertionFailedError( src.toString(), ((AssertionFailedError) src).getExpected().getValue(), ((AssertionFailedError) src).getActual().getValue(), src ); } else { result = new DecoratedAssertionFailedError( src.toString(), src ); } result.setStackTrace(src.getStackTrace()); for (Throwable sp : src.getSuppressed()) { result.addSuppressed(sp); } return result; }