|Summary:||AbstractQueryReport$StatementProxy throws exception on Object methods if statement is closed|
|Product:||Tomcat Modules||Reporter:||Ignacio Baca <ignacio>|
|Component:||jdbc-pool||Assignee:||Tomcat Developers Mailing List <dev>|
Description Ignacio Baca 2014-01-29 14:32:38 UTC
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).
Comment 1 Lari Hotari 2014-02-27 08:56:17 UTC
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.
Comment 2 Lari Hotari 2014-02-27 09:01:37 UTC
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