[ https://issues.apache.org/jira/browse/OAK-28?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13445740#comment-13445740 ]
Chetan Mehrotra commented on OAK-28: ------------------------------------ Another change required in Indexer. The flushBuffer method is currently hiding the exception thrown {code} } catch (MicroKernelException e) { if (!mk.nodeExists(indexRootNode, revision)) { // the index node itself was removed, which is // unexpected but possible // this will cause all indexes to be removed, so // it can be ignored here + }else{ + throw e; } } {code} With a bit older codebase with IndexWrapper in use I saw some exceptions on restart like {noformat} org.apache.jackrabbit.mk.api.MicroKernelException: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY_KEY_2 ON PUBLIC.REVS(ID)"; SQL statement: insert into REVS (ID, DATA, TIME) select ?, ?, ? [23505-158] at org.apache.jackrabbit.mk.core.MicroKernelImpl.commit(MicroKernelImpl.java:502) at org.apache.jackrabbit.oak.plugins.index.Indexer.commitChanges(Indexer.java:344) at org.apache.jackrabbit.oak.plugins.index.Indexer.flushBuffer(Indexer.java:412) at org.apache.jackrabbit.oak.plugins.index.Indexer.updateEnd(Indexer.java:406) at org.apache.jackrabbit.mk.index.IndexWrapper.commitStream(IndexWrapper.java:122) at org.apache.jackrabbit.mk.wrapper.MicroKernelWrapperBase.commit(MicroKernelWrapperBase.java:33) at org.apache.jackrabbit.oak.core.ContentRepositoryImpl.<init>(ContentRepositoryImpl.java:122) {noformat} Would try with updated codebase and open an issue if problem persists > Query implementation > -------------------- > > Key: OAK-28 > URL: https://issues.apache.org/jira/browse/OAK-28 > Project: Jackrabbit Oak > Issue Type: New Feature > Components: core, jcr > Reporter: Thomas Mueller > Assignee: Thomas Mueller > Labels: query > Attachments: OakToJcrQueryTreeConverter.java > > > A query engine needs to be implemented. > A query parser in oak-core should be able to handle xpath, sql2 and > optionally other query languages. The jcr component must generate a valid > query in one of those languages from JQOM queries and pass that statement > along with value bindings, limit, offset, and name space mappings to the > oak-core. > We need to: > * Define the oak-core API for handling queries. How are do we handle name > space mappings, limit and offset > * Implement a query builder in the jcr component which takes care of > translating JQOM queries to statements in string form > * Implement a query parser in oak-core and decide on a versatile AST > representation which works with all query languages and which is extensible > to future query languages. > * Implement the actual query execution engine which interprets the query AST -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira