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)

Reply via email to