-
Bug
-
Resolution: Done
-
Major
-
7.2.4.GA
When a web application contains both MBean (jboss-service.xml) and persistence-unit (persistence.xml), the WAR deployment fails due to the following NullPointerException:
12:32:36,613 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."helloworld-mbean-webapp.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."helloworld-mbean-webapp.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "helloworld-mbean-webapp.war" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:151) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1737) at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1699) at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1557) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1364) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: Method parameter cannot be null at org.jboss.msc.service.ServiceBuilderImpl.assertNotNull(ServiceBuilderImpl.java:574) at org.jboss.msc.service.ServiceBuilderImpl.addDependencies(ServiceBuilderImpl.java:242) at org.jboss.msc.service.ServiceBuilderImpl.addDependencies(ServiceBuilderImpl.java:234) at org.jboss.as.service.MBeanServices.<init>(MBeanServices.java:112) at org.jboss.as.service.ParsedServiceDeploymentProcessor.addServices(ParsedServiceDeploymentProcessor.java:133) at org.jboss.as.service.ParsedServiceDeploymentProcessor.deploy(ParsedServiceDeploymentProcessor.java:118) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:144) ... 8 more ...(snip)... 12:32:37,720 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "helloworld-mbean-webapp.war")]) - failure description: { "WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"helloworld-mbean-webapp.war\".INSTALL" => "WFLYSRV0153: Failed to process phase INSTALL of deployment \"helloworld-mbean-webapp.war\" Caused by: java.lang.NullPointerException: Method parameter cannot be null"}, "WFLYCTL0412: Required services that are not installed:" => [ "jboss.deployment.unit.\"helloworld-mbean-webapp.war\".WeldStartService", "jboss.deployment.unit.\"helloworld-mbean-webapp.war\".beanmanager" ], "WFLYCTL0180: Services with missing/unavailable dependencies" => [ "jboss.deployment.unit.\"helloworld-mbean-webapp.war\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"helloworld-mbean-webapp.war\".beanmanager, jboss.deployment.unit.\"helloworld-mbean-webapp.war\".WeldStartService]", "jboss.deployment.unit.\"helloworld-mbean-webapp.war\".batch.artifact.factory is missing [jboss.deployment.unit.\"helloworld-mbean-webapp.war\".beanmanager]" ] }
This NPE happens because WebNonTxEmCloserAction#dependencies() returns null. It should return Collections.emptySet() instead of null.
By the way, the same code exists there in EAP 7.1 but the NPE did not happen in EAP 7.1.x. Because JBoss MSC changed the null-check handling by MSC-203 and MSC-240. org.jboss.msc.service.ServiceBuilderImpl just skipped the processing when a dependency is null in the previous behavior, but it now throws "NullPointerException: Method parameter cannot be null".
- clones
-
WFLY-12689 WAR deployment fails due to NPE when both MBean and persistence-unit are packaged
- Closed
- is cloned by
-
JBEAP-17815 [GSS](7.2.z) WAR deployment fails due to NPE when both MBean and persistence-unit are packaged
- Closed