code: @Override
      protected void applyValueUpdate(final T value) throws NotAvailableException {
  
          if(value == null) {
              throw new NotAvailableException("Value");
          }
  
          synchronized (VALUE_LOCK) {
              this.value = value;
              this.valueFuture.complete(value);
              VALUE_LOCK.notifyAll();
          }
      }
docs: {@inheritDoc}
  
  @param value {@inheritDoc}