[ https://issues.apache.org/jira/browse/JCR-931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12497455 ]
Dominique Pfister commented on JCR-931: --------------------------------------- While testing the clustering functionality, I encountered this exception on rare occasions. From the contents of the journal log , I deduced the following scenario: Cluster-Node1 (CN1): (1) adds child node C to N performs some other operations, (2) deletes child node C, Cluster-Node2 (CN2): ----> CN1 executes (1) - receives the notification about the addition of node C - invokes all registered event handlers - SearchManager.onEvent invokes updateNodes of its query handler (cf stack trace above) - SearchIndex.updateNodes retrieves the node state, CN1 did not yet execute (2) - SearchIndex.createDocument invokes NodeIndexer.createDoc ----> CN1 executes (2) - NodeIndexer.createDoc tries to retrieve the node state's child node entry in its parent: this returns null, since the node does no longer exists and the very next line, trying to retrieve the child's node name, throws. > cluster synchronization NPE > --------------------------- > > Key: JCR-931 > URL: https://issues.apache.org/jira/browse/JCR-931 > Project: Jackrabbit > Issue Type: Bug > Affects Versions: 1.3 > Reporter: Xiaohua Lu > > we have a 4 machines setup and encountered the following NPE in one of the > nodes. After restarting tomcat, the problem seems to go away. But it would be > nice to find out why. > java.lang.NullPointerException > at > org.apache.jackrabbit.core.query.lucene.NodeIndexer.createDoc(NodeInd > exer.java:146) > at > org.apache.jackrabbit.core.query.lucene.SearchIndex.createDocument(Se > archIndex.java:566) > at > org.apache.jackrabbit.core.query.lucene.SearchIndex$2.next(SearchInde > x.java:368) > at > org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex. > java:354) > at > org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(Searc > hIndex.java:356) > at > org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:4 > 23) > at > org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(Ev > entConsumer.java:231) > at > org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatch > Events(ObservationDispatcher.java:201) > at > org.apache.jackrabbit.core.observation.EventStateCollection.dispatch( > EventStateCollection.java:424) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.externalUpdat > e(SharedItemStateManager.java:882) > at > org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.externalUpdat > e(RepositoryImpl.java:1957) > at > org.apache.jackrabbit.core.cluster.ClusterNode.end(ClusterNode.java:8 > 34) > at > org.apache.jackrabbit.core.cluster.ClusterNode.consume(ClusterNode.ja > va:929) > at > org.apache.jackrabbit.core.journal.AbstractJournal.doSync(AbstractJou > rnal.java:191) > at > org.apache.jackrabbit.core.journal.AbstractJournal.sync(AbstractJourn > al.java:166) > at > org.apache.jackrabbit.core.cluster.ClusterNode.sync(ClusterNode.java: > 283) > at > org.apache.jackrabbit.core.cluster.ClusterNode.start(ClusterNode.java > :229) > at > org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java: > 308) > at > org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java: > 584) > at > org.apache.jackrabbit.core.jndi.BindableRepository.createRepository(B > indableRepository.java:174) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.