[jboss-dev-forums] [Design of POJO Server] - Re: FIELD granularity web session replication tests

bstansberry@jboss.com do-not-reply at jboss.com
Fri Feb 8 20:19:27 EST 2008


I found why BaseClassLoaderDomain.unregisterClassLoader() is never called.  It's because WarClassLoaderDeployer overrides the superclass removeClassLoader(DeploymentContext) and turns it into a no-op.

Tried commenting out the override; i.e. just using the superclass behavior. No joy. Didn't seem to break war undeployments in any way, and in a debugger I can see the BaseClassLoaderDomain.unregisterClassLoader() stuff happening nicely.  But if I redeploy the war and try to use it, the old invalid classloader still gets used:


  | 2008-02-08 17:00:35,073 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/http-scoped-field].[jsp]] Servlet.service() for servlet jsp threw exception
  | java.lang.IllegalStateException: BaseClassLoader at 17ebc6c{vfsfile:/home/bes/dev/jboss/trunk/testsuite/output/lib/http-field-pass.war} classLoader is not connected to a domain (probably undeployed?) for class sun.reflect.ConstructorAccessorImpl
  | 	at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:579)
  | 	at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:234)
  | 	at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
  | 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  | 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  | 	at sun.misc.Unsafe.defineClass(Native Method)
  | 	at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45)
  | 	at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
  | 	at java.security.AccessController.doPrivileged(Native Method)
  | 	at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
  | 	at sun.reflect.MethodAccessorGenerator.generateConstructor(MethodAccessorGenerator.java:76)
  | 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:30)
  | 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  | 	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
  | 	at java.lang.Class.newInstance0(Class.java:350)
  | 	at java.lang.Class.newInstance(Class.java:303)
  | 	at org.jboss.aop.proxy.ClassProxyFactory.newInstance(ClassProxyFactory.java:103)
  | 	at org.jboss.aop.proxy.ClassProxyFactory.newInstance(ClassProxyFactory.java:71)
  | 	at org.jboss.aop.proxy.ClassProxyFactory.newInstance(ClassProxyFactory.java:66)
  | 	at org.jboss.cache.pojo.collection.CollectionInterceptorUtil.createProxy(CollectionInterceptorUtil.java:50)
  | ....

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4128037#4128037

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4128037



More information about the jboss-dev-forums mailing list