code: @Override
    public WriteLockedOffHeapClockCache<K, V> newInstance() {
      StorageEngine<? super K, ? super V> storageEngine = storageEngineFactory.newInstance();
      try {
        if (evictionListener == null) {
          return new WriteLockedOffHeapClockCache<>(tableSource, storageEngine, tableSize);
        } else {
          return new EvictionListeningWriteLockedOffHeapClockCache<>(evictionListener, tableSource, storageEngine, tableSize);
        }
      } catch (RuntimeException e) {
        storageEngine.destroy();
        throw e;
      }
    }
docs: Creates a new {@code WriteLockedOffHeapClockCache} for use in a
  segmented cache.
  
  @return a new {@code WriteLockedOffHeapClockCache}