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

Reply via email to