Azure / Azure/azure-cosmosdb-java

JDK 8 bean support

Open
#327 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
59
Forks
68
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
Currently RxDocumentClientImpl uses a simple jackson object mapper, which does not support JDK8 classes like Optional.

**To Reproduce**
* Create a bean with an Optional field
* Store said bean

**Expected behavior**
It would serialize and deserialize correctly. Possible allow the user configure their own ObjectMapper to fix this.

**Actual behavior**
```
java.lang.ClassCastException: com.fasterxml.jackson.databind.node.TextNode cannot be cast to com.fasterxml.jackson.databind.node.ObjectNode
at com.microsoft.azure.cosmosdb.JsonSerializable.fromJson(JsonSerializable.java:494) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.JsonSerializable.(JsonSerializable.java:78) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.Resource.(Resource.java:84) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.Document.(Document.java:63) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.Document.FromObject(Document.java:72) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.BridgeInternal.documentFromObject(BridgeInternal.java:56) ~[azure-cosmosdb-commons-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.rx.internal.RxDocumentClientImpl.getCreateDocumentRequest(RxDocumentClientImpl.java:1031) ~[azure-cosmosdb-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.rx.internal.RxDocumentClientImpl.createDocumentInternal(RxDocumentClientImpl.java:1164) ~[azure-cosmosdb-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.rx.internal.RxDocumentClientImpl.lambda$createDocument$23(RxDocumentClientImpl.java:1155) ~[azure-cosmosdb-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.rx.internal.ObservableHelper.lambda$inlineIfPossibleAsObs$1(ObservableHelper.java:55) ~[azure-cosmosdb-gateway-2.6.4.jar:na]
at com.microsoft.azure.cosmosdb.rx.internal.BackoffRetryUtility.lambda$executeRetry$2(BackoffRetryUtility.java:102) ~[azure-cosmosdb-gateway-2.6.4.jar:na]
```

**Environment summary**
SDK Version: 2.6.4
Java JDK version: 8
OS Version (e.g. Windows, Linux, MacOSX): Windows

**Additional context**
/

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.