[jboss-dev] Optional @Inject

Rémy Maucherat remy.maucherat at gmail.com
Wed Feb 17 11:15:39 EST 2010


Hi,

In AbstractWarDeployer, there is a @Inject annotation on the
setPersistenceUnitDependencyResolver method which creates a hard
dependency on JPA. Trying to loosen that dependency without making big
changes, I changed it to @Inject (option=InjectOption.OPTIONAL). This
does work to some extent (the dependency is now indeed optional), but
it causes a NPE on shutdown.

Any ideas ?

Rémy
-------------- next part --------------
17:09:46,189 WARN  [ConfigureAction] Error unconfiguring bean AbstractKernelControllerContext at 2fbfbe18{ metadata=AbstractBeanMetaData at 2ef49ac3{name=WarDeployer bean=org.jboss.web.tomcat.service.deployers.TomcatDeployer properties=[relativeOrder, tldJars, configFile, authenticators, java2ClassLoadingCompliance, domain, securityContextClassName, mainDeployer, policyRegistrationName, deleteWorkDirOnContextDestroy, securityManagementName, lenientEjbLink, defaultSecurityDomain] constructor=null autowireCandidate=true installs=[ManagedDeploymentCreator.addAttachmentType] uninstalls=[ManagedDeploymentCreator.removeAttachmentType]}name=WarDeployer target=org.jboss.web.tomcat.service.deployers.TomcatDeployer at 33716286 state=Configured depends=AbstractDependencyInfo at 759a12cb{idependOn=[AbstractDependencyItem at 4ed95bc3{name=WarDeployer dependsOn=ServiceBindingManager whenRequired=Configured dependentState=Installed resolved=false}, AbstractDependencyItem at 201787a6{name=WarDeployer dependsOn=MainDeployer whenRequired=Configured resolved=false}, AbstractInstallMetaData$InstallationDependencyItem at 1108565d{name=WarDeployer dependsOn=ManagedDeploymentCreator whenRequired=Installed dependentState=Installed resolved=false}, AbstractInstallMetaData$InstallationDependencyItem at 3a5dfc67{name=WarDeployer dependsOn=ManagedDeploymentCreator whenRequired=Installed dependentState=Installed resolved=false}] unresolved=[AbstractDependencyItem at 4ed95bc3{name=WarDeployer dependsOn=ServiceBindingManager whenRequired=Configured dependentState=Installed resolved=false}, AbstractInstallMetaData$InstallationDependencyItem at 3a5dfc67{name=WarDeployer dependsOn=ManagedDeploymentCreator whenRequired=Installed dependentState=Installed resolved=false}, AbstractInstallMetaData$InstallationDependencyItem at 1108565d{name=WarDeployer dependsOn=ManagedDeploymentCreator whenRequired=Installed dependentState=Installed resolved=false}, AbstractDependencyItem at 201787a6{name=WarDeployer dependsOn=MainDeployer whenRequired=Configured resolved=false}]}}: java.lang.NullPointerException
	at org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData.ungetValue(AbstractInjectionValueMetaData.java:275)
	at org.jboss.kernel.plugins.dependency.PropertyDispatchWrapper.execute(PropertyDispatchWrapper.java:86)
	at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125)
	at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:107)
	at org.jboss.kernel.plugins.dependency.ConfigureAction.setAttributes(ConfigureAction.java:85)
	at org.jboss.kernel.plugins.dependency.ConfigureAction.uninstallActionInternal(ConfigureAction.java:58)
	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:175)
	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.uninstallAction(InstallsAwareAction.java:42)
	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleUninstallAction(SimpleControllerContextAction.java:79)
	at org.jboss.dependency.plugins.action.AccessControllerContextAction.uninstall(AccessControllerContextAction.java:131)
	at org.jboss.dependency.plugins.AbstractControllerContextActions.uninstall(AbstractControllerContextActions.java:58)
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:384)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:2063)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1578)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1431)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:735)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:648)
	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:228)
	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.undeploy(BeanMetaDataDeployer.java:58)
	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalUndeploy(AbstractSimpleRealDeployer.java:69)
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.undeploy(AbstractRealDeployer.java:117)
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.undeploy(DeployerWrapper.java:204)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUndeploy(DeployersImpl.java:1690)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1597)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doUninstallParentLast(DeployersImpl.java:1590)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.uninstall(DeployersImpl.java:1552)
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:384)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:2063)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1578)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:923)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:633)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:811)
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:654)
	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.uninstall(ProfileDeployAction.java:95)
	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.uninstall(AbstractProfileAction.java:70)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.uninstall(AbstractProfileService.java:417)
	at org.jboss.dependency.plugins.AbstractControllerContext.uninstall(AbstractControllerContext.java:384)
	at org.jboss.dependency.plugins.AbstractController.uninstall(AbstractController.java:2063)
	at org.jboss.dependency.plugins.AbstractController.uninstallContext(AbstractController.java:1578)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:923)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:633)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.deactivateProfile(AbstractProfileService.java:448)
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.deactivateProfiles(ProfileServiceBootstrap.java:389)
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:347)
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.shutdown(ProfileServiceBootstrap.java:100)
	at org.jboss.bootstrap.impl.base.server.AbstractServer.shutdownBootstraps(AbstractServer.java:892)
	at org.jboss.bootstrap.impl.base.server.AbstractServer.shutdown(AbstractServer.java:309)
	at org.jboss.Main$ShutdownHook$1.run(Main.java:929)


More information about the jboss-development mailing list