public final boolean removeDeliveryDelayable ( DeliveryDelayable deliveryDelayable ) throws SevereMessageStoreException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) { SibTr . entry ( tc , "removeDeliveryDelayable" , "objId=" + ( deliveryDelayable == null ? "null" : String . valueOf ( deliveryDelayable . deliveryDelayableGetID ( ) ) ) + " ET=" + ( deliveryDelayable == null ? "null" : String . valueOf ( deliveryDelayable . deliveryDelayableGetDeliveryDelayTime ( ) ) ) + " addEnabled=" + addEnabled ) ; } boolean reply = false ; boolean cancelled = false ; // Ignore this request if the DeliveryDelayManager has ended or the given entry is null synchronized ( lockObject ) { if ( addEnabled && deliveryDelayable != null ) { long deliveryDelay = deliveryDelayable . deliveryDelayableGetDeliveryDelayTime ( ) ; DeliveryDelayableReference delayedDeliverableRef = new DeliveryDelayableReference ( deliveryDelayable ) ; delayedDeliverableRef . setDeliveryDelayTime ( deliveryDelay ) ; // Remove the DeliveryDelayable from the deliveryDelay index reply = deliveryDelayIndex . remove ( delayedDeliverableRef ) ; if ( reply && deliveryDelayIndex . size ( ) <= 0 ) // We just removed the last entry { if ( deliveryDelayAlarm != null ) { deliveryDelayAlarm . cancel ( ) ; alarmScheduled = false ; cancelled = true ; } } } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "removeDeliveryDelayable" , "deliveryDelayIndexSize=" + deliveryDelayIndex . size ( ) + " reply=" + reply + " cancelled=" + cancelled ) ; return reply ; }
Remove an DeliveryDelayable reference for an item from the deliveryDelay index .