jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Miroslav Smiljanic (Jira)" <j...@apache.org>
Subject [jira] [Closed] (OAK-9344) JcrLastModifiedConflictHandler prone to NPE
Date Thu, 03 Jun 2021 14:54:06 GMT

     [ https://issues.apache.org/jira/browse/OAK-9344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Miroslav Smiljanic closed OAK-9344.
-----------------------------------

> JcrLastModifiedConflictHandler prone to NPE
> -------------------------------------------
>
>                 Key: OAK-9344
>                 URL: https://issues.apache.org/jira/browse/OAK-9344
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>            Reporter: Angela Schreiber
>            Assignee: Angela Schreiber
>            Priority: Major
>             Fix For: 1.40.0
>
>         Attachments: OAK-9344-b.patch, OAK-9344.patch
>
>
> [~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)

Mime
View raw message