Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Jakarta XML Bind to the bootclasspath #23390

Closed
wants to merge 2 commits into from

Conversation

smillidge
Copy link
Contributor

Fixes #23361

@lukasj @hussainnm you may object to this one as you both advocated removing Jakarta XML Binding from the bootclasspath so I'm open to alternative PRs.

Signed-off-by: Steve Millidge [email protected]

@hs536
Copy link
Contributor

hs536 commented Feb 26, 2021

This bootclasspath has been added to avoid the effects of JEP 320.
https://openjdk.java.net/jeps/320

These packages are heavily involved in starting GlassFish.

@hussainnm
Copy link
Member

I am not able to replicate this issue on a Windows environment with current master (1b7bbe9). Please see attached server logs
server.log

My reason for not needing the jakarta.xml-bind-api in the bootclasspath is it is anyway going to be loaded by felix at startup. It works in GlassFish 6.0 without bootclasspath.

Copy link
Contributor

@hs536 hs536 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to WIP

@hs536
Copy link
Contributor

hs536 commented Feb 26, 2021

@smillidge
I built the latest master branch and tried it, but the problem didn't reappear.
The problem of the dependence seemed to have been already solved.

# glassfish6/glassfish/bin/asadmin start-domain
Waiting for domain1 to start ......
Successfully started the domain : domain1
domain  Location: /work/20210103_glassfish_jdk11/glassfish_hs536/glassfish6/glassfish/domains/domain1
Log File: /work/20210103_glassfish_jdk11/glassfish_hs536/glassfish6/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.
# glassfish6/glassfish/bin/asadmin change-admin-password
Enter admin user name [default: admin]>
Enter the admin password> 
Enter the new admin password> 
Enter the new admin password again> 
Command change-admin-password executed successfully.
# glassfish6/glassfish/bin/asadmin login
Enter admin user name [Enter to accept default]> admin
Enter admin password> 
Admin login information for host [localhost] and port [4848] is being overwritten with credentials provided. This is because the --savelogin option was used during create-domain command.
Login information relevant to admin user name [admin] for host [localhost] and admin port [4848] stored at [/root/.gfclient/pass] successfully.
Make sure that this file remains protected. Information stored in this file will be used by administration commands to manage associated domain.
Command login executed successfully.
# glassfish6/glassfish/bin/asadmin enable-secure-admin
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.
# glassfish6/glassfish/bin/asadmin restart-domain
Successfully restarted the domain
Command restart-domain executed successfully.

-> succeeded for access and the login to a admin console (https://:4848/).

Copy link
Member

@lukasj lukasj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

adding a library to bootclasspath in order to fix some issues with "end-user" app does not look like a best way to go since there is nothing to override from JDK - at least not in terms of JAXB. I hope it's already resolved by something else - based on other comments ;-)

@smillidge
Copy link
Contributor Author

Strange I built latest master and couldn't access admin console and quicklook failed without this fix. Maybe I have an old dependency somewhere.

@lukasj
Copy link
Member

lukasj commented Feb 26, 2021

you may want to try activation 2.0.1 + jaxb-api 3.0.1 + jaxb-osgi 3.0.1-b01 - they are available in staging for testing purposes as it is not yet clear how to proceed with service releases of spec projects. But it should be fine for you as long as you don't publish anything having these dependencies outside of temporary/staging areas. Also note that they may change anytime without prior notice untill they get to central.

EDIT: I'm not sure that is going to help. The point is that these dependencies, especially jaxb, have few fixes which may have some impact on things in GF, ie eclipse-ee4j/jaxb-ri#1466 (comment)

@smillidge
Copy link
Contributor Author

smillidge commented Feb 26, 2021

OK even weirder this PR now has the exact same test failures that I saw and that this PR was intending to fix!!!

@smillidge
Copy link
Contributor Author

I will close this and investigate my build

@smillidge smillidge closed this Feb 26, 2021
@arjantijms
Copy link
Contributor

I have this issue now in the current master:

  GRIZZLY0203: Unexpected error
java.lang.NoClassDefFoundError: jakarta/xml/bind/JAXBException
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
	at java.base/java.lang.Class.getMethodsRecursive(Class.java:3307)
	at java.base/java.lang.Class.getMethod0(Class.java:3293)
	at java.base/java.lang.Class.getMethod(Class.java:2106)
	at jakarta.xml.bind.ContextFinder.newInstance(ContextFinder.java:168)
	at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:313)
	at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:478)
	at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:435)
	at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.getJAXBContextFromWadlGenerator(WadlApplicationContextImpl.java:121)
	at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.isJaxbImplAvailable(WadlApplicationContextImpl.java:270)
	at org.glassfish.jersey.server.wadl.WadlFeature.configure(WadlFeature.java:65)
	at org.glassfish.jersey.model.internal.CommonConfig.configureFeatures(CommonConfig.java:728)
	at org.glassfish.jersey.model.internal.CommonConfig.configureMetaProviders(CommonConfig.java:647)
	at org.glassfish.jersey.server.ResourceConfig.configureMetaProviders(ResourceConfig.java:823)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:328)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:293)
	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:292)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:259)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:246)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.<init>(GrizzlyHttpContainer.java:310)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainerProvider.createContainer(GrizzlyHttpContainerProvider.java:37)
	at org.glassfish.jersey.server.ContainerFactory.createContainer(ContainerFactory.java:58)
	at org.glassfish.admin.rest.adapter.RestAdapter.getJerseyContainer(RestAdapter.java:288)
	at org.glassfish.admin.rest.adapter.RestAdapter.exposeContext(RestAdapter.java:281)
	at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:151)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:440)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:34)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.JAXBException not found by [238]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1585)
	at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1970)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 48 more

@smillidge
Copy link
Contributor Author

Yeah I can't get rid of it. I deleted all my Jersey, JAXB etc. jars in my maven repo to refresh them and still have the issue.

@arjantijms
Copy link
Contributor

The core problem stems from nasty and obscure class loading hacks and workarounds:

public static JAXBContext getJAXBContextFromWadlGenerator(WadlGenerator wadlGenerator) throws JAXBException {
        JAXBContext jaxbContextCandidate = null;

        final ClassLoader contextClassLoader = AccessController.doPrivileged(ReflectionHelper.getContextClassLoaderPA());
        try {
            // Nasty ClassLoader magic. JAXB-API has some strange limitation about what class loader can
            // be used in OSGi environment - it must be same as context ClassLoader. Following code just
            // workarounds this limitation
            // see JERSEY-1818
            // see JSR222-46

            final ClassLoader jerseyModuleClassLoader =
                    AccessController.doPrivileged(ReflectionHelper.getClassLoaderPA(wadlGenerator.getClass()));

            AccessController.doPrivileged(ReflectionHelper.setContextClassLoaderPA(jerseyModuleClassLoader));

Maybe having Jersey core import JAX-B explicitly would help here, since it tries to load JAX-B specifically via the jerseyModuleClassLoader.

@arjantijms
Copy link
Contributor

arjantijms commented Feb 26, 2021

And additionally, the point where the exception is triggered in jakarta.xml.bind.JAXBContext:

Class ctxFactory = (Class) ServiceLoaderUtil.lookupUsingOSGiServiceLoader(
                "jakarta.xml.bind.JAXBContext", logger);

if (ctxFactory != null) {
    return newInstance(contextPath, contextPathClasses, ctxFactory, classLoader, properties);
 }

ctxFactory here is loaded by Metro:

ctxFactory.getClassLoader() ->
 (org.apache.felix.framework.BundleWiringImpl$BundleClassLoader) [238]

ctxFactory.getClassLoader().m_wiring.m_revision.m_archive.m_originalLocation =
/glassfish6/glassfish/modules/webservices-rt.jar

webservices-rt.jar/META-INF/MANIFEST.MF=
Implementation-Title: Metro Web Services Runtime non-OSGi Bundle
Implementation-Version: 3.0.0
Implementation-Vendor: Eclipse Foundation
Implementation-Build-Id: 73b54f1

It then specifically tries to execute this line:

 // first check the method that takes Map as the third parameter.
 // this is added in 2.0.
 try {
     Method m = spFactory.getMethod("createContext", String.class, ClassLoader.class, Map.class);

Which causes Java to inspect the type, find jakarta.xml.bind.JAXBException, tries to load it, using the Metro class loader, and then fails.

cc @lukasj

@arjantijms
Copy link
Contributor

Actually, come to think of it. @lukasj, why is webservices-rt.jar present in GlassFish anyway? Should not only be webservices-osgi.jar be present?

@arjantijms
Copy link
Contributor

@smillidge @lukasj I think the presence of webservices-rt.jar in /modules is the issue. A directory ordering / race difference in operating systems causes it to work on some systems and not on others; it just depends which jar is loaded first.

@lukasj
Copy link
Member

lukasj commented Feb 26, 2021

@arjantijms I haven't had a chance to get there yet. Sill fighting between saaj and jax-ws, metro will follow. But I believe only -osgi.jar makes sense. I'd probably recommend to try latest jaxb (api as well as impl), there are class loading related changes/fixes, see #23390 (comment) for details

@arjantijms
Copy link
Contributor

The -rt version came in here:

Screenshot 2021-02-26 at 15 52 47

Maybe there are some other issues as well, but this definitely doesn't feel right to start with. After that we need to update jaxb indeed. Thanks!

@arjantijms
Copy link
Contributor

arjantijms commented Feb 26, 2021

@lukasj the latest jaxb updates completely destroy GF. It's literally raining exceptions after updating to them.

Changes:

jaxb-changes

Some of the exceptions are:

 java.util.ServiceConfigurationError: jakarta.servlet.ServletContainerInitializer: Provider com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer not found
	at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1211)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220)
	at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)
	at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
	at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
	at org.glassfish.web.loader.ServletContainerInitializerUtil.getInterestList(ServletContainerInitializerUtil.java:146)
	at org.apache.catalina.core.StandardContext.callServletContainerInitializers(StandardContext.java:5639)
	at com.sun.enterprise.web.WebModule.callServletContainerInitializers(WebModule.java:590)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5571)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5596)
	at com.sun.enterprise.web.WebModule.start(WebModule.java:507)
	at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1126)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:879)
	at org.apache.catalina.core.ContainerBase.startChildren(ContainerBase.java:1429)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1126)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:343)
	at org.apache.catalina.startup.Embedded.start(Embedded.java:888)
	at com.sun.enterprise.web.WebContainer.postConstruct(WebContainer.java:599)
	at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
	at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
	at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466)
	at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:59)
	at org.jvnet.hk2.internal.SingletonContext$1.compute(SingletonContext.java:47)
	at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture$1.call(Cache.java:74)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at org.glassfish.hk2.utilities.cache.Cache$OriginThreadAwareFuture.run(Cache.java:131)
	at org.glassfish.hk2.utilities.cache.Cache.compute(Cache.java:176)
	at org.jvnet.hk2.internal.SingletonContext.findOrCreate(SingletonContext.java:98)
	at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
	at org.glassfish.internal.data.EngineInfo.getContainer(EngineInfo.java:62)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.startContainers(ApplicationLifecycle.java:987)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:693)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:354)
	at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:382)
	at com.sun.enterprise.v3.admin.adapter.InstallerThread.load(InstallerThread.java:188)
	at com.sun.enterprise.v3.admin.adapter.InstallerThread.run(InstallerThread.java:77)
org.osgi.framework.BundleException: Unable to resolve com.sun.xml.bind.jaxb-osgi [247](R 247.0): 
    
    missing requirement 
         [com.sun.xml.bind.jaxb-osgi [247](R 247.0)] osgi.wiring.package; 
         (osgi.wiring.package=javax.xml.bind.annotation) 
    Unresolved requirements: 
         [[com.sun.xml.bind.jaxb-osgi [247](R 247.0)] osgi.wiring.package; 
          (osgi.wiring.package=javax.xml.bind.annotation)]

	at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4398)
	at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:2095)
Caught: java.lang.ClassNotFoundException: org.glassfish.jaxb.runtime.v2.ContextFactory
	at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:2102)
	at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:987)
	at org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl.loadClassSecured(ServiceLoaderImpl.java:151)
	at org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl.lookupProviderClasses1(ServiceLoaderImpl.java:123)
	at org.glassfish.hk2.osgiresourcelocator.ServiceLoader.lookupProviderClasses(ServiceLoader.java:108)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at jakarta.xml.bind.ServiceLoaderUtil.lookupUsingOSGiServiceLoader(ServiceLoaderUtil.java:58)
	at jakarta.xml.bind.ContextFinder.find(ContextFinder.java:332)
	at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:478)
	at jakarta.xml.bind.JAXBContext.newInstance(JAXBContext.java:435)
	at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.getJAXBContextFromWadlGenerator(WadlApplicationContextImpl.java:121)
	at org.glassfish.jersey.server.wadl.internal.WadlApplicationContextImpl.isJaxbImplAvailable(WadlApplicationContextImpl.java:270)
	at org.glassfish.jersey.server.wadl.WadlFeature.configure(WadlFeature.java:65)
	at org.glassfish.jersey.model.internal.CommonConfig.configureFeatures(CommonConfig.java:728)
	at org.glassfish.jersey.model.internal.CommonConfig.configureMetaProviders(CommonConfig.java:647)
	at org.glassfish.jersey.server.ResourceConfig.configureMetaProviders(ResourceConfig.java:823)
	at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:328)
	at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:293)
	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:292)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:259)
	at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:246)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.<init>(GrizzlyHttpContainer.java:310)
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainerProvider.createContainer(GrizzlyHttpContainerProvider.java:37)
	at org.glassfish.jersey.server.ContainerFactory.createContainer(ContainerFactory.java:58)
	at org.glassfish.admin.rest.adapter.RestAdapter.getJerseyContainer(RestAdapter.java:288)
	at org.glassfish.admin.rest.adapter.RestAdapter.exposeContext(RestAdapter.java:281)
	at org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:151)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:440)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:144)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:174)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:153)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:196)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:88)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:246)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:178)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:118)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:96)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:51)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:510)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:82)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:83)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:34)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:101)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:535)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:515)
	at java.base/java.lang.Thread.run(Thread.java:834)

@lukasj
Copy link
Member

lukasj commented Feb 26, 2021

@arjantijms I have to get there first, I haven't had a chance to test it myself yet, still fixing the road there... QL on v6-final shown no issues on my end. That is the only thing I've tried so far

@arjantijms
Copy link
Contributor

@lukasj okay, I'll try again when you are a bit further. Thanks!

@lukasj
Copy link
Member

lukasj commented Feb 28, 2021

@arjantijms not sure if you noticed the change in classoladers between JDK 8 and 11, there is nice description in jakartaee/jax-ws-api#161

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

JAXB Exception when starting admin console
5 participants