Skip to content

Quotes around etag value failing Json parsing #142

Description

@pamu

Note: https://github.com/rickle-msft asked me to open issue here.

Issue also discussed here (Azure/azure-storage-java#419)

Which service(blob, file, queue, table) does this issue concern?

- Azure Storage service (While experimenting with Azurite blob)

Which version of the SDK was used?

- azure-storage-blob
- 10.3.0

What problem was encountered?

Quotes around etag value causing problem with Json parsing in Java azure blob library

az storage blob upload -c mappings -n store_mappings.csv -f user_mappings.csv --connection-string 'DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;'
Finished[#############################################################]  100.0000%
{
  "etag": "\"snXFBAfcscEdTKjoHmpCiWKsKz8\"",
  "lastModified": "2019-01-02T21:49:21+00:00"
}
[error] Caused by: com.microsoft.rest.v2.RestException: HTTP response has malformed headers
[error] 	at com.microsoft.rest.v2.protocol.HttpResponseDecoder.decode(HttpResponseDecoder.java:68)
[error] 	at com.microsoft.rest.v2.policy.DecodingPolicyFactory$DecodingPolicy.lambda$sendAsync$0(DecodingPolicyFactory.java:34)
[error] 	at io.reactivex.internal.operators.single.SingleFlatMap$SingleFlatMapCallback.onSuccess(SingleFlatMap.java:76)
[error] 	at io.reactivex.internal.operators.single.SingleDoOnSuccess$DoOnSuccess.onSuccess(SingleDoOnSuccess.java:59)
[error] 	at io.reactivex.internal.operators.single.SingleDoOnError$DoOnError.onSuccess(SingleDoOnError.java:52)
[error] 	at io.reactivex.internal.operators.single.SingleCreate$Emitter.onSuccess(SingleCreate.java:68)
[error] 	at com.microsoft.rest.v2.http.NettyClient$HttpClientInboundHandler.channelRead(NettyClient.java:865)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[error] 	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
[error] 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
[error] 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297)
[error] 	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413)
[error] 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265)
[error] 	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[error] 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
[error] 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
[error] 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
[error] 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
[error] 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:646)
[error] 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:581)
[error] 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)
[error] 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:460)
[error] 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
[error] 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[error] 	at java.lang.Thread.run(Thread.java:748)
[error] Caused by: com.fasterxml.jackson.databind.JsonMappingException: Failed to decode VALUE_STRING as base64 (MIME-NO-LINEFEEDS): Illegal character '"' (code 0x22) in base64 content
[error]  at [Source: {"date":"Wed, 02 Jan 2019 21:55:15 GMT","content-length":"31","x-ms-version":"2016-05-31","Connection":"keep-alive","x-ms-blob-content-md5":"undefined","x-ms-request-server-encrypted":"false","x-ms-blob-type":"BlockBlob","last-modified":"Wed, 02 Jan 2019 10:58:32 GMT","content-range":"bytes 0-30/31","etag":"\"LjOfgK/d1rTN162pjZZKb9eXKQw\"","content-type":"text/csv; charset=utf-8","accept-ranges":"bytes","x-ms-request-id":"16393210-0ed9-11e9-a716-598540133f93","X-Powered-By":"Express"}; line: 1, column: 152]

Metadata

Metadata

Assignees

Labels

legacyLegacy Azurite V2 and previous versionsquestionFurther information is requestedv3.3Issues to fix in v3.3

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions