code: protected void fixPropertyValues(PropertyData prop) throws RepositoryException
     {
        final List<ValueData> vals = prop.getValues();
        for (int i = 0; i < vals.size(); i++)
        {
           ValueData vd = vals.get(i);
           if (!vd.isByteArray())
           {
              // check if file is correct
              FilePersistedValueData fpvd = (FilePersistedValueData)vd;
              if (fpvd.getFile() == null)
              {
                 if (fpvd instanceof StreamPersistedValueData && ((StreamPersistedValueData)fpvd).getUrl() != null)
                    continue;
                 // error, value not found
                 throw new RepositoryException("Value cannot be found in storage for cached Property "
                    + prop.getQPath().getAsString() + ", orderNumb:" + vd.getOrderNumber() + ", pversion:"
                    + prop.getPersistedVersion());
              }
           }
        }
     }
docs: Fix Property BLOB Values if someone has null file (swap actually)
  by reading the content from the storage (VS or JDBC no matter).
  
  @param prop PropertyData
  @throws RepositoryException