protected void interruptAllWaitingReplyThreads() {
    Iterator iter = waitingReplyThreads.values().iterator();

    while (iter.hasNext()) {
      WaitingWorkerInfo waitingWorkerInfo = (WaitingWorkerInfo) iter.next();
      if (trace > API_TRACE_NONE) {
        Log.current.println("Interrupting reply worker " + waitingWorkerInfo.getWorker());
      }
      try {
        waitingWorkerInfo.worker.cancel();
      } catch (java.io.IOException xcpt) {
        if (trace > API_TRACE_NONE) {
          Log.current.println("Could not interrupt reply worker " + waitingWorkerInfo.getWorker() + ": exception: " + xcpt);
        }
      }
    }
  }