protected <E extends Throwable> void withWriteLock(@NotNull ThrowableRunnable<E> runnable) throws E {
    ConcurrencyUtil.withLock(context.writeLock(), runnable);
  }
protected <E extends Throwable> void withWriteLock(@NotNull ThrowableRunnable<E> runnable)