@Override public Object proceed() throws Exception { try { return delegate.invokeNext(); } catch(Exception e) { throw e; } catch(Error e) { throw (Error) e; } catch(Throwable t) { throw new RuntimeException(t); } } }
public Object invokeNext() throws Throwable { if (interceptors != null && currentInterceptor < interceptors.length) { try { return interceptors[currentInterceptor++].invoke(this); } finally { // so that interceptors like clustering can reinvoke down the chain currentInterceptor--; } } try { return wrapped.invokeNext(); } finally { responseContextInfo = wrapped.getResponseContextInfo(); } }