boolean (Throwable throwable) { if (throwable instanceof AssumptionViolatedException) return true; if (throwable instanceof IgnoreException) return true; if (throwable.getClass().getName().equals(MULTIPLE_FAILURES_ERROR)) { try { Method getFailuresMethod = Class.forName(MULTIPLE_FAILURES_ERROR).getDeclaredMethod("getFailures"); @SuppressWarnings("unchecked") List<Throwable> failures = (List<Throwable>)getFailuresMethod.invoke(throwable); for (Throwable failure : failures) { if (isIgnoringThrowable(failure)) return true; } } catch (Throwable e) { return false; } } return false; }