davido commented on issue #12307: URL: https://github.com/apache/lucene/issues/12307#issuecomment-1803192152
@uschindler We are using [Bazel](https://bazel.build) build system, and merging the two JARs like this: # Merge jars so # META-INF/services/org.apache.lucene.codecs.Codec # contains the union of both Codec collections. java_binary( name = "lucene-core-and-backward-codecs-merged", data = ["//lib:LICENSE-Apache2.0"], main_class = "NotImportant", runtime_deps = [ # in case of conflict, we want the implementation of backwards-codecs # first. "@backward-codecs//jar", "@lucene-core//jar", ], ) java_import( name = "lucene-core-and-backward-codecs", jars = [ ":lucene-core-and-backward-codecs-merged_deploy.jar", ], ) And it works with JDk11 and JDK17 as expected, but is failing on JDK21: 7) offlineReindexForAllAvailableIndicesIsPossibleInSlaveMode(com.google.gerrit.acceptance.pgm.LuceneReindexIT) java.lang.NoClassDefFoundError: Could not initialize class org.apache.lucene.store.MMapDirectory at org.apache.lucene.store.FSDirectory.open(FSDirectory.java:161) at org.apache.lucene.store.FSDirectory.open(FSDirectory.java:156) at com.google.gerrit.lucene.LuceneAccountIndex.dir(LuceneAccountIndex.java:91) at com.google.gerrit.lucene.LuceneAccountIndex.<init>(LuceneAccountIndex.java:105) at com.google.gerrit.lucene.LuceneAccountIndex$$FastClassByGuice$$416172e5.GUICE$TRAMPOLINE(<generated>) at com.google.gerrit.lucene.LuceneAccountIndex$$FastClassByGuice$$416172e5.apply(<generated>) at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82) at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300) at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148) at com.google.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:907) at jdk.proxy2/jdk.proxy2.$Proxy59.create(Unknown Source) at com.google.gerrit.server.index.SingleVersionModule$SingleVersionListener.start(SingleVersionModule.java:98) at com.google.gerrit.server.index.SingleVersionModule$SingleVersionListener.start(SingleVersionModule.java:79) at com.google.gerrit.pgm.init.index.IndexManagerOnInit.start(IndexManagerOnInit.java:40) at com.google.gerrit.pgm.init.BaseInit.run(BaseInit.java:121) at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:62) at com.google.gerrit.acceptance.GerritServer.init(GerritServer.java:344) at com.google.gerrit.acceptance.StandaloneSiteTest.beforeTest(StandaloneSiteTest.java:140) at com.google.gerrit.acceptance.StandaloneSiteTest$1.evaluate(StandaloneSiteTest.java:117) at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runners.Suite.runChild(Suite.java:128) at org.junit.runners.Suite.runChild(Suite.java:27) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at com.google.testing.junit.runner.internal.junit4.CancellableRequestFactory$CancellableRunner.run(CancellableRequestFactory.java:108) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at com.google.testing.junit.runner.junit4.JUnit4Runner.run(JUnit4Runner.java:116) at com.google.testing.junit.runner.BazelTestRunner.runTestsInSuite(BazelTestRunner.java:145) at com.google.testing.junit.runner.BazelTestRunner.main(BazelTestRunner.java:76) Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.LinkageError: MemorySegmentIndexInputProvider is missing in Lucene JAR file [in thread "main"] at org.apache.lucene.store.MMapDirectory.lookupProvider(MMapDirectory.java:437) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at org.apache.lucene.store.MMapDirectory.doPrivileged(MMapDirectory.java:395) at org.apache.lucene.store.MMapDirectory.<clinit>(MMapDirectory.java:448) ... 54 more So that this change, that is only bumping default Java level from JDK 17 to JDK 21 failing tests: [1]. [1] https://gerrit-review.googlesource.com/c/gerrit/+/387837 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org