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

Michael Dürig commented on OAK-1370:
------------------------------------

Ignored test case at http://svn.apache.org/r1562820. This test produces all 
sorts of errors like 

{code}
java.lang.NullPointerException
at 
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.base(MemoryNodeBuilder.java:176)
at 
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.base(MemoryNodeBuilder.java:176)
at 
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.<init>(MemoryNodeBuilder.java:128)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeBuilder.<init>(KernelNodeBuilder.java:40)
at 
org.apache.jackrabbit.oak.kernel.KernelNodeBuilder.createChildBuilder(KernelNodeBuilder.java:48)
at 
org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:311)
at 
org.apache.jackrabbit.oak.core.SecureNodeBuilder.<init>(SecureNodeBuilder.java:117)
at 
org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:334)
at org.apache.jackrabbit.oak.core.MutableTree.<init>(MutableTree.java:71)
at org.apache.jackrabbit.oak.core.MutableTree.createChild(MutableTree.java:81)
at org.apache.jackrabbit.oak.core.MutableTree.createChild(MutableTree.java:49)
at org.apache.jackrabbit.oak.core.AbstractTree$4.apply(AbstractTree.java:288)
at org.apache.jackrabbit.oak.core.AbstractTree$4.apply(AbstractTree.java:285)
at com.google.common.collect.Iterators$8.transform(Iterators.java:794)
at 
com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:646)
at 
com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at 
com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
at 
com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43)
at 
org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter.hasNext(RangeIteratorAdapter.java:132)
at 
org.apache.jackrabbit.commons.iterator.RangeIteratorDecorator.hasNext(RangeIteratorDecorator.java:82)
at 
org.apache.jackrabbit.oak.jcr.ConcurrentReadIT$1.call(ConcurrentReadIT.java:71)
at 
org.apache.jackrabbit.oak.jcr.ConcurrentReadIT$1.call(ConcurrentReadIT.java:65)
{code}

> Guard against concurrent read access through the same session
> -------------------------------------------------------------
>
>                 Key: OAK-1370
>                 URL: https://issues.apache.org/jira/browse/OAK-1370
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Michael Dürig
>             Fix For: 0.17
>
>
> OAK-687 synchronized {{SessionDelegate#perform}} to protect Oak internal data 
> structures from becoming corrupt in the case a session is accessed 
> concurrently from multiple threads. Turns out however, that there are more 
> cases we didn't consider so far: e.g. concurrently iterating over iterators 
> returned by {{Node.getNodes()}} is not captured by this mechanism. 



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to