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
>

Reply via email to