Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 436D673AA for ; Thu, 22 Sep 2011 15:40:51 +0000 (UTC) Received: (qmail 99661 invoked by uid 500); 22 Sep 2011 15:40:51 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 99620 invoked by uid 500); 22 Sep 2011 15:40:51 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 99608 invoked by uid 99); 22 Sep 2011 15:40:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Sep 2011 15:40:50 +0000 X-ASF-Spam-Status: No, hits=-2000.5 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Sep 2011 15:40:47 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 1DA0BA97DB for ; Thu, 22 Sep 2011 15:40:26 +0000 (UTC) Date: Thu, 22 Sep 2011 15:40:26 +0000 (UTC) From: "Julian Reschke (JIRA)" To: dev@jackrabbit.apache.org Message-ID: <669345707.2553.1316706026118.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1348241939.2471.1316704466717.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (JCR-3082) occasional index out of bounds exception while running UserManagerImplTest.testPrincipalNameEqualsUserID MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-3082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13112659#comment-13112659 ] Julian Reschke commented on JCR-3082: ------------------------------------- This seems to be caused by @Override public int nextDoc() throws IOException { while (currentDoc != NO_MORE_DOCS) { if (scorers[currentScorer].nextDoc() != NO_MORE_DOCS) { currentDoc = scorers[currentScorer].docID() + starts[currentScorer]; return currentDoc; } else if (++currentScorer < scorers.length) { // advance to next scorer } else { // no more scorers currentDoc = NO_MORE_DOCS; } } return currentDoc; } which allows currentScorer to go beyond scorers.length and @Override public float score() throws IOException { return scorers[currentScorer].score(); } which assumes it is in-range. Not sure whether the caller is supposed to call score() when the object is in this state. Changing it to @Override public int nextDoc() throws IOException { while (currentDoc != NO_MORE_DOCS) { if (scorers[currentScorer].nextDoc() != NO_MORE_DOCS) { currentDoc = scorers[currentScorer].docID() + starts[currentScorer]; return currentDoc; } else if (currentScorer + 1 < scorers.length) { // advance to next scorer currentScorer += 1; } else { // no more scorers currentDoc = NO_MORE_DOCS; } } return currentDoc; } fixes the runtime exception, but I'm not totally sure about the correctness. > occasional index out of bounds exception while running UserManagerImplTest.testPrincipalNameEqualsUserID > -------------------------------------------------------------------------------------------------------- > > Key: JCR-3082 > URL: https://issues.apache.org/jira/browse/JCR-3082 > Project: Jackrabbit Content Repository > Issue Type: Bug > Components: jackrabbit-core > Reporter: Julian Reschke > Assignee: Julian Reschke > > Stack trace: > java.lang.ArrayIndexOutOfBoundsException: 8 > at org.apache.jackrabbit.core.query.lucene.MultiScorer.score(MultiScorer.java:89) > at org.apache.lucene.search.ConjunctionScorer.score(ConjunctionScorer.java:133) > at org.apache.lucene.search.BooleanScorer2$2.score(BooleanScorer2.java:182) > at org.apache.lucene.search.BooleanScorer2.score(BooleanScorer2.java:303) > at org.apache.jackrabbit.core.query.lucene.LuceneQueryHits.nextScoreNode(LuceneQueryHits.java:68) > at org.apache.jackrabbit.core.query.lucene.QueryHitsAdapter.nextScoreNodes(QueryHitsAdapter.java:54) > at org.apache.jackrabbit.core.query.lucene.FilterMultiColumnQueryHits.nextScoreNodes(FilterMultiColumnQueryHits.java:63) > at org.apache.jackrabbit.core.query.lucene.QueryResultImpl.collectScoreNodes(QueryResultImpl.java:328) > at org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(QueryResultImpl.java:291) > at org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.(SingleColumnQueryResult.java:66) > at org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:134) > at org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:130) > at org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:1) > at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200) > at org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:126) > at org.apache.jackrabbit.core.security.user.IndexNodeResolver.findNodes(IndexNodeResolver.java:109) > at org.apache.jackrabbit.core.security.user.UserManagerImpl.findAuthorizables(UserManagerImpl.java:498) > at org.apache.jackrabbit.core.security.user.UserManagerImpl.findAuthorizables(UserManagerImpl.java:462) > at org.apache.jackrabbit.core.security.user.UserManagerImplTest.testFindAuthorizableByRelativePath(UserManagerImplTest.java:560) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at junit.framework.TestCase.runTest(TestCase.java:154) > at junit.framework.TestCase.runBare(TestCase.java:127) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at org.apache.jackrabbit.test.AbstractJCRTest.run(AbstractJCRTest.java:456) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) > at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira