public boolean delist(BeanO beanO)
                    throws TransactionRolledbackException
    {
        final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); // d532639.2

        if (isTraceOn && tc.isEntryEnabled())
            Tr.entry(tc, "delist",
                     new Object[] { Boolean.valueOf(globalTransaction), this, beanO });

        boolean removed = false; // d145697

        ensureActive();

        if (beanOs == null) { // d111555
            if (isTraceOn && tc.isEntryEnabled())
                Tr.exit(tc, "delist : false : no beanOs");
            return removed;
        }

        //synchronized(beanOs)  //d173022.2
        //{
        // Can't delist after beforeCompletion                          d132828
        if (origLock == true) {
            if (isTraceOn && tc.isEventEnabled()) // d144064
                Tr.event(tc, "Attempt to delist after beforeCompletion");
            throw new RuntimeException("Delisted after starting beforeCompletion");
        } else {
            // Only remove the BeanO from the transaction if it was already
            // enlisted. Note that only this specific BeanO is removed, not
            // just any BeanO that may have the same beanId.             d145697
            if (beanOList.contains(beanO)) {
                beanOs.remove(beanO.beanId);
                beanOList.remove(beanOList.indexOf(beanO));
                afterList.remove(afterList.indexOf(beanO));
                removed = true;

                // If CMP 2.0 bean, remove from CMP 2.0 list that is sorted
                // by home.... used for intelligent flush.             d140003.22
                if (beanO.home.beanMetaData.cmpVersion == InternalConstants.CMP_VERSION_2_X)
                {
                    ArrayList<BeanO> bundle =
                                    homesForPMManagedBeans.get(beanO.home);

                    bundle.remove(bundle.lastIndexOf(beanO));
                }
            }
        }
        //}

        if (isTraceOn && tc.isEntryEnabled()) // d144064
            Tr.exit(tc, "delist : " + removed);

        return removed; // d145697
    }
public boolean delist ( BeanO beanO ) throws TransactionRolledbackException { final boolean isTraceOn = TraceComponent . isAnyTracingEnabled ( ) ; if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . entry ( tc , "delist" , new Object [ ] { Boolean . valueOf ( globalTransaction ) , this , beanO } ) ; boolean removed = false ; ensureActive ( ) ; if ( beanOs == null ) { if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "delist : false : no beanOs" ) ; return removed ; } if ( origLock == true ) { if ( isTraceOn && tc . isEventEnabled ( ) ) Tr . event ( tc , "Attempt to delist after beforeCompletion" ) ; throw new RuntimeException ( "Delisted after starting beforeCompletion" ) ; } else { if ( beanOList . contains ( beanO ) ) { beanOs . remove ( beanO . beanId ) ; beanOList . remove ( beanOList . indexOf ( beanO ) ) ; afterList . remove ( afterList . indexOf ( beanO ) ) ; removed = true ; if ( beanO . home . beanMetaData . cmpVersion == InternalConstants . CMP_VERSION_2_X ) { ArrayList < BeanO > bundle = homesForPMManagedBeans . get ( beanO . home ) ; bundle . remove ( bundle . lastIndexOf ( beanO ) ) ; } } } if ( isTraceOn && tc . isEntryEnabled ( ) ) Tr . exit ( tc , "delist : " + removed ) ; return removed ; }
Remove the given <code>BeanO</code> in this container transaction.

@return true if the specified BeanO was successfully removed from the
transaction; returns false if the bean was not enlisted.