On Wed, Aug 22, 2018 at 11:33:48AM +0200, Jean Helou wrote:
> Hello,
>
> I am currently working on integrating JClouds to create a blobstore storage
> for apache james. I noticed that using
>
> blobStore.streamBlob("container", "wrongid");
>
> yields a NullPointerException when trying to access a blob which doesn't
> exist. The NPE is raised in RegionScopedSwiftBlobStore when the streamBlob
> method tries to read the blob metadata.
>
> I think it should null check and return null or an empty inputstream but
> not raise an NPE
>
> see https://github.com/jclouds/jclouds
> /blob/46759f8bda00f86ef934345846e22e2bd2b0d7ae/apis/openstack-swift/src/main/java/org/
> jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java#L691
>
> for now I work around by using
>
> blobStore.getBlob("container","id");
>
> doing the nullcheck myself and then getting the inputstream from the blob's
> payload.
Sorry for the late reply but I find the implementation of
BlobStore.streamBlob confusing since it lives in the portable
abstraction yet only has one implementation. I recommend using getBlob
which actually does stream the payload.
--
Andrew Gaul
http://gaul.org/