private void callTransactionalLifecycleInterceptors ( InterceptorProxy [ ] proxies , int methodId ) throws RemoteException { final boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; LifecycleInterceptorWrapper wrapper = new LifecycleInterceptorWrapper ( container , this ) ; EJSDeployedSupport s = new EJSDeployedSupport ( ) ; // F743761.CodRv - Exceptions from lifecycle callback interceptors do not // throw application exceptions. s . ivIgnoreApplicationExceptions = true ; try { container . preInvokeForLifecycleInterceptors ( wrapper , methodId , s , this ) ; // F743-1751CodRev - Inline callLifecycleInterceptors. We need to // manage HandleList separately. if ( isTraceOn ) // d527372 { if ( TEBeanLifeCycleInfo . isTraceEnabled ( ) ) TEBeanLifeCycleInfo . traceEJBCallEntry ( LifecycleInterceptorWrapper . TRACE_NAMES [ methodId ] ) ; if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "callLifecycleInterceptors" ) ; } InvocationContextImpl < ? > inv = getInvocationContext ( ) ; BeanMetaData bmd = home . beanMetaData ; inv . doLifeCycle ( proxies , bmd . _moduleMetaData ) ; // F743-14982 } catch ( Throwable t ) { s . setUncheckedLocalException ( t ) ; } finally { if ( isTraceOn && TEBeanLifeCycleInfo . isTraceEnabled ( ) ) { TEBeanLifeCycleInfo . traceEJBCallExit ( LifecycleInterceptorWrapper . TRACE_NAMES [ methodId ] ) ; } container . postInvokeForLifecycleInterceptors ( wrapper , methodId , s ) ; } }
Invoke PostConstruct or PreDestroy interceptors associated with this bean using the transaction and security context specified in the method info .