0 Replies Latest reply on Jul 23, 2008 9:03 AM by Andrew Dinn

    NPE when web services are shut down

    Andrew Dinn Master

      Hi guys,

      I found a problem in shutdown processing for JBossWS Native 3.0.2 on 5.0.0.CR1. I'm getting NullPointerExceptions from BareWSFRuntime.stop() as web services are being undeployed. This occurs both for an application web service (the XTS demo) and for the web services deployed in the XTS sar as part of the XTS implementation.

      The stack traces are as follows

      13:32:45,437 ERROR [WebServiceDeployerPostJSE] Error during undeploy: vfszip:/home/adinn/jboss/jbossas/JBoss_5_0_0_CR1/build/output/jboss-5.0.0.CR1/server/default/deploy/jbossxts.sar/ws-t11.war
      java.lang.NullPointerException
       at org.jboss.wsf.container.jboss50.BareWSFRuntime.stop(BareWSFRuntime.java:71)
       at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.undeploy(ArchiveDeployerHook.java:109)
       at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalUndeploy(AbstractWebServiceDeployer.java:68)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1169)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
       at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
       at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1406)
       at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1064)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:677)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unload(ProfileServiceBootstrap.java:371)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unloadProfile(ProfileServiceBootstrap.java:332)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:160)
       at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:508)
       at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:827)
      


      13:32:45,438 ERROR [WebServiceDeployerPostJSE] Error during undeploy: vfszip:/home/adinn/jboss/jbossas/JBoss_5_0_0_CR1/build/output/jboss-5.0.0.CR1/server/default/deploy/jbossxts.sar/ws-c11.war
      java.lang.NullPointerException
       at org.jboss.wsf.container.jboss50.BareWSFRuntime.stop(BareWSFRuntime.java:71)
       at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.undeploy(ArchiveDeployerHook.java:109)
       at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalUndeploy(AbstractWebServiceDeployer.java:68)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1169)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
       at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
       at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1406)
       at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1064)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:677)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unload(ProfileServiceBootstrap.java:371)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unloadProfile(ProfileServiceBootstrap.java:332)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:160)
       at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:508)
       at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:827)
      

      13:32:45,437 ERROR [WebServiceDeployerPostJSE] Error during undeploy: vfszip:/home/adinn/jboss/jbossas/JBoss_5_0_0_CR1/build/output/jboss-5.0.0.CR1/server/default/deploy/jbossxts.sar/ws-t11.war
      java.lang.NullPointerException
       at org.jboss.wsf.container.jboss50.BareWSFRuntime.stop(BareWSFRuntime.java:71)
       at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.undeploy(ArchiveDeployerHook.java:109)
       at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalUndeploy(AbstractWebServiceDeployer.java:68)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1169)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
       at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
       at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1406)
       at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1064)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:677)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unload(ProfileServiceBootstrap.java:371)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unloadProfile(ProfileServiceBootstrap.java:332)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:160)
       at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:508)
       at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:827)
      13:32:45,438 ERROR [WebServiceDeployerPostJSE] Error during undeploy: vfszip:/home/adinn/jboss/jbossas/JBoss_5_0_0_CR1/build/output/jboss-5.0.0.CR1/server/default/deploy/jbossxts.sar/ws-c11.war
      java.lang.NullPointerException
       at org.jboss.wsf.container.jboss50.BareWSFRuntime.stop(BareWSFRuntime.java:71)
       at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.undeploy(ArchiveDeployerHook.java:109)
       at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalUndeploy(AbstractWebServiceDeployer.java:68)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:112)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:197)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1189)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1169)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1144)
       at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:354)
       at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:1406)
       at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1064)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:677)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:455)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:510)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:541)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unload(ProfileServiceBootstrap.java:371)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.unloadProfile(ProfileServiceBootstrap.java:332)
       at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:160)
       at org.jboss.bootstrap.AbstractServerImpl.shutdownServer(AbstractServerImpl.java:508)
       at org.jboss.bootstrap.AbstractServerImpl$ShutdownHook.run(AbstractServerImpl.java:827)
      


      The WSFRuntime has a null value in its deploymentManager field. This can only happen if it has not been initialised after creation. I debugged the error and noticed that ArchiveDeployerHook.undeploy will create a new runtime when shutting down a web service if the current runtime is null.

      Presumably this is happening because the runtime which started the web services has been closed down before the web services and then a new instance recreated by ArchiveDeployerHook in an environment where it cannot obtain a deploymentManager when it initialises.

      Please note that the XTS service does not declare a service/bean dependency on JBossWS because of another issue to do with start-up (see JBWS-2246). Nevertheless, the problem is obviously not just to do with service dependencies because the XTS demo application is a simple app rather than a service and should not be expected to declare dependencies upon JBossWS services/beans in order to be started and stopped correctly.