Aliaksandr created JCLOUDS-1646: ----------------------------------- Summary: GCP BlobStore fails to get blob Key: JCLOUDS-1646 URL: https://issues.apache.org/jira/browse/JCLOUDS-1646 Project: jclouds Issue Type: Bug Components: jclouds-blobstore Affects Versions: 2.7.0 Reporter: Aliaksandr
*Steps to reproduce* * Configure blob store using `google-cloud-storage` * Try to get a blob which doesn't exist * The error occurred something like below {noformat} java.lang.NullPointerException: Cannot invoke "java.lang.Long.longValue()" because the return value of "org.jclouds.io.MutableContentMetadata.getContentLength()" is null at org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore.getBlob(GoogleCloudStorageBlobStore.java:254) at org.jclouds.blobstore.internal.BaseBlobStore.getBlob(BaseBlobStore.java:217) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(native) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:568) at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:50) at jdk.proxy3.$Proxy129.getBlob(unknown) {noformat} *Root cause* The attribute `Content-Length` might be null in `org.jclouds.io.ContentMetadata#getContentLength` but the code does a cast to primitive type(see `org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore#getBlob`): {noformat} Payload payload = api.getObjectApi().download(container, Strings2.urlEncode(name), httpOptions).getPayload(); long contentLength = payload.getContentMetadata().getContentLength(); {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)