private void raiseErrorEvent(int dialogTimeoutError,SIPClientTransaction clientTransaction){
  SIPDialogErrorEvent newErrorEvent;
  Iterator<SIPDialogEventListener> listenerIterator;
  SIPDialogEventListener nextListener;
  newErrorEvent=new SIPDialogErrorEvent(this,dialogTimeoutError);
  newErrorEvent.setClientTransaction(clientTransaction);
synchronized (eventListeners) {
    listenerIterator=eventListeners.iterator();
    while (listenerIterator.hasNext()) {
      nextListener=(SIPDialogEventListener)listenerIterator.next();
      nextListener.dialogErrorEvent(newErrorEvent);
    }
  }
  eventListeners.clear();
  if (dialogTimeoutError != SIPDialogErrorEvent.DIALOG_ACK_NOT_SENT_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent.DIALOG_ACK_NOT_RECEIVED_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent.EARLY_STATE_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent.DIALOG_REINVITE_TIMEOUT) {
    delete();
  }
  stopTimer();
}

private void raiseErrorEvent ( int dialogTimeoutError , SIPClientTransaction clientTransaction ) { SIPDialogErrorEvent newErrorEvent ; Iterator < SIPDialogEventListener > listenerIterator ; SIPDialogEventListener nextListener ; newErrorEvent = new SIPDialogErrorEvent ( this , dialogTimeoutError ) ; newErrorEvent . setClientTransaction ( clientTransaction ) ; synchronized ( eventListeners ) { listenerIterator = eventListeners . iterator ( ) ; while ( listenerIterator . hasNext ( ) ) { nextListener = ( SIPDialogEventListener ) listenerIterator . next ( ) ; nextListener . dialogErrorEvent ( newErrorEvent ) ; } } eventListeners . clear ( ) ; if ( dialogTimeoutError != SIPDialogErrorEvent . DIALOG_ACK_NOT_SENT_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent . DIALOG_ACK_NOT_RECEIVED_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent . EARLY_STATE_TIMEOUT && dialogTimeoutError != SIPDialogErrorEvent . DIALOG_REINVITE_TIMEOUT ) { delete ( ) ; } stopTimer ( ) ; }
raise a dialog timeout if an ack has not been sent or received
