/**
* @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
*/
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Invocation invocation = new ProxyInvocation();
ProxyInvocation.putMethod(invocation, method);
ProxyInvocation.putArguments(invocation, args);
ProxyInvocation.putProxy(invocation, proxy);
InvocationResult result = this.invoke(invocation);
if( result.isException() )