angela created OAK-8212:
---------------------------
Summary: ImporterImpl.importProperties prone to NPE
Key: OAK-8212
URL: https://issues.apache.org/jira/browse/OAK-8212
Project: Jackrabbit Oak
Issue Type: Bug
Components: jcr
Reporter: angela
the {{ImportImpl}} code at line 275 is prone to NPE because
{{EffectiveNodeType.getPropertyDefinition(String, int, boolean) may return
{{null}} (in contrast to the second variant that throws
{{ConstraintViolationException}} if no matching definition is found.
the code looks as follows:
{code}
EffectiveNodeType ent = effectiveNodeTypeProvider.getEffectiveNodeType(tree);
PropertyDefinition def = ent.getPropertyDefinition(pi.getName(), pi.getType(),
pi.isUnknownMultiple());
if (def.isProtected()) {
...
}
{code}
proposed fix (adding a check for null):
EffectiveNodeType ent = effectiveNodeTypeProvider.getEffectiveNodeType(tree);
PropertyDefinition def = ent.getPropertyDefinition(pi.getName(), pi.getType(),
pi.isUnknownMultiple());
if (def == null) {
throw new ConstraintViolationException("No matching property definition
found for " + pi.getName());
}
if (def.isProtected()) {
...
}
{code}
i spotted the issue while writing an import test for OAK-8190 with property
type mismatch.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)