Details
Description
ValueProcessor.valueFrom(javax.jcr.Property, DefinitionNodeImpl) wrongly converts properties of (jcr) type NAME, URI and PATH to ValueType.STRING.
This causes (eventually) a NPE in the ConfigurationTreeBuilder.requireOverrideOperationForPrimaryType() method during AutoExport when changing a node its primary type (and resulting AutoExport to start looping on this NPE...):
[INFO] [talledLocalContainer] java.lang.NullPointerException: null
[INFO] [talledLocalContainer] at org.onehippo.cm.model.impl.tree.ConfigurationTreeBuilder.requireOverrideOperationForPrimaryType(ConfigurationTreeBuilder.java:640) ~[hippo-configuration-management-model-1.0.2-SNAPSHOT.jar:1.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.model.impl.tree.ConfigurationTreeBuilder.mergeProperty(ConfigurationTreeBuilder.java:541) ~[hippo-configuration-management-model-1.0.2-SNAPSHOT.jar:1.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.model.impl.tree.ConfigurationTreeBuilder.mergeNode(ConfigurationTreeBuilder.java:253) ~[hippo-configuration-management-model-1.0.2-SNAPSHOT.jar:1.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.model.impl.tree.ConfigurationTreeBuilder.push(ConfigurationTreeBuilder.java:136) ~[hippo-configuration-management-model-1.0.2-SNAPSHOT.jar:1.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.DefinitionMergeService.addLocalProperty(DefinitionMergeService.java:1653) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.DefinitionMergeService.mergePropertyThatShouldExist(DefinitionMergeService.java:1559) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.DefinitionMergeService.mergeProperty(DefinitionMergeService.java:1476) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.DefinitionMergeService.mergeConfigDefinitionNode(DefinitionMergeService.java:712) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.DefinitionMergeService.mergeChangesToModules(DefinitionMergeService.java:258) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.EventJournalProcessor.exportChangesModule(EventJournalProcessor.java:589) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
[INFO] [talledLocalContainer] at org.onehippo.cm.engine.autoexport.EventJournalProcessor.processEvents(EventJournalProcessor.java:366) ~[hippo-repository-engine-5.0.2-SNAPSHOT.jar:5.0.2-SNAPSHOT]
Further investigation showed we also incorrectly export the mixins property with type STRING (in JcrContentExporter and AutoExportConfigExporter).