NPE in audit queries
obeah Feb 5, 2010 8:26 AMHello,
I get the following NPE whenever I try to query my audit entities with reader.find or reader.createQuery().forEntitiesAtRevision:
processRequests got exception while processing [java.lang.NullPointerException
at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:394)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3469)
at org.hibernate.envers.entities.mapper.relation.ToOneIdMapper.mapToEntityFromMap(ToOneIdMapper.java:90)
at org.hibernate.envers.entities.mapper.MultiPropertyMapper.mapToEntityFromMap(MultiPropertyMapper.java:118)
at org.hibernate.envers.entities.EntityInstantiator.createInstanceFromVersionsEntity(EntityInstantiator.java:93)
at org.hibernate.envers.entities.EntityInstantiator.addInstancesFromVersionsEntities(EntityInstantiator.java:103)
at org.hibernate.envers.query.impl.EntitiesAtRevisionQuery.list(EntitiesAtRevisionQuery.java:90)
at org.hibernate.envers.query.impl.AbstractAuditQuery.getSingleResult(AbstractAuditQuery.java:104)
at org.hibernate.envers.reader.AuditReaderImpl.find(AuditReaderImpl.java:104)
at com.loanworkbench.trust.ua.collection.ui.LegalActionsArchiveGrid$Adapter.getObjects(LegalActionsArchiveGrid.java:66)
at com.softgenic.basis.comp.ObjectGridTemplate.<init>(ObjectGridTemplate.java:35)
Envers tries to create proxy for the instances (not audited) that are referenced by audited entities but inside hibernate proxyFactory is null for this entity. Maybe it is caused by one of this:
- the entity has default-proxy set to false (as all other entities in my case and I cannot change it)
- this particular entity is immutable (mutable="false") and cached in the 2nd level cache (cache usage="read-only")
Could this be a problem in envers? Are there any workarounds?
Thank you.