protected @Nullable Map<Key, Value> getNullableIndexedData(int fileId) throws IOException, StorageException {
    if (isDisposed()) {
      return null;
    }
    if (mySingleEntryIndex) {
      // there is no forward index for SingleEntryFileBasedIndexExtension, so get an entry from inverted index
      // (it _must_ be <=1 entry there, with Key=(Integer)fileId)
      @SuppressWarnings("unchecked")
      Key key = (Key)(Object)fileId;
      Ref<Map<Key, Value>> result = new Ref<>(Collections.emptyMap());
      ValueContainer<Value> container = getData(key);
      container.forEach((id, value) -> {
        boolean acceptNullValues = ((SingleEntryIndexer<?>)myIndexer).isAcceptNullValues();
        if (value != null || acceptNullValues) {
          result.set(Collections.singletonMap(key, value));
        }
        return false;
      });
      return result.get();
    }
    if (getForwardIndexAccessor() instanceof AbstractMapForwardIndexAccessor<Key, Value, ?> forwardIndexAccessor) {
      ByteArraySequence serializedInputData = getForwardIndex().get(fileId);
      return forwardIndexAccessor.convertToInputDataMap(fileId, serializedInputData);
    }
    getLogger().error("Can't fetch indexed data for index " + myIndexId.getName());
    return null;
  }
protected @Nullable Map<Key, Value> getNullableIndexedData(int fileId)