[
https://issues.jboss.org/browse/RF-12608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ken H updated RF-12608:
-----------------------
Description:
Changes to the selectManyHelper class in 4.2.3+ causes a lazy loading exception
in hibernate when the backing collection is persistent and is not eagerly
loaded.
The problem seems to be that fetching the collection in
SelectManyHelper.getConvertedValue bypasses the PersistentSet getter that would
normally issue the lazy load request.
Defining the collectionType (e.g. java.util.ArrayList) bypasses this issue.
Ideally this method would detect Hibernate proxy collections and handle them
appropriately. However, I realize that may cause a dependency so perhaps it
would be enough to document this option and situation in the component
reference.
{code}
[org.richfaces.log.Context] (http-localhost-127.0.0.1-8080-1) failed to lazily
initialize a collection, no session or session was closed:
org.hibernate.LazyInitializationException: failed to lazily initialize a
collection, no session or session was closed
at
org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:393)
[hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at
org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:385)
[hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at
org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:378)
[hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at
org.hibernate.collection.internal.AbstractPersistentCollection.write(AbstractPersistentCollection.java:208)
[hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at
org.hibernate.collection.internal.PersistentBag.add(PersistentBag.java:291)
[hibernate-core-4.0.1.Final.jar:4.0.1.Final]
at
org.richfaces.renderkit.SelectManyHelper.getConvertedValue(SelectManyHelper.java:350)
[richfaces-components-ui-4.2.3.Final.jar:4.2.3.Final]
at
org.richfaces.renderkit.SelectManyRendererBase.getConvertedValue(SelectManyRendererBase.java:108)
[richfaces-components-ui-4.2.3.Final.jar:4.2.3.Final]
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.validate(UIInput.java:960)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at
org.richfaces.context.PartialViewExecuteVisitCallback.visit(PartialViewExecuteVisitCallback.java:55)
[richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
at
org.richfaces.context.BaseExtendedVisitContext.invokeVisitCallback(BaseExtendedVisitContext.java:321)
[richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1612)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at
org.richfaces.context.ExtendedPartialViewContextImpl.executeComponents(ExtendedPartialViewContextImpl.java:237)
[richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
at
org.richfaces.context.ExtendedPartialViewContextImpl.processPartialExecutePhase(ExtendedPartialViewContextImpl.java:217)
[richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
at
org.richfaces.context.ExtendedPartialViewContextImpl.processPartial(ExtendedPartialViewContextImpl.java:196)
[richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
at
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1170)
[jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
at
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
[jsf-impl-2.1.7-jbossorg-2.jar:]
{code}
was:
Changes to the selectManyHelper class in 4.2.3+ causes a lazy loading exception
in hibernate when the backing collection is persistent and is not eagerly
loaded.
The problem seems to be that fetching the collection in
SelectManyHelper.getConvertedValue bypasses the PersistentSet getter that would
normally issue the lazy load request.
Defining the collectionType (e.g. java.util.ArrayList) bypasses this issue.
Ideally this method would detect Hibernate proxy collections and handle them
appropriately. However, I realize that may cause a dependency so perhaps it
would be enough to document this option and situation in the component
reference.
> pickList without collectionType results in failure to lazily load
> -----------------------------------------------------------------
>
> Key: RF-12608
> URL: https://issues.jboss.org/browse/RF-12608
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 4.2.3.Final, 4.3.0.M2
> Reporter: Ken H
> Assignee: Juraj Húska
> Labels: regression, waiting_on_user
>
> Changes to the selectManyHelper class in 4.2.3+ causes a lazy loading
> exception in hibernate when the backing collection is persistent and is not
> eagerly loaded.
> The problem seems to be that fetching the collection in
> SelectManyHelper.getConvertedValue bypasses the PersistentSet getter that
> would normally issue the lazy load request.
> Defining the collectionType (e.g. java.util.ArrayList) bypasses this issue.
> Ideally this method would detect Hibernate proxy collections and handle them
> appropriately. However, I realize that may cause a dependency so perhaps it
> would be enough to document this option and situation in the component
> reference.
> {code}
> [org.richfaces.log.Context] (http-localhost-127.0.0.1-8080-1) failed to
> lazily initialize a collection, no session or session was closed:
> org.hibernate.LazyInitializationException: failed to lazily initialize a
> collection, no session or session was closed
> at
> org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:393)
> [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
> at
> org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:385)
> [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
> at
> org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:378)
> [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
> at
> org.hibernate.collection.internal.AbstractPersistentCollection.write(AbstractPersistentCollection.java:208)
> [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
> at
> org.hibernate.collection.internal.PersistentBag.add(PersistentBag.java:291)
> [hibernate-core-4.0.1.Final.jar:4.0.1.Final]
> at
> org.richfaces.renderkit.SelectManyHelper.getConvertedValue(SelectManyHelper.java:350)
> [richfaces-components-ui-4.2.3.Final.jar:4.2.3.Final]
> at
> org.richfaces.renderkit.SelectManyRendererBase.getConvertedValue(SelectManyRendererBase.java:108)
> [richfaces-components-ui-4.2.3.Final.jar:4.2.3.Final]
> at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIInput.validate(UIInput.java:960)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIInput.processValidators(UIInput.java:698)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIForm.processValidators(UIForm.java:253)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at
> org.richfaces.context.PartialViewExecuteVisitCallback.visit(PartialViewExecuteVisitCallback.java:55)
> [richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
> at
> org.richfaces.context.BaseExtendedVisitContext.invokeVisitCallback(BaseExtendedVisitContext.java:321)
> [richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1612)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIForm.visitTree(UIForm.java:371)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at
> org.richfaces.context.ExtendedPartialViewContextImpl.executeComponents(ExtendedPartialViewContextImpl.java:237)
> [richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
> at
> org.richfaces.context.ExtendedPartialViewContextImpl.processPartialExecutePhase(ExtendedPartialViewContextImpl.java:217)
> [richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
> at
> org.richfaces.context.ExtendedPartialViewContextImpl.processPartial(ExtendedPartialViewContextImpl.java:196)
> [richfaces-core-impl-4.2.3.Final.jar:4.2.3.Final]
> at
> javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1170)
> [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
> at
> com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
> [jsf-impl-2.1.7-jbossorg-2.jar:]
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues