FairCallQueue extends AbstractQueue<E> implements BlockingQueue<E> { @Override public int size() { return semaphore.availablePermits(); } FairCallQueue(int priorityLevels, int capacity, String ns,
      Configuration conf); @Override boolean add(E e); @Override void put(E e); @Override boolean offer(E e, long timeout, TimeUnit unit); @Override boolean offer(E e); @Override E take(); @Override E poll(long timeout, TimeUnit unit); @Override E poll(); @Override E peek(); @Override int size(); @Override Iterator<E> iterator(); @Override int drainTo(Collection<? super E> c, int maxElements); @Override int drainTo(Collection<? super E> c); @Override int remainingCapacity(); int[] getQueueSizes(); long[] getOverflowedCalls(); @VisibleForTesting void setMultiplexer(RpcMultiplexer newMux); @Deprecated
  static final int IPC_CALLQUEUE_PRIORITY_LEVELS_DEFAULT; @Deprecated
  static final String IPC_CALLQUEUE_PRIORITY_LEVELS_KEY; static final Logger LOG; }
@Test public void testPutOverflows() throws InterruptedException { assertCanPut(fcq, 8, 8); assertEquals(8, fcq.size()); }
@Test public void testPutBlocksWhenAllFull() throws InterruptedException { assertCanPut(fcq, 10, 10); assertEquals(10, fcq.size()); assertCanPut(fcq, 0, 1); }