I'm seeing an old friend :-) show up in the logs. I'm used to seeing it with application clients, but now it's showing up in an exclusively-server-side situation.
The warning indicates that some component of my .ear file has requested a class "on an ASURLClassLoader instance that has already been shutdown. [ASURLClassLoader.done() called ON EarClassLoader".
My ear consists of a big pile of jars in its lib directory, a 1.5-compliant resource adapter, and a simple .war file that relies on services and objects present in the library jars.
It seems that the resource adapter is the one that always triggers this warning.
I'm happy to post details; just wondering if there's an obvious fix or issue here.
Here's a partial stack, showing that the resource adapter is trying to get a resource. This is probably happening as part of the (legal, spec-compliant) scheduled work that I kick off when the resource adapter starts up. I have taken a ridiculous amount of care :-) to ensure that neither I nor the core Drools product (which is wrapped in this resource adapter) is kicking off threads, but is, instead, going through the Work interface.
[code]
[#|2010-06-28T14:57:32.279-0400|WARNING|glassfish3.1|javax.enterprise.system.core.classloading.com.sun.enterprise.loader|_ThreadID=86;_ThreadName=Thread-1;|LDR5204: Error : Request made to load class or resource [META-INF/drools.rulebase.conf] on an ASURLClassLoader instance that has already been shutdown. [ASURLClassLoader.done() called ON EarClassLoader :
urlSet = [URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/WEB-INF/classes/, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/WEB-INF/lib/foobar-liquibase-1.0-SNAPSHOT.jar, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/WEB-INF/lib/liquibase-core-1.9.5.jar, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/WEB-INF/lib/mvel2-2.0.18.jar, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/WEB-INF/lib/vaadin-6.3.4.jar, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/generated/ejb/foobar-1.0-SNAPSHOT/foobar-war-1.0-SNAPSHOT_war/, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/applications/foobar-1.0-SNAPSHOT/foobar-bizbaw-ejb-1.0-SNAPSHOT_jar/, URLEntry : file:/usr/local/glassfish-3.1b06/glassfish/domains/domain1/generated/ejb/foobar-1.0-SNAPSHOT/foobar-bizbaw-ejb-1.0-SNAPSHOT_jar]
doneCalled = false
Parent -> org.glassfish.internal.api.DelegatingClassLoader_at_a920de2
AT Mon Jun 28 14:57:31 EDT 2010
BY :java.lang.Throwable: printStackTraceToString
at com.sun.enterprise.util.Print.printStackTraceToString(Print.java:634)
at com.sun.enterprise.loader.ASURLClassLoader.done(ASURLClassLoader.java:214)
at com.sun.enterprise.loader.ASURLClassLoader.preDestroy(ASURLClassLoader.java:182)
at org.glassfish.javaee.full.deployment.EarClassLoader.preDestroy(EarClassLoader.java:93)
at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:226)
at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:178)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:160)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:355)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:199)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:292)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:324)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:339)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1002)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:94)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1110)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1099)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:367)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:113)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:803)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:706)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:987)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:217)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:526)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:507)
at java.lang.Thread.run(Thread.java:637)
]|#]
[/code]
Thanks,
Laird
[Message sent by forum member 'ljnelson']
http://forums.java.net/jive/thread.jspa?messageID=476197