[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-5801) ColumnNameCache.columnNameToIndexCache map should be synchronized

Fabian Lange (JIRA) noreply at atlassian.com
Thu Sep 15 07:54:52 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-5801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43535#comment-43535 ] 

Fabian Lange commented on HHH-5801:
-----------------------------------

Just saw the very same happen at a customer (but I do not know the used version)

For 4.0 I am going to provide a patch via GIT, please consider backporting

> ColumnNameCache.columnNameToIndexCache map should be synchronized
> -----------------------------------------------------------------
>
>                 Key: HHH-5801
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-5801
>             Project: Hibernate Core
>          Issue Type: Bug
>    Affects Versions: 3.2.7
>         Environment: AIX, IMB J9 jvm
>            Reporter: Ivan Popov
>
> When I activate the result set wapper, hibernate.jdbc.wrap_result_sets=true, I can have a stacktrace such as :
> ####<Dec 15, 2010 8:44:27 PM CET> <Error> <WebLogicServer> <efa-bench> <decalog_server> <[ACTIVE] ExecuteThread: '29' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1292442267345> <BEA-000337> <[STUCK] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy
> for "602" seconds working on the request "weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl at 73907390", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
> java.util.HashMap.findNonNullKeyEntry(HashMap.java:526)
> java.util.HashMap.getEntry(HashMap.java:510)
> java.util.HashMap.get(HashMap.java:496)
> org.hibernate.jdbc.ColumnNameCache.getIndexForColumnName(ColumnNameCache.java:52)
> org.hibernate.jdbc.ResultSetWrapper.findColumn(ResultSetWrapper.java:84)
> org.hibernate.jdbc.ResultSetWrapper.getString(ResultSetWrapper.java:248)
> org.hibernate.type.StringType.get(StringType.java:18)
> org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
> org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
> org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
> org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2091)
> org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
> org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
> org.hibernate.loader.Loader.getRow(Loader.java:1206)
> org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
> org.hibernate.loader.Loader.doQuery(Loader.java:701)
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
> org.hibernate.loader.Loader.loadCollection(Loader.java:1998)
> org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
> org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
> org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:63)
> org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1717)
> org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
> org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
> org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:109)
> org.hibernate.collection.PersistentSet.size(PersistentSet.java:139)
> I think that columnNameToIndexCache map should be synchronized.
> I got the exception with 3.2.7 but I had a look at the latest version and the bug is still there.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list