public void remove() {
	
		if (doTraceLogs) {
			log.trace("remove()");
		}

		// removes the SBB entity from all Activity Contexts.
		for (Iterator<ActivityContextHandle> i = this.getActivityContexts().iterator(); i.hasNext();) {
			ActivityContextHandle ach = i.next();
			// get ac
			ActivityContext ac = sleeContainer.getActivityContextFactory().getActivityContext(ach);
			// remove the sbb entity from the attachment set.
			if (ac != null && !ac.isEnding()) {
				ac.detachSbbEntity(this.sbbeId);
			}
			// no need to remove ac from entity because the entity is being
			// removed
		}

		// It invokes the appropriate life cycle methods (see Section 6.3) of an
		// SBB object that caches the SBB entity state.
		boolean invokingServiceSet = SleeThreadLocals
				.getInvokingService() != null;
		if (!invokingServiceSet) {
			SleeThreadLocals.setInvokingService(getServiceId());
		}
		try {
			if (this.sbbObject == null) {
				this.assignSbbObject();
			}
			removeAndReleaseSbbObject();
		} catch (Exception e) {
			try {
				sleeContainer.getTransactionManager().setRollbackOnly();
				this.trashObject();
			} catch (Exception e2) {
				throw new RuntimeException("Transaction Failure.", e2);
			}
		} finally {
			if (!invokingServiceSet) {
				SleeThreadLocals.setInvokingService(null);
			}
		}

		// remove children
		for (SbbEntityID childSbbEntityId : cacheData.getAllChildSbbEntities()) {
			SbbEntity childSbbEntity = sbbEntityFactory.getSbbEntity(childSbbEntityId,false);
			if (childSbbEntity != null) {
				// recreate the sbb entity and remove it
				sbbEntityFactory.removeSbbEntity(childSbbEntity,false);
			}
		}

		cacheData.remove();
				
		if (log.isDebugEnabled()) {
			log.debug("Removed sbb entity " + getSbbEntityId());
		}
	}
public void remove ( ) { if ( doTraceLogs ) { log . trace ( "remove()" ) ; } for ( Iterator < ActivityContextHandle > i = this . getActivityContexts ( ) . iterator ( ) ; i . hasNext ( ) ; ) { ActivityContextHandle ach = i . next ( ) ; ActivityContext ac = sleeContainer . getActivityContextFactory ( ) . getActivityContext ( ach ) ; if ( ac != null && ! ac . isEnding ( ) ) { ac . detachSbbEntity ( this . sbbeId ) ; } } boolean invokingServiceSet = SleeThreadLocals . getInvokingService ( ) != null ; if ( ! invokingServiceSet ) { SleeThreadLocals . setInvokingService ( getServiceId ( ) ) ; } try { if ( this . sbbObject == null ) { this . assignSbbObject ( ) ; } removeAndReleaseSbbObject ( ) ; } catch ( Exception e ) { try { sleeContainer . getTransactionManager ( ) . setRollbackOnly ( ) ; this . trashObject ( ) ; } catch ( Exception e2 ) { throw new RuntimeException ( "Transaction Failure." , e2 ) ; } } finally { if ( ! invokingServiceSet ) { SleeThreadLocals . setInvokingService ( null ) ; } } for ( SbbEntityID childSbbEntityId : cacheData . getAllChildSbbEntities ( ) ) { SbbEntity childSbbEntity = sbbEntityFactory . getSbbEntity ( childSbbEntityId , false ) ; if ( childSbbEntity != null ) { sbbEntityFactory . removeSbbEntity ( childSbbEntity , false ) ; } } cacheData . remove ( ) ; if ( log . isDebugEnabled ( ) ) { log . debug ( "Removed sbb entity " + getSbbEntityId ( ) ) ; } }
/*
(non-Javadoc)
@see org.mobicents.slee.runtime.sbbentity.SbbEntity#remove()