public void expiryAlarm ( AORequestedTick requestedTick ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "expiryAlarm" , requestedTick ) ; boolean transitionOccured = false ; ArrayList < AORequestedTick > satisfiedTicks = null ; try { this . lock ( ) ; try { // it is possible that this event occurs after this object is closed. // it is safe to ignore it since we must have already transitioned the requestedTick to its final state if ( closed ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "expiryAlarm" ) ; return ; } transitionOccured = cancelRequestInternal ( requestedTick , true ) ; // If we expired the request and have more then process those // requests now if ( transitionOccured && ! listOfRequests . isEmpty ( ) ) satisfiedTicks = processQueuedMsgs ( null ) ; } finally { this . unlock ( ) ; } } catch ( SINotPossibleInCurrentConfigurationException e ) { // No FFDC code needed notifyException ( e ) ; } if ( transitionOccured ) { // parent needs to be informed parent . expiredRequest ( requestedTick . tick ) ; } if ( satisfiedTicks != null ) { // inform parent about satisfied ticks - outside lock int length = satisfiedTicks . size ( ) ; for ( int i = 0 ; i < length ; i ++ ) { AORequestedTick aotick = ( AORequestedTick ) satisfiedTicks . get ( i ) ; long tick = aotick . tick ; SIMPMessage m = aotick . getMessage ( ) ; parent . satisfiedRequest ( tick , m ) ; } } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "expiryAlarm" ) ; }
Callback from the AORequestedTick when the expiry alarm occurs .