Hi Harry, that Lucene80 constant is suspicious, as it means you're somehow relying on the Lucene 8.0 codec to do the indexing, and the end of the stacktrace is telling that you only have available Lucene 8.4(.1), which is what JSPWiki bundles. IIRC, on previous versions of Lucene you had to supply this constant on your code, but it is not necessary anymore, and also IIRC, JSPWiki doesn't specify it anymore.
I'm finishing a big push so cannot test right now other than unit testing, but would you mind seeing if there are Lucene/JSPWiki old classes on tomcat's work dir / try triggering a full Lucene reindex to see if that is enough to solve the issue? If it doesn't, please allow me a couple of days (tops) to see if I can reproduce it? Agree to add the dependency if it's needed. best regards, juan pablo On Sun, Feb 23, 2020 at 2:57 PM Harry Metske <harry.met...@gmail.com> wrote: > Hi, > > I noticed that my jspwiki search is broken, see below stacktrace. > Adding lucene-backward-codecs.jar to the pom.xml, rebuilding and > redeploying fixes the problem. > > I think it was broken a few versions earlier already, should we add that > dependency? > > cheers, > Harry > > > 2020-02-23 14:49:33,077 INFO search.SearchManager - AJAX search failed; > java.lang.IllegalArgumentException: Could not load codec 'Lucene80'. Did > you forget to add lucene-backward-codecs.jar? > at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:420) > at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:352) > at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:289) > at > > org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:64) > at > > org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:61) > at > > org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:680) > at > > org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:84) > at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:76) > at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:64) > at > > org.apache.wiki.search.LuceneSearchProvider.findPages(LuceneSearchProvider.java:480) > at > > org.apache.wiki.search.SearchManager$JSONSearch.findPages(SearchManager.java:202) > at > > org.apache.wiki.search.SearchManager$JSONSearch.service(SearchManager.java:132) > at > > org.apache.wiki.ajax.WikiAjaxDispatcherServlet.performAction(WikiAjaxDispatcherServlet.java:144) > at > > org.apache.wiki.ajax.WikiAjaxDispatcherServlet.doPost(WikiAjaxDispatcherServlet.java:104) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > at > > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) > at > > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) > at > > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) > at > org.apache.tomcat.util.net > .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) > at > org.apache.tomcat.util.net > .SocketProcessorBase.run(SocketProcessorBase.java:49) > at > > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at > > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: java.lang.IllegalArgumentException: An SPI class of type > org.apache.lucene.codecs.Codec with name 'Lucene80' does not exist. You > need to add the corresponding JAR file supporting this SPI to your > classpath. The current classpath supports the following names: [Lucene84] > at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:116) > at org.apache.lucene.codecs.Codec.forName(Codec.java:116) > at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:416) > ... 37 more >