Envers, JBoss AS 7, and "Session is closed!" error
mcasperson Jul 21, 2011 1:10 AMI have migrated a Seam application from AS 6 onto AS 7 CR1, and everything is working fine except for reading old versions of an audited entity. The code below used to work under AS 6, but now results in a org.hibernate.SessionException: Session is closed! error
final AuditReader reader = AuditReaderFactory.get(this.getEntityManager());
revisionInstance = reader.find(getEntityClass(), this.getId(), this.revision);
revisionInstance.getSomeCollection();
Does anyone have any idea why sessions might be treated differently in AS7?
The full stack trace is:
Caused by: org.hibernate.SessionException: Session is closed!
at org.hibernate.internal.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:126)
at org.hibernate.internal.SessionImpl.getPersistenceContext(SessionImpl.java:1790)
at org.hibernate.envers.entities.mapper.relation.lazy.AbstractDelegateSessionImplementor.getPersistenceContext(AbstractDelegateSessionImplementor.java:223)
at org.hibernate.proxy.AbstractLazyInitializer.setSession(AbstractLazyInitializer.java:120)
at org.hibernate.proxy.AbstractLazyInitializer.<init>(AbstractLazyInitializer.java:74)
at org.hibernate.proxy.pojo.BasicLazyInitializer.<init>(BasicLazyInitializer.java:60)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.<init>(JavassistLazyInitializer.java:71)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:123)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:69)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:644)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3768)
at org.hibernate.envers.entities.mapper.relation.ToOneIdMapper.mapToEntityFromMap(ToOneIdMapper.java:95)
at org.hibernate.envers.entities.mapper.MultiPropertyMapper.mapToEntityFromMap(MultiPropertyMapper.java:114)
at org.hibernate.envers.entities.EntityInstantiator.createInstanceFromVersionsEntity(EntityInstantiator.java:98)
at org.hibernate.envers.entities.mapper.relation.component.MiddleRelatedComponentMapper.mapToObjectFromFullMap(MiddleRelatedComponentMapper.java:42)
at org.hibernate.envers.entities.mapper.relation.lazy.initializor.BasicCollectionInitializor.addToCollection(BasicCollectionInitializor.java:79)
at org.hibernate.envers.entities.mapper.relation.lazy.initializor.BasicCollectionInitializor.addToCollection(BasicCollectionInitializor.java:40)
at org.hibernate.envers.entities.mapper.relation.lazy.initializor.AbstractCollectionInitializor.initialize(AbstractCollectionInitializor.java:65)
at org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy.checkInit(CollectionProxy.java:48)
at org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy.iterator(CollectionProxy.java:68)
at com.redhat.topicindex.entity.Topic.getTagsList(Topic.java:243)
at com.redhat.topicindex.entity.Topic.getTagsList(Topic.java:225)
at sun.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
at org.jboss.el.parser.AstChoice.getValue(AstChoice.java:29)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)