public boolean request(InterruptRequest interruptRequest){
  FrInterruptRequest newInterruptRequest=(FrInterruptRequest)interruptRequest;
synchronized (interruptRequestQueue) {
    for (    InterruptRequest currentInterruptRequest : interruptRequestQueue) {
      FrInterruptRequest currentFrInterruptRequest=(FrInterruptRequest)currentInterruptRequest;
      if (currentFrInterruptRequest.getInterruptNumber() == newInterruptRequest.getInterruptNumber()) {
        if ((newInterruptRequest.isNMI() && !currentFrInterruptRequest.isNMI()) || (newInterruptRequest.getICR() < currentFrInterruptRequest.getICR())) {
          interruptRequestQueue.remove(currentFrInterruptRequest);
          break;
        }
 else {
          return false;
        }
      }
    }
    interruptRequestQueue.add(newInterruptRequest);
    Collections.sort(interruptRequestQueue);
    return true;
  }
}

public boolean request ( InterruptRequest interruptRequest ) { FrInterruptRequest newInterruptRequest = ( FrInterruptRequest ) interruptRequest ; synchronized ( interruptRequestQueue ) { for ( InterruptRequest currentInterruptRequest : interruptRequestQueue ) { FrInterruptRequest currentFrInterruptRequest = ( FrInterruptRequest ) currentInterruptRequest ; if ( currentFrInterruptRequest . getInterruptNumber ( ) == newInterruptRequest . getInterruptNumber ( ) ) { if ( ( newInterruptRequest . isNMI ( ) && ! currentFrInterruptRequest . isNMI ( ) ) || ( newInterruptRequest . getICR ( ) < currentFrInterruptRequest . getICR ( ) ) ) { interruptRequestQueue . remove ( currentFrInterruptRequest ) ; break ; } else { return false ; } } } interruptRequestQueue . add ( newInterruptRequest ) ; Collections . sort ( interruptRequestQueue ) ; return true ; } }
this is a way to cause completely custom ( or even bogus ) interruptrequests
