[richfaces-issues] [JBoss JIRA] (RF-12608) pickList without collectionType results in failure to lazily load

Brian Leathem (JIRA) jira-events at lists.jboss.org
Mon Jan 14 13:50:23 EST 2013


     [ https://issues.jboss.org/browse/RF-12608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

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


More information about the richfaces-issues mailing list