protected  long getNextCallId() {
    final ReentrantLock l = lock;
    l.lock();
    try {
      if (++prevCallId > Long.MAX_VALUE) {
        prevCallId = Long.MIN_VALUE;
      }
      return prevCallId;
    }
    finally {
      l.unlock();
    }
  }