0 Replies Latest reply on Jun 27, 2008 11:24 AM by Alexandre Mendonça

    Custom Deployer problem with RepositoryClassLoader

    Alexandre Mendonça Newbie

      Hi.

      We have our own JAIN-SLEE Deployer, which acts as a regular deployer but performs some JMX actions and manages component dependencies. What's happening it's that when we delete a component which has dependants, the deployer does nothing but to add it to a list of "waiting to be undeployed" components. The problem is that the file has already been deleted... so, when the dependant is undeployed, we are getting this exception:

      16:41:16,701 ERROR [STDERR] java.lang.NullPointerException
      16:41:16,701 ERROR [STDERR] at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:630)
      16:41:16,701 ERROR [STDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      16:41:16,701 ERROR [STDERR] at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:474)
      16:41:16,701 ERROR [STDERR] at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
      16:41:16,702 ERROR [STDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
      16:41:16,702 ERROR [STDERR] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
      16:41:16,702 ERROR [STDERR] at org.mobicents.slee.services.sip.proxy.ProxySbb.onActivityEndEvent(ProxySbb.java:408)
      16:41:16,702 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      16:41:16,702 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      16:41:16,702 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      16:41:16,702 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
      16:41:16,703 ERROR [STDERR] at org.mobicents.slee.runtime.sbbentity.SbbEntity.invokeEventHandler(SbbEntity.java:879)
      16:41:16,703 ERROR [STDERR] at org.mobicents.slee.runtime.EventRouterImpl.routeQueuedEvent(EventRouterImpl.java:885)
      16:41:16,703 ERROR [STDERR] at org.mobicents.slee.runtime.EventRouterImpl.access$100(EventRouterImpl.java:64)
      16:41:16,703 ERROR [STDERR] at org.mobicents.slee.runtime.EventRouterImpl$EventExecutor.run(EventRouterImpl.java:121)
      16:41:16,703 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      16:41:16,703 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
      16:41:16,703 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595)

      This is similar to JBAS-4052 (http://jira.jboss.org/jira/browse/JBAS-4052). I think the problem resides in the dependant had been undeployed and so the classloader.

      I've tried to abort the undeployment of the dependant by throwing a DeploymentException, but it didn't solved the issue.

      Do you have any idea of how can I fix this? Create a temporary copy of the jar and load it from there instead? How?

      Thanks,
      Alexandre Mendonça