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 "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2018/05/31 14:38:00 UTC
[jira] [Updated] (OAK-6294) The "missing" node cache value breaks
the DocumentNodeStore#applyChanges
[ https://issues.apache.org/jira/browse/OAK-6294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marcel Reutegger updated OAK-6294:
----------------------------------
Labels: candidate_oak_1_4 (was: candidate_oak_1_4 candidate_oak_1_6)
Fix Version/s: 1.6.13
Merged into 1.6 branch: http://svn.apache.org/r1832622
> The "missing" node cache value breaks the DocumentNodeStore#applyChanges
> ------------------------------------------------------------------------
>
> Key: OAK-6294
> URL: https://issues.apache.org/jira/browse/OAK-6294
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: documentmk
> Affects Versions: 1.4.10
> Reporter: Tomek Rękawek
> Assignee: Tomek Rękawek
> Priority: Major
> Labels: candidate_oak_1_4
> Fix For: 1.7.2, 1.8.0, 1.6.13
>
> Attachments: OAK-6294-2.patch, OAK-6294-3.patch, OAK-6294.patch
>
>
> In the {{DocumentNodeStore#nodeCache}}, the special object {{missing}} is being used to mark the node entries that don't exists in the repository.
> This object should be unwrapped to {{null}} every time we call {{nodeCache#getIfPresent()}} method. It's not the case in the {{applyChanges()}} method - as a result, we may get a NPE (since the {{missing.getLastRev() == null}}):
> {noformat}
> Caused by: java.lang.NullPointerException: null
> at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:192)
> at org.apache.jackrabbit.oak.plugins.document.PathRev.<init>(PathRev.java:40)
> at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.applyChanges(DocumentNodeStore.java:1171)
> at org.apache.jackrabbit.oak.plugins.document.Commit.applyToCache(Commit.java:667)
> at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$3.headOfQueue(DocumentNodeStore.java:674)
> at org.apache.jackrabbit.oak.plugins.document.CommitQueue.waitUntilHeadOfQueue(CommitQueue.java:240)
> at org.apache.jackrabbit.oak.plugins.document.CommitQueue.done(CommitQueue.java:92)
> at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.done(DocumentNodeStore.java:668)
> {noformat}
> (taken from the production instance running the Oak 1.4.10).
> //cc: [~chetanm], [~mreutegg], [~catholicon]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)