Change By: Matti Linnanvuori (28/Jan/13 7:52 AM)
Description: If a singleton session bean throws an application exception in a method annotated with {{@PostConstruct}} the application exception is not visible in the log. The exception that is thrown is a {{java.lang.RuntimeException}} with the message "Could not invoke PostConstruct on the newly created bean instance, the cause is a {{java.lang.NullPointerException}} instead of the application exception.

A simple singleton session bean to replicate the bug:

{code}
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;

@Startup
@Singleton
public class TestSingletonBean
{
    @PostConstruct
    public void init() throws Exception
    {
        throw new Exception("Where did I go?");
    }
}
{code}

The exception from {{server.log}}:

{code}

12
11.01 03 : 37 04 : 38 13 , 966 853  ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController]  (WorkerThread#0[144.202.230.44:53189]:)  Error installing to Start: name=startup-singleton-initiator:topLevelUnit= javaee6-manager test . jar war ,unit= javaee6-manager test . jar war ,bean= TestSingletonBean InitializerServiceBean  aliases=[startup-singleton-initiator:bean= TestSingletonBean InitializerServiceBean ,topLevelUnit= javaee6-manager test . jar war ,unit= javaee6-manager test . jar war ] state=Create: java.lang.RuntimeException: Could not invoke PostConstruct on the newly created bean instance
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:137)
 [:1.0.0-alpha-28]
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.get(SingletonEJBInstanceManagerImpl.java:152)
 [:1.0.0-alpha-28]
at org.jboss.ejb3.singleton.deployer.StartupSingletonInitiator.start(StartupSingletonInitiator.java:84)
 [:1.0.0-alpha-28]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 [:1.6.0_22]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39 57 )  [:1.6.0_22]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25 43 )  [:1.6.0_22]
at java.lang.reflect.Method.invoke(Method.java:
597 616 )  [:1.6.0_22]
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60)
 [jboss-reflect.jar:2.2.0.GA]
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168)
 [jboss-reflect.jar:2.2.0.GA]
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
 [jboss-reflect.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
 [jboss-kernel.jar:2.2.0.GA]
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641)
 [
          at org.
jboss -dependency . jar:2 kernel . 2 plugins . 0 dependency . GA] AbstractKernelController.install(AbstractKernelController.java:103)
at org.jboss.
deployers ejb3 . vfs common . deployer registrar . kernel plugin . BeanMetaDataDeployer mc . deploy Ejb3McRegistrar.install ( BeanMetaDataDeployer Ejb3McRegistrar .java: 182 394 )  [:2
          at org
. 2 jboss . 0 ejb3 . GA] common.registrar.plugin.mc.Ejb3McRegistrar.bind(Ejb3McRegistrar.java:245)
at org.jboss.
deployers ejb3 . vfs proxy . deployer impl . kernel jndiregistrar . BeanMetaDataDeployer JndiSessionRegistrarBase . deploy registerProxyFactory ( BeanMetaDataDeployer JndiSessionRegistrarBase .java: 58 1169 )  [:2
          at org
. 2 jboss . 0 ejb3 . GA] proxy.impl.jndiregistrar.JndiSessionRegistrarBase.createJndiReferenceBindingSet(JndiSessionRegistrarBase.java:510)
at org.jboss.
deployers ejb3 . spi proxy . deployer impl . helpers jndiregistrar . AbstractSimpleRealDeployer JndiSessionRegistrarBase . internalDeploy bindEjb ( AbstractSimpleRealDeployer JndiSessionRegistrarBase .java: 62 156 )  [:2
          at org
. 2 jboss . 0 ejb3 . GA] session.SessionContainer.lockedStart(SessionContainer.java:223)
at org.jboss.
deployers ejb3 . spi session . deployer SessionSpecContainer . helpers lockedStart(SessionSpecContainer . AbstractRealDeployer java:735)
          at org
. deploy jboss.ejb3.EJBContainer.start ( AbstractRealDeployer EJBContainer .java: 55 1105 )  [
          at sun.reflect.GeneratedMethodAccessor449.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java
: 2 43)
          at java
. 2 lang . 0 reflect . GA] Method.invoke(Method.java:616)
at org.jboss.
deployers reflect .plugins. deployers introspection . DeployerWrapper ReflectionUtils . deploy invoke ( DeployerWrapper ReflectionUtils .java: 179 60 )  [:2
          at org
. 2 jboss . 0 reflect . GA] plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168)
at org.jboss.
deployers joinpoint .plugins. deployers BasicMethodJoinPoint . DeployersImpl.doDeploy dispatch ( DeployersImpl BasicMethodJoinPoint .java: 1832 66 )  [:2
          at org
. 2 jboss . 0 kernel . GA] plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257)
at org.jboss.
deployers kernel .plugins. deployers dependency . DeployersImpl ExecutionWrapper . doInstallParentFirst execute ( DeployersImpl ExecutionWrapper .java: 1550 47 )  [:2
          at org
. 2 jboss . 0 kernel . GA] plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125)
at org.jboss.
deployers kernel .plugins. deployers dependency . DeployersImpl KernelControllerContextAction . doInstallParentFirst dispatchJoinPoint ( DeployersImpl KernelControllerContextAction .java: 1571 72 )  [:2
          at org
. 2 jboss . 0 kernel . GA] plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202)
at org.jboss.
deployers kernel .plugins. deployers dependency . DeployersImpl InstallsAwareAction . install installAction ( DeployersImpl InstallsAwareAction .java: 1491 54 )  [:2
          at org
. 2 jboss . 0 kernel . GA] plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
at org.jboss.dependency.plugins.
AbstractControllerContext action . install SimpleControllerContextAction.simpleInstallAction ( AbstractControllerContext SimpleControllerContextAction .java: 379 62 )  [
          at org.
jboss - . dependency. jar:2 plugins . 2 action . 0 AccessControllerContextAction . GA] install(AccessControllerContextAction.java:71)
at org.jboss.dependency.plugins.
AbstractController AbstractControllerContextActions .install( AbstractController AbstractControllerContextActions .java: 2044 51 )  [
          at org.
jboss - . dependency. jar:2 plugins . 2 AbstractControllerContext . 0 install(AbstractControllerContext . GA] java:379)
at org.jboss.dependency.plugins.AbstractController.
incrementState install (AbstractController.java: 1083 2044 )  [
          at org.
jboss - . dependency. jar:2 plugins . 2 AbstractController . 0 incrementState(AbstractController . GA] java:1083)
at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654)
 [jboss-dependency.jar:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983)
 [:2.2.0.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076)
 [:2.2.0.GA]
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679)
 [:2.2.0.GA]
at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106)
 [:6.0.0.Final]
at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143)
 [:0.2.2]
at org.jboss.profileservice.
deployment plugins . hotdeploy.HDScanner$HDScanAction. deploy (HDScanner . java:240) [:0.2.2]
at org.jboss.profileservice.deployment.hotdeploy.HDScanner$HDScanAction.complete(HDScanner.java:192) [:0.2.2]
at org.jboss.profileservice.management.TwoPCActionWrapper.doComplete(TwoPCActionWrapper.java:57) [:0.2.2]
at org.jboss.profileservice.management.
actions. AbstractTwoPhaseModificationAction DeploymentStartAction . complete doPrepare ( AbstractTwoPhaseModificationAction DeploymentStartAction .java: 74 98 )  [:0.2.2]
at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:
95 101 )  [:0.2.2]
at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87)
 [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234)
 [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213)
 [:0.2.2]
at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150)
 [:0.2.2]
at org.jboss.profileservice.
management plugins . AbstractActionController deploy . perform AbstractDeployHandler.startDeployments ( AbstractActionController AbstractDeployHandler .java: 135 168 )  [:0.2.2]
at org.jboss.profileservice.
deployment management . hotdeploy upload . HDScanner remoting . scan DeployHandlerDelegate.startDeployments ( HDScanner DeployHandlerDelegate .java: 146 74 )  [:0.2.2]
at org.jboss.profileservice.
deployment management . hotdeploy upload . HDScanner remoting . run DeployHandler.invoke ( HDScanner DeployHandler .java: 90 156 )  [:0.2.2]
at
 java  org . util jboss . concurrent remoting . Executors$RunnableAdapter ServerInvoker . call invoke ( Executors ServerInvoker .java: 441 967 )  [:1.6.0_22]
at
 java  org . util jboss . concurrent remoting . FutureTask$Sync transport . innerRunAndReset(FutureTask socket . java:317) [:1 ServerThread . 6.0_22]
at java.util.concurrent.FutureTask.runAndReset
completeInvocation ( FutureTask ServerThread .java: 150 791 )  [:1.6.0_22]
at
 java  org . util jboss . concurrent remoting . ScheduledThreadPoolExecutor$ScheduledFutureTask transport . access$101(ScheduledThreadPoolExecutor socket . java:98) [:1 ServerThread . 6.0_22]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic
processInvocation ( ScheduledThreadPoolExecutor ServerThread .java: 180 744 )  [:1.6.0_22]
at
 java  org . util jboss . concurrent remoting . ScheduledThreadPoolExecutor$ScheduledFutureTask transport . run(ScheduledThreadPoolExecutor socket . java:204) [:1 ServerThread . 6.0_22]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
dorun ( ThreadPoolExecutor ServerThread .java: 886 548 )  [:1.6.0_22]
at
 java  org . util jboss . concurrent remoting . ThreadPoolExecutor$Worker transport . run(ThreadPoolExecutor socket . java:908) [:1 ServerThread . 6.0_22]
at java.lang.Thread.
run( Thread ServerThread .java: 662 234 )  [:1.6.0_22]
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:
1063 1065 )  [:1.0.0-alpha-28]
at org.jboss.ejb3.EJBContainer.invokePostConstruct(EJBContainer.java:1396)
 [:1.7.17]
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.postConstruct(AOPBasedSingletonContainer.java:
760 762 )  [:1.0.0-alpha-28]
at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:133)
 [:1.0.0-alpha-28]
...
 70  79  more
Caused by: java.lang.NullPointerException
at org.jboss.ejb3.EJBContainer.getApplicationException(EJBContainer.java:509)
 [:1.7.17]
at org.jboss.ejb3.singleton.aop.impl.ConstructionInvocationContextAdapter.getApplicationException(ConstructionInvocationContextAdapter.java:62)
 [:1.0.0-alpha-28]
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:163)
 [:0.0.1]
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:251)
 [:0.0.1]
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:392)
 [:0.0.1]
at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:211)
 [:0.0.1]
at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52)
 [:0.0.1]
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
 [jboss-aop.jar:2.2.1.GA]
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
 [:1.0.0.GA]
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
 [jboss-aop.jar:2.2.1.GA]
at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47)
 [:1.7.17]
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
 [jboss-aop.jar:2.2.1.GA]
at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90)
 [:1.1.3]
at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.
InvocationContextInterceptor_z_setup_221024277 InvocationContextInterceptor_z_setup_259085584 .invoke( InvocationContextInterceptor_z_setup_221024277 InvocationContextInterceptor_z_setup_259085584 .java)  [:]
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
 [jboss-aop.jar:2.2.1.GA]
at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
 [:1.0.1]
at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80)
 [jboss-aop.jar:2.2.1.GA]
at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:
1059 1061 )
          ... 82 more
 
 
11.01 03:04:13,868 INFO
 [ org.jboss.web.tomcat.service.deployers.TomcatDeployment] (WorkerThread#0[144.202.230.44 : 1 53189]:) deploy, ctxPath=/test
11
. 01 03:04:14,060 INFO  [org.jboss.resteasy.cdi.CdiInjectorFactory] (WorkerThread# 0 [144 . 202.230.44:53189]:) Found BeanManager at java:comp/BeanManager
11.01 03:04:14,159 INFO  [org.jboss.resteasy.spi.ResteasyDeployment] (WorkerThread#
0 [144.202.230.44:53189]:) Deploying javax.ws.rs.core.Application: class com.ecolane.mpk.rest.RestApplication$Proxy$_$$_WeldClientProxy
11.01 03:04:14,195 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] (WorkerThread#0[144.202.230.44:53189]:) Binding the following Entries in Global JNDI:
 
 
          CallOutSenderBean/local
- alpha  EJB3.x Default Local Business Interface
          CallOutSenderBean/local
- 28 com.ecolane.mpk.scheduler.interfaces.CallOutSenderLocal - EJB3.x Local Business Interface
 
 
11.01 03:04:14,195 WARN  [org.jboss.ejb3.TimerServiceContainer
]  (WorkerThread#0[144.202.230.44:53189]:) EJBTHREE-2193: using deprecated TimerServiceFactory for restoring timers
11 . 01 03:04:14,219 WARN  [org . jboss .  73 more profileservice.management.upload.remoting.DeployHandler] (WorkerThread#0[144.202.230.44:53189]:) Failed to complete command: [start] for deployment: names=[test.war]: org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
 
 
DEPLOYMENTS IN ERROR:
  Deployment "startup-singleton-initiator:topLevelUnit=test.war,unit=test.war,bean=InitializerServiceBean" is in error due to the following reason(s): java.lang.NullPointerException
 
 
          at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1370)
          at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1316)
          at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:968)
          at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.checkComplete(MainDeployerPlugin.java:82)
          at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.checkComplete(ProfileControllerContext.java:138)
          at org.jboss.profileservice.plugins.deploy.actions.DeploymentStartAction.doPrepare(DeploymentStartAction.java:104)
          at org.jboss.profileservice.management.actions.AbstractTwoPhaseModificationAction.prepare(AbstractTwoPhaseModificationAction.java:101)
          at org.jboss.profileservice.management.ModificationSession.prepare(ModificationSession.java:87)
          at org.jboss.profileservice.management.AbstractActionController.internalPerfom(AbstractActionController.java:234)
          at org.jboss.profileservice.management.AbstractActionController.performWrite(AbstractActionController.java:213)
          at org.jboss.profileservice.management.AbstractActionController.perform(AbstractActionController.java:150)
          at org.jboss.profileservice.plugins.deploy.AbstractDeployHandler.startDeployments(AbstractDeployHandler.java:168)
          at org.jboss.profileservice.management.upload.remoting.DeployHandlerDelegate.startDeployments(DeployHandlerDelegate.java:74)
          at org.jboss.profileservice.management.upload.remoting.DeployHandler.invoke(DeployHandler.java:156)
          at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:967)
          at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791)
          at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744)
          at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548)
          at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
{code}
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira