glassfish
glassfish copied to clipboard
WebappClassLoader creates duplicit class definitions in clearReferencesJdbc
See org.glassfish.main.extras.embedded.all.StartupTest log. Same stacktrace is visible also on other places. It will need some investigation, the clearReferencesJdbc is really suspicious implementation and looks like some workaround of some historical bug.
Jan 22, 2022 11:57:20 AM com.sun.enterprise.v3.server.AppServerStartup$MasterRunLevelListener onError
WARNING: An error occured when the system was coming down
MultiException stack 1 of 1
java.lang.LinkageError: loader org.glassfish.web.loader.WebappClassLoader @5d2e65bd attempted duplicate class definition for org.glassfish.web.loader.JdbcLeakPrevention. (org.glassfish.web.loader.JdbcLeakPrevention is in unnamed module of loader org.glassfish.web.loader.WebappClassLoader @5d2e65bd, parent loader org.glassfish.internal.api.DelegatingClassLoader @7d49a1a0)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
at org.glassfish.web.loader.WebappClassLoader.clearReferencesJdbc(WebappClassLoader.java:1917)
at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1850)
at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1754)
at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1723)
at org.glassfish.internal.data.ApplicationInfo.clean(ApplicationInfo.java:445)
at com.sun.enterprise.v3.server.ApplicationLifecycle.unload(ApplicationLifecycle.java:1075)
at com.sun.enterprise.v3.server.ApplicationLifecycle.disable(ApplicationLifecycle.java:2131)
at com.sun.enterprise.v3.server.ApplicationLifecycle.disable(ApplicationLifecycle.java:93)
at com.sun.enterprise.v3.server.ApplicationLoaderService.stopApplication(ApplicationLoaderService.java:472)
at com.sun.enterprise.v3.server.ApplicationLoaderService.preDestroy(ApplicationLoaderService.java:440)
at org.jvnet.hk2.internal.ClazzCreator.preDestroyMe(ClazzCreator.java:316)
at org.jvnet.hk2.internal.ClazzCreator.dispose(ClazzCreator.java:381)
at org.jvnet.hk2.internal.SystemDescriptor.dispose(SystemDescriptor.java:521)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.destroyOne(AsyncRunLevelContext.java:403)
at org.glassfish.hk2.runlevel.RunLevelContext.destroyOne(RunLevelContext.java:81)
at org.jvnet.hk2.internal.ServiceHandleImpl.close(ServiceHandleImpl.java:166)
at org.glassfish.hk2.api.ServiceHandle.destroy(ServiceHandle.java:67)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$DownQueueRunner.run(CurrentTaskFuture.java:1270)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
JdbcRuntimeExtension, getAllSystemRAResourcesAndPools = [GlassFishConfigBean.org.glassfish.jdbc.config.JdbcResource, GlassFishConfigBean.org.glassfish.jdbc.config.JdbcResource, GlassFishConfigBean.org.glassfish.jdbc.config.JdbcConnectionPool, GlassFishConfigBean.org.glassfish.jdbc.config.JdbcConnectionPool]
Jan 22, 2022 11:57:20 AM com.sun.enterprise.v3.server.AppServerStartup stop
Another similar stacktrace:
12:06:08 [java] SEVERE: Exception while running a command
12:06:08 [java] java.lang.LinkageError: loader org.glassfish.web.loader.WebappClassLoader @6ed51944 attempted duplicate class definition for org.glassfish.web.loader.JdbcLeakPrevention. (org.glassfish.web.loader.JdbcLeakPrevention is in unnamed module of loader org.glassfish.web.loader.WebappClassLoader @6ed51944, parent loader org.glassfish.javaee.full.deployment.EarClassLoader @6caa4dc5)
12:06:08 [java] at java.base/java.lang.ClassLoader.defineClass1(Native Method)
12:06:08 [java] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
12:06:08 [java] at org.glassfish.web.loader.WebappClassLoader.clearReferencesJdbc(WebappClassLoader.java:1792)
12:06:08 [java] at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1726)
12:06:08 [java] at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1632)
12:06:08 [java] at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1609)
12:06:08 [java] at org.glassfish.internal.data.ApplicationInfo.clean(ApplicationInfo.java:478)
12:06:08 [java] at com.sun.enterprise.v3.server.ApplicationLifecycle.unload(ApplicationLifecycle.java:1123)
12:06:08 [java] at com.sun.enterprise.v3.server.ApplicationLifecycle.undeploy(ApplicationLifecycle.java:1152)
12:06:08 [java] at org.glassfish.deployment.admin.UndeployCommand.execute(UndeployCommand.java:391)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:529)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:525)
12:06:08 [java] at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
12:06:08 [java] at java.base/javax.security.auth.Subject.doAs(Subject.java:365)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:524)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:555)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:547)
12:06:08 [java] at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
12:06:08 [java] at java.base/javax.security.auth.Subject.doAs(Subject.java:365)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1456)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1825)
12:06:08 [java] at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1701)
12:06:08 [java] at com.sun.enterprise.admin.cli.embeddable.CommandExecutorImpl.executeCommand(CommandExecutorImpl.java:142)
12:06:08 [java] at com.sun.enterprise.admin.cli.embeddable.DeployerImpl.undeploy(DeployerImpl.java:136)
12:06:08 [java] at org.glassfish.ejb.embedded.EJBContainerImpl.undeploy(EJBContainerImpl.java:238)
12:06:08 [java] at org.glassfish.ejb.embedded.EJBContainerImpl.forceClose(EJBContainerImpl.java:166)
12:06:08 [java] at org.glassfish.ejb.embedded.EJBContainerImpl.close(EJBContainerImpl.java:155)
12:06:08 [java] at com.acme.Client.test(Client.java:75)
12:06:08 [java] at com.acme.Client.main(Client.java:42)