in geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java [308:338]
public Object invoke(Object object, Method method, Object[] args) throws Throwable {
Object handle;
if (method.getDeclaringClass() == Object.class) {
if (method.getName().equals("finalize")) {
// ignore the handle will get called if it implemented the method
return null;
}
if (method.getName().equals("clone")) {
throw new CloneNotSupportedException();
}
// for equals, hashCode and toString don't activate handle
synchronized (this) {
handle = this.handle;
}
} else {
handle = getHandle();
}
try {
Object value = method.invoke(handle, args);
return value;
} catch (InvocationTargetException ite) {
// catch InvocationTargetExceptions and turn them into the target exception (if there is one)
Throwable t = ite.getTargetException();
if (t != null) {
throw t;
}
throw ite;
}
}