NullPointerException in addValueToMiddleTable with @MapKeyJoinColumn
--------------------------------------------------------------------
Key: HHH-6802
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-6802
Project: Hibernate Core
Issue Type: Bug
Components: envers
Affects Versions: 3.6.8
Environment: Hibernate + Envers 3.6.8
Reporter: Marcin Kobylarz
The following mapping:
@Audited
@OneToMany(mappedBy = "formData", cascade = CascadeType.ALL, orphanRemoval =
true)
@MapKeyJoinColumn(name = "SPR_FORMULARZ_MODEL_POLE_ID", nullable = false)
private Map<FieldModel, FormFieldValue> values = new HashMap<FieldModel,
FormFieldValue();
causes the exception while bringing hibernate up:
Caused by: java.lang.NullPointerException
at
org.hibernate.envers.configuration.metadata.CollectionMetadataGenerator.addValueToMiddleTable(CollectionMetadataGenerator.java:458)
at
org.hibernate.envers.configuration.metadata.CollectionMetadataGenerator.addIndex(CollectionMetadataGenerator.java:398)
at
org.hibernate.envers.configuration.metadata.CollectionMetadataGenerator.addOneToManyAttached(CollectionMetadataGenerator.java:196)
at
org.hibernate.envers.configuration.metadata.CollectionMetadataGenerator.addCollection(CollectionMetadataGenerator.java:157)
at
org.hibernate.envers.configuration.metadata.AuditMetadataGenerator.addValue(AuditMetadataGenerator.java:204)
at
org.hibernate.envers.configuration.metadata.AuditMetadataGenerator.addProperties(AuditMetadataGenerator.java:223)
at
org.hibernate.envers.configuration.metadata.AuditMetadataGenerator.generateSecondPass(AuditMetadataGenerator.java:484)
at
org.hibernate.envers.configuration.EntitiesConfigurator.configure(EntitiesConfigurator.java:115)
at
org.hibernate.envers.configuration.AuditConfiguration.<init>(AuditConfiguration.java:97)
at
org.hibernate.envers.configuration.AuditConfiguration.getFor(AuditConfiguration.java:129)
at
org.hibernate.envers.event.AuditEventListener.initialize(AuditEventListener.java:337)
at org.hibernate.event.EventListeners$1.processListener(EventListeners.java:198)
at org.hibernate.event.EventListeners.processListeners(EventListeners.java:181)
at org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:194)
This is caused because queryGeneratorBuilder is null in the addValueToMiddleTable:458
method.
We suppose that method AuditedPropertiesReader:289:
private void addPropertyMapKey(XProperty property, PropertyAuditingData propertyData) {
MapKey mapKey = property.getAnnotation(MapKey.class);
if (mapKey != null) {
propertyData.setMapKey(mapKey.name());
}
}
needs improvement to accept also @MapKeyJoinColumn annotation not only @MapKey.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira