[
https://issues.jboss.org/browse/RF-12608?page=com.atlassian.jira.plugin.s...
]
Brian Leathem resolved RF-12608.
--------------------------------
Resolution: Done
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)
Components: component-selects
Affects Versions: 4.2.3.Final, 4.3.0.M2
Reporter: Ken H
Assignee: Brian Leathem
Labels: regression
Fix For: 4.3.0.CR1
Original Estimate: 3 hours
Remaining Estimate: 3 hours
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.
The stack trace for the exception is below:
{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