public void forcePut(E e) throws InterruptedException {
    if (e == null) {
      throw new NullPointerException();
    }
    // Note: convention in all put/take/etc is to preset local var
    // holding count negative to indicate failure unless set.
    int c = -1;
    final ReentrantLock putLock = this.putLock;
    final AtomicInteger count = this.count;
    putLock.lockInterruptibly();
    try {
      enqueue(e);
      c = count.getAndIncrement();
      if (c + 1 < capacity) {
        notFull.signal();
      }
    } finally {
      putLock.unlock();
    }
    if (c == 0) {
      signalNotEmpty();
    }
  }
Inserts the specified element at the tail of this queue even if the queue is currently at its
capacity. // GEMFIRE addition
geode-core/src/main/java/org/apache/geode/internal/cache/ForceableLinkedBlockingQueue.java