protected void completeRemoveMethod ( ContainerTx tx ) // d647928 throws RemoteException { final boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "completeRemoveMethod: " + this ) ; long pmiCookie = 0 ; if ( pmiBean != null ) { pmiCookie = pmiBean . initialTime ( EJBPMICollaborator . REMOVE_RT ) ; } EJBThreadData threadData = EJSContainer . getThreadData ( ) ; // A remove method (@Remove) was called, and now that the method // (and transaction) have completed, remove the bean. 390657 threadData . pushContexts ( this ) ; try { remove ( ) ; } catch ( RemoveException rex ) { // This would be an internal EJB Container error, as RemoveException // should only be thrown if the bean is in a global tx, and since // this is afterCompletion, that cannot be true. However, since this // is on the throws clause, it must be handled.... just wrap it. throw ExceptionUtil . EJBException ( "Remove Failed" , rex ) ; } finally { if ( tx != null ) { tx . ivRemoveBeanO = null ; } threadData . popContexts ( ) ; if ( pmiBean != null ) { pmiBean . finalTime ( EJBPMICollaborator . REMOVE_RT , pmiCookie ) ; } if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "completeRemoveMethod" ) ; } }
Completes the removal of the bean after a Remove method has been called .