Class StatementFinalizer.CloseAwareProxy

java.lang.Object
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer.CloseAwareProxy
All Implemented Interfaces:
InvocationHandler
Enclosing class:
StatementFinalizer

protected class StatementFinalizer.CloseAwareProxy extends Object implements InvocationHandler
Thin proxy around a tracked statement. Every call is delegated unchanged; only close() is reacted to, by forgetting the tracked entry so that a statement the application closed properly neither lingers in the list nor is touched again when the connection is returned.

Object.equals(Object) and hashCode() are answered on the handle itself, as ProxyConnection and the pool's other statement proxies answer them: the handle equals only itself and hashes at its own identity, so a container holding it next to an unwrapped handle for the same statement holds two elements whichever of the two arrived first. Reaching the statement underneath is unwrap's purpose, and there the driver's own equality applies.