Hi Solr users,

I’m trying to upgrade from Solr 9.4.0 to 9.5.0, and I’m now getting the
following WARN message in logs when starting the server.

WARN  (main) [c: s: r: x: t:] o.g.j.i.Errors The following warnings
have been detected: WARNING: HK2 service reification failed for
[org.glassfish.jersey.message.internal.DataSourceProvider] with an
exception:
> MultiException stack 1 of 2
> java.lang.NoClassDefFoundError: jakarta/activation/DataSource
>       at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
>       at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown 
> Source)
>       at java.base/java.lang.Class.getDeclaredConstructors(Unknown Source)
>       at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1355)
>       at org.jvnet.hk2.internal.Utilities$3.run(Utilities.java:1351)
>       at java.base/java.security.AccessController.doPrivileged(Unknown Source)
>       at 
> org.jvnet.hk2.internal.Utilities.getAllConstructors(Utilities.java:1351)
>       at 
> org.jvnet.hk2.internal.Utilities.findProducerConstructor(Utilities.java:1294)
>       at 
> org.jvnet.hk2.internal.DefaultClassAnalyzer.getConstructor(DefaultClassAnalyzer.java:60)
>       at 
> org.glassfish.jersey.inject.hk2.JerseyClassAnalyzer.getConstructor(JerseyClassAnalyzer.java:124)
>       at org.jvnet.hk2.internal.Utilities.getConstructor(Utilities.java:157)
>       at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:106)
>       at org.jvnet.hk2.internal.ClazzCreator.initialize(ClazzCreator.java:165)
>       at 
> org.jvnet.hk2.internal.SystemDescriptor.internalReify(SystemDescriptor.java:719)
>       at 
> org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:673)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
>       at 
> org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
>       at 
> org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
>       at 
> org.glassfish.jersey.inject.hk2.ImmediateHk2InjectionManager.getAllServiceHolders(ImmediateHk2InjectionManager.java:30)
>       at 
> org.glassfish.jersey.internal.inject.Providers.getServiceHolders(Providers.java:308)
>       at 
> org.glassfish.jersey.internal.inject.Providers.getCustomProviders(Providers.java:152)
>       at 
> org.glassfish.jersey.message.internal.MessageBodyFactory.initialize(MessageBodyFactory.java:219)
>       at 
> org.glassfish.jersey.message.internal.MessageBodyFactory$MessageBodyWorkersConfigurator.postInit(MessageBodyFactory.java:114)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$2(ApplicationHandler.java:366)
>       at java.base/java.util.Arrays$ArrayList.forEach(Unknown Source)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:366)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:310)
>       at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
>       at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
>       at 
> org.glassfish.jersey.internal.Errors.processWithException(Errors.java:232)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:309)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:274)
>       at 
> org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:249)
>       at 
> org.apache.solr.core.CoreContainer.loadInternal(CoreContainer.java:1154)
>       at org.apache.solr.core.CoreContainer.load(CoreContainer.java:762)
>       at 
> org.apache.solr.servlet.CoreContainerProvider.createCoreContainer(CoreContainerProvider.java:427)
>       at 
> org.apache.solr.servlet.CoreContainerProvider.init(CoreContainerProvider.java:246)
>       at 
> org.apache.solr.servlet.CoreContainerProvider.contextInitialized(CoreContainerProvider.java:116)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740)
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
>       at 
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:221)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
>       at org.eclipse.jetty.server.Server.start(Server.java:470)
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
>       at org.eclipse.jetty.server.Server.doStart(Server.java:415)
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>       at 
> org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1919)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>       at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
> Source)
>       at java.base/java.lang.reflect.Method.invoke(Unknown Source)
>       at org.eclipse.jetty.start.Main.invokeMain(Main.java:229)
>       at org.eclipse.jetty.start.Main.start(Main.java:528)
>       at org.eclipse.jetty.start.Main.main(Main.java:76)
> Caused by: java.lang.ClassNotFoundException: jakarta.activation.DataSource
>       at java.base/java.net.URLClassLoader.findClass(Unknown Source)
>       at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
>       at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
>       at 
> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:460)
>       at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
>       ... 89 more
>       Suppressed: java.lang.ClassNotFoundException: 
> jakarta.activation.DataSource
>               at java.base/java.net.URLClassLoader.findClass(Unknown Source)
>               at 
> org.eclipse.jetty.webapp.WebAppClassLoader.findClass(WebAppClassLoader.java:581)
>               at 
> org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:484)
>               ... 90 more
> MultiException stack 2 of 2
> java.lang.IllegalArgumentException: Errors were discovered while reifying 
> SystemDescriptor(
>       implementation=org.glassfish.jersey.message.internal.DataSourceProvider
>       
> contracts={jakarta.ws.rs.ext.MessageBodyReader,jakarta.ws.rs.ext.MessageBodyWriter}
>       scope=jakarta.inject.Singleton
>       qualifiers={}
>       descriptorType=CLASS
>       descriptorVisibility=NORMAL
>       metadata=
>       rank=0
>       loader=null
>       proxiable=null
>       proxyForSameScope=null
>       analysisName=null
>       id=94
>       locatorId=0
>       identityHashCode=1521891844
>       reified=false)
>       at 
> org.jvnet.hk2.internal.SystemDescriptor.reify(SystemDescriptor.java:684)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.reifyDescriptor(ServiceLocatorImpl.java:438)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.narrow(ServiceLocatorImpl.java:2316)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1401)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl$10.compute(ServiceLocatorImpl.java:1396)
>       at 
> org.glassfish.hk2.utilities.cache.internal.WeakCARCacheImpl.compute(WeakCARCacheImpl.java:105)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.internalGetAllServiceHandles(ServiceLocatorImpl.java:1458)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1384)
>       at 
> org.jvnet.hk2.internal.ServiceLocatorImpl.getAllServiceHandles(ServiceLocatorImpl.java:1372)
>       at 
> org.glassfish.jersey.inject.hk2.AbstractHk2InjectionManager.getAllServiceHolders(AbstractHk2InjectionManager.java:134)
>       at org.glassfish.jersey.inject.hk2.ImmediateHk2Inje...
>
>
I use a custom XML response writer that imports classes from both `
jakarta.xml.bind` and `javax.xml.datatype`. It is built through Maven and
the resulting JAR is put under `/opt/solr/lib/` in a Docker image based on
the official Docker image `solr:9.5.0-slim` that embeds Temurin 17.

It seems that this change of behavior might be related to the resolution of
https://issues.apache.org/jira/browse/SOLR-17089 in Solr 9.5.0 but I’m not
sure about it.

Am I doing something wrong? Can I safely ignore this warning? Should I
report it?

Thanks in advance for your time,
Yvan

Reply via email to