jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tomek Rękawek (JIRA) <j...@apache.org>
Subject [jira] [Commented] (OAK-6486) NPE in CompositeNodeStore
Date Wed, 26 Jul 2017 06:11:00 GMT

    [ https://issues.apache.org/jira/browse/OAK-6486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16101218#comment-16101218
] 

Tomek Rękawek commented on OAK-6486:
------------------------------------

It seems that the NPE is caused by the CopyOnReadIdentityMap, which isn't thread safe and
sometimes returns null even if the value is in the original map. It was introduced to provide
a lazy and cacheable way to read children from the composite node states. Maybe we shouldn't
hide this laziness behind a map in the CompositeNodeState/Builder and make the {{nodeStates}}
field a function, which can be memoized if needed.

> NPE in CompositeNodeStore
> -------------------------
>
>                 Key: OAK-6486
>                 URL: https://issues.apache.org/jira/browse/OAK-6486
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: composite
>    Affects Versions: 1.7.4
>            Reporter: Tomek Rękawek
>            Assignee: Tomek Rękawek
>             Fix For: 1.8
>
>
> Following NPE can be found in logs when running the Composite Node Store:
> {noformat}
> 24.07.2017 20:53:47.297 *ERROR* [oak-lucene-0] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider
Uncaught exception in org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider@6580fe4c
> java.lang.NullPointerException: null
>         at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:471)
>         at org.apache.jackrabbit.oak.composite.CompositeNodeState.compareAgainstBaseState(CompositeNodeState.java:187)
>         at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:52)
>         at org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.diffAndUpdate(IndexTracker.java:142)
>         at org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.update(IndexTracker.java:113)
>         at org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProvider.contentChanged(LuceneIndexProvider.java:75)
>         at org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:128)
>         at org.apache.jackrabbit.oak.spi.commit.BackgroundObserver$1$1.call(BackgroundObserver.java:122)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748)
> {noformat}
> Probably it's related to changes introduced in OAK-6425.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message