[
https://issues.apache.org/jira/browse/DBCP-335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12873921#action_12873921
]
Marcus Better commented on DBCP-335:
------------------------------------
I didn't post any example code so I'm not sure what you are referring to. And I
am not trying to check if the connection is alive. The app is executing
queries, and this happens at any time, also when all connetions are alive and
well.
In any case DBCP is used in my application, as is evident from the stack trace.
> NPE with MySQL PreparedStatement
> --------------------------------
>
> Key: DBCP-335
> URL: https://issues.apache.org/jira/browse/DBCP-335
> Project: Commons Dbcp
> Issue Type: Bug
> Affects Versions: 1.4
> Environment: CloudFoundry, Linux, Sun Java 1.6.0_04, Grails 1.2.2,
> MySQL Connector 5.1.12
> Reporter: Marcus Better
>
> My Grails application using MySQL and DBCP often throws an exception as
> below. I can trigger it by making a simultaneous requests (three at a time)
> on differend threads in a ThreadPoolExecutor. The requests would all use the
> same query. This triggers the exception with a few percent probability.
> I have tried with DBCP 1.2.2 and 1.4.
> There is a similar-looking [MySQL bug|http://bugs.mysql.com/bug.php?id=41628]
> but they blame the pool...
> {code}
> Exception in thread "pool-1-thread-12" java.lang.NullPointerException
> at
> com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2475)
> at
> com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2451)
> at
> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2205)
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
> at
> org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
> at org.hibernate.loader.Loader.doQuery(Loader.java:697)
> at
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
> at org.hibernate.loader.Loader.loadEntity(Loader.java:1881)
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
> at
> org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
> at
> org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3072)
> at
> org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
> at
> org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
> at
> org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
> at
> org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:121)
> at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
> at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:863)
> at
> org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:95)
> at
> org.codehaus.groovy.grails.orm.hibernate.proxy.HibernateProxyHandler.unwrapProxy(HibernateProxyHandler.java:80)
> at
> org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsHibernateUtil.unwrapProxy(GrailsHibernateUtil.java:322)
> at
> org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsHibernateUtil$unwrapProxy.call(Unknown
> Source)
> at
> org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport$__clinit__closure88.doCall(HibernatePluginSupport.groovy:401)
> at sun.reflect.GeneratedMethodAccessor381.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:151)
> at
> org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport$__clinit__closure88.call(HibernatePluginSupport.groovy)
> at sun.reflect.GeneratedMethodAccessor380.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1049)
> at
> groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:924)
> at
> groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:923)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
> at
> org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:739)
> at
> org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:722)
> at
> org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod$1.invoke(ClosureMetaMethod.java:135)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
> at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1594)
> at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:951)
> at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3287)
> at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:964)
> at
> org.codehaus.groovy.runtime.callsite.PogoMetaClassGetPropertySite.getProperty(PogoMetaClassGetPropertySite.java:48)
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241)
> at org.example.MyService.onApplicationEvent(MyService.groovy:52)
> at org.example.MyService.onApplicationEvent(MyService.groovy)
> at
> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:92)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.