public void returnFury(Fury fury) {
    Objects.requireNonNull(fury);
    try {
      lock.lock();
      idleCacheQueue.add(fury);
      activeCacheNumber.decrementAndGet();
      furyCondition.signalAll();
    } catch (Exception e) {
      LOG.error(e.getMessage(), e);
      throw new RuntimeException(e);
    } finally {
      lock.unlock();
    }
  }
@Test
  public void testReturnFury() {
    Function<ClassLoader, Fury> furyFactory = getFuryFactory();
    Fury fury = furyFactory.apply(getClass().getClassLoader());
    ClassLoaderFuryPooled pooled = getPooled(4, 8, furyFactory);
    pooled.returnFury(fury);
  }