[ https://issues.apache.org/jira/browse/JCLOUDS-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17926055#comment-17926055 ]
Andrew Gaul commented on JCLOUDS-1646: -------------------------------------- Which kinds of blobs have this behavior? The code checks {{gcsObject == null}} above so I don't understand the cause. This appears to be a regression from 2.6.0 since I added this in 6b5185536586cd89c9645c37052d60c4f6c60a73. Can you downgrade to 2.6.0 as a workaround? > 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)