The ByteArraySource implementation return a new stream instance for each call to getStream() but canReopen returns false which contradicts the Blob interface documentation and make StreamingBlob.isPersistent() / StreamingBlob.persist() usage sub optimal (create temporary files when not required).
The fix is trivial but need update tests in nuxeo-core-api