If the StatemetProxy.hashcode is called after the delegated statement is closed the proxy throws an exception. This produces an incompatibility with the last version of hibernate. Hibernate issue at https://hibernate.atlassian.net/browse/HHH-8853. Although this problem appear in the last version of hibernate, looks like a silent bug in the statement proxy. For example, guava has an utility which hides solves this problem (https://code.google.com/p/guava-libraries/wiki/ReflectionExplained#AbstractInvocationHandler).
Please fix this. This is causing a problem in Grails applications too, http://jira.grails.org/browse/GRAILS-11151 . This is related to Hibernate issue HHH-8853 and has a workaround in Hibernate 4.3.2 version (which hasn't been released yet.) The problem seems to be in StatementDecoratorInterceptor.StatementProxy https://github.com/apache/tomcat/blob/7884644627150716ec3ed8460ee845179cb5da9a/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/StatementDecoratorInterceptor.java#L235 not allowing equals and hashCode calls after the statement has been closed.
Another place where equals and hashCode should be allowed on the proxy after closing: https://github.com/apache/tomcat/blob/7cc49cba77c628207c3d91ad4d4e1f6b2186de94/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/interceptor/AbstractQueryReport.java#L224