public void verify() { try { state.verify(); } catch (RuntimeExceptionWrapper e) { throw (RuntimeException) e.getRuntimeException().fillInStackTrace(); } catch (AssertionErrorWrapper e) { throw (AssertionError) e.getAssertionError().fillInStackTrace(); } }
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (control.getState() instanceof RecordState) { LastControl.reportLastControl(control); } return control.getState().invoke(new Invocation(proxy, method, args)); } catch (RuntimeExceptionWrapper e) { throw e.getRuntimeException().fillInStackTrace(); } catch (AssertionErrorWrapper e) { throw e.getAssertionError().fillInStackTrace(); } catch (ThrowableWrapper t) { throw t.getThrowable().fillInStackTrace(); } // then let all unwrapped exceptions pass unmodified }