Sorted out my lucene version issues, so not getting that exception any more, but still not getting any query results. Still seeing multiple of these in the logs;
23:55:14,288 TRACE lucene.IndexDefinition.collectIndexRules() - line 519 [0:0:0:0:0:0:0:1] - Found rule 'IndexRule: ka:asset' for NodeType 'ka:asset' 23:55:14,288 TRACE lucene.IndexDefinition.collectIndexRules() - line 535 [0:0:0:0:0:0:0:1] - Registering rule 'IndexRule: ka:asset' for name 'ka:asset' On 25 February 2015 at 16:49, Torgeir Veimo <torgeir.ve...@gmail.com> wrote: > I tried without the async: async property on the lucene index, on an > empty repository, and am seeing an exception. > > Any idea on how I can try to find the cause of this? > > I assume if I tried to run with the lucene index on disk instead of in > the segment store, I might avoid this, but the documentation doesn't > really outline how to do this in much detail. > > 16:44:09,437 INFO index.IndexUpdate.enter() - line 110 [] - > Reindexing will be performed for following indexes: > [/oak:index/ka:owner, /oak:index/positionref, /oak:index/targetId, > /oak:index/uuid, /oak:index/ka:id, /oak:index/mail, > /oak:index/ka:tags, /oak:index/active, /oak:index/ka:applicationState, > /oak:index/parentTargetId, /oak:index/reference, /oak:index/ka:uid, > /oak:index/ka:rememberme, /oak:index/ka:state, /oak:index/ka:serial, > /oak:index/ka:assetType, /oak:index/lucene, /oak:index/ka:series, > /oak:index/ka:principal, /oak:index/affiliation, /oak:index/ka:expire, > /oak:index/companyref, /oak:index/title, /oak:index/lastCommentDate, > /oak:index/ka:subscriptionFrequency, /oak:index/nodetype] > 16:44:09,547 WARN support.AbstractApplicationContext.refresh() - line > 486 [] - Exception encountered during context initialization - > cancelling refresh attempt > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'assetOwnerPermission': Injection of autowired > dependencies failed; nested exception is > org.springframework.beans.factory.BeanCreationException: Could not > autowire field: no.karriere.content.dao.AssetRepository > no.karriere.content.authorization.permissions.AbstractPermission.assetRepository; > nested exception is > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'assetRepository': Injection of autowired > dependencies failed; nested exception is > org.springframework.beans.factory.BeanCreationException: Could not > autowire field: no.karriere.content.dao.jcr.MediaHelper > no.karriere.content.dao.jcr.JcrAssetRepository.mediaHelper; nested > exception is org.springframework.beans.factory.BeanCreationException: > Error creating bean with name 'mediaHelper': Injection of autowired > dependencies failed; nested exception is > org.springframework.beans.factory.BeanCreationException: Could not > autowire field: > no.karriere.content.services.repository.RepositoryService > no.karriere.content.dao.jcr.MediaHelper.repositoryService; nested > exception is org.springframework.beans.factory.BeanCreationException: > Error creating bean with name 'repositoryService': Injection of > autowired dependencies failed; nested exception is > org.springframework.beans.factory.BeanCreationException: Could not > autowire field: javax.jcr.Repository > no.karriere.content.services.repository.RepositoryService.oakRepository; > nested exception is > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'getRepository' defined in class path resource > [no/karriere/content/dao/jcr/repository/RepositoryConfiguration.class]: > Instantiation of bean failed; nested exception is > org.springframework.beans.factory.BeanDefinitionStoreException: > Factory method [public javax.jcr.Repository > no.karriere.content.dao.jcr.repository.RepositoryConfiguration.getRepository() > throws no.karriere.content.exception.ContentException] threw > exception; nested exception is java.lang.AbstractMethodError: > org.apache.lucene.store.IndexOutput.getChecksum()J > at > org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:298) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1148) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) > > [.... lots of nested spring stuff] > > Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: > Factory method [public javax.jcr.Repository > no.karriere.content.dao.jcr.repository.RepositoryConfiguration.getRepository() > throws no.karriere.content.exception.ContentException] threw > exception; nested exception is java.lang.AbstractMethodError: > org.apache.lucene.store.IndexOutput.getChecksum()J > at > org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:181) > at > org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:592) > > ... 79 more > > > Caused by: java.lang.AbstractMethodError: > org.apache.lucene.store.IndexOutput.getChecksum()J > at org.apache.lucene.codecs.CodecUtil.writeFooter(CodecUtil.java:186) > at org.apache.lucene.index.SegmentInfos.finishCommit(SegmentInfos.java:1054) > at org.apache.lucene.index.IndexWriter.finishCommit(IndexWriter.java:3130) > at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3111) > at org.apache.lucene.index.IndexWriter.shutdown(IndexWriter.java:913) > at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:984) > at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:954) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.closeWriter(LuceneIndexEditorContext.java:151) > at > org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.leave(LuceneIndexEditor.java:191) > at > org.apache.jackrabbit.oak.spi.commit.CompositeEditor.leave(CompositeEditor.java:74) > at > org.apache.jackrabbit.oak.spi.commit.VisibleEditor.leave(VisibleEditor.java:63) > at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:56) > at > org.apache.jackrabbit.oak.plugins.index.IndexUpdate.enter(IndexUpdate.java:116) > at > org.apache.jackrabbit.oak.spi.commit.VisibleEditor.enter(VisibleEditor.java:57) > at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:49) > at > org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:54) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.prepare(SegmentNodeStore.java:397) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.optimisticMerge(SegmentNodeStore.java:428) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.execute(SegmentNodeStore.java:484) > at > org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.merge(SegmentNodeStore.java:162) > at > org.apache.jackrabbit.oak.spi.lifecycle.OakInitializer.initialize(OakInitializer.java:45) > at org.apache.jackrabbit.oak.Oak.createContentRepository(Oak.java:518) > at org.apache.jackrabbit.oak.jcr.Jcr.createRepository(Jcr.java:202) > at > no.karriere.content.dao.jcr.repository.RepositoryConfiguration.getRepository(RepositoryConfiguration.java:93) > > > > > On 25 February 2015 at 16:41, Torgeir Veimo <torgeir.ve...@gmail.com> wrote: >> Thank you for your reply! >> >> Setting the :childOrder helps reduce the warning logs. I am still >> getting these log entries a lot; >> >> 16:38:00,016 TRACE lucene.IndexDefinition.collectIndexRules() - line >> 519 [] - Found rule 'IndexRule: ka:asset' for NodeType 'ka:asset' >> 16:38:00,016 TRACE lucene.IndexDefinition.collectIndexRules() - line >> 535 [] - Registering rule 'IndexRule: ka:asset' for name 'ka:asset' >> >> I am unsure why these keeps getting repeated, could it be that the >> index configuration fails, and retries the next time I make a query? >> >> I am now using this code to configure; >> >> NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder); >> index.child("lucene") >> .setProperty("jcr:primaryType", "oak:QueryIndexDefinition", Type.NAME) >> .setProperty("compatVersion", "2") >> .setProperty("type", "lucene") >> .setProperty("async", "async") >> .setProperty("reindex", true) >> .child("indexRules") >> .setProperty(":childOrder", ImmutableSet.of("ka:asset"), Type.STRINGS) >> .child("ka:asset") >> .setProperty("jcr:primaryType", "nt:unstructured", Type.NAME) >> .child("properties") >> .setProperty("jcr:primaryType", "nt:unstructured", Type.NAME) >> .setProperty(":childOrder", >> ImmutableSet.of("allProps"), Type.STRINGS) >> .child("allProps") >> .setProperty("jcr:primaryType", "nt:unstructured", >> Type.NAME) >> .setProperty("name", ".*") >> .setProperty("isRegExp", true) >> .setProperty("nodeScopeIndex", true); >> >> select * from [ka:asset] where lower(*) like '%admin%' >> >> yields two entries >> >> select * from [ka:asset] where contains(*,'admin') >> >> yields none. >> >> I am wondering if the setup of the repository is correct? I assume >> that with the default LuceneIndexProvider() constructor, it will use >> lucene indexes stored as segments in the segment store? >> >> >> On 25 February 2015 at 10:46, Chetan Mehrotra <chetan.mehro...@gmail.com> >> wrote: >>> Hi Torgeir, >>> >>> By default the Lucene index would be updated every 5 sec. So are you >>> performing query immediately after adding the content? If thats the >>> case you can remove setting "async" property at least for your >>> testcase to get Lucene index triggered immediately after commit >>> >>>> 21:58:51,075 WARN lucene.IndexDefinition.collectIndexRules() - line >>> 505 [0:0:0:0:0:0:0:1] - IndexRule node does not have orderable >>> children in [Lucene Index : genericlucene(/oak:index/lucene)] >>> 21:58:51,076 WARN >>> >>> You can create the index definition via JCR API. Basically the >>> orderable children are detected via presence of ':childOrder' hidden >>> property. When you set a nodetype to nt:unstructured then oak-jcr >>> would set this property automatically to record the ordering. However >>> if you do it via NodeStore API then that has to be done manually. >>> >>> Chetan Mehrotra >> >> >> >> -- >> -Tor > > > > -- > -Tor -- -Tor