[ https://issues.apache.org/jira/browse/JCLOUDS-1646 ]
Aliaksandr deleted comment on JCLOUDS-1646: ------------------------------------- was (Author: JIRAUSER304394): I suspect gcsObject can never be null because [https://cloud.google.com/storage/docs/json_api/v1/objects/get] {noformat} By default, this responds with an object resource in the response body. If you provide the URL parameter alt=media, then it will respond with the object data in the response body.{noformat} > 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 > Priority: Major > Labels: google-cloud-storage > > *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)