You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Angela Schreiber (Jira)" <ji...@apache.org> on 2021/02/04 09:11:00 UTC

[jira] [Created] (OAK-9344) JcrLastModifiedConflictHandler prone to NPE

Angela Schreiber created OAK-9344:
-------------------------------------

             Summary: JcrLastModifiedConflictHandler prone to NPE
                 Key: OAK-9344
                 URL: https://issues.apache.org/jira/browse/OAK-9344
             Project: Jackrabbit Oak
          Issue Type: Bug
            Reporter: Angela Schreiber


[~mreutegg], while working on OAK-9343 i noticed that {{JcrLastModifiedConflictHandler}} is prone to NPE as {{ISO8601.parse}} may return null. the return values however are passed to the 'pick' method which doesn't handle a potential null value... a similar problem was spotted with {{ExternalIdentityConflictHandler}} (see  also OAK-8700).

{code}
private static void merge(@NotNull NodeBuilder parent, @NotNull PropertyState ours, @NotNull PropertyState theirs) {
        Calendar o = parse(ours.getValue(Type.DATE));
        Calendar t = parse(theirs.getValue(Type.DATE));
        if (JCR_CREATED.equals(ours.getName())) {
            parent.setProperty(ours.getName(), pick(o, t, true));
        } else {
            parent.setProperty(ours.getName(), pick(o, t, false));
        }
    }

    private static Calendar pick(Calendar a, Calendar b, boolean jcrCreated) {
        if (a.before(b)) {
            return jcrCreated ? a : b;
        } else {
            return jcrCreated ? b : a;
        }
    }
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)