Azure / Azure/azure-documentdb-java

Update using PoJo setters result in a "NullPointerException"

Đang mở
#24 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Java
Star
51
Fork
52
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Hi
the [todo tutorial](https://azure.microsoft.com/en-us/documentation/articles/documentdb-java-application/#UseService) show an "updateTodo" sample with the following comment:

```
// You can update the document as a JSON document directly.
// For more complex operations - you could de-serialize the document in
// to a POJO, update the POJO, and then re-serialize the POJO back in to
// a document.
```

I want to update my pojo using the java object (not the documentdb "Document" setters)
When I do that,

```
Document myDoc = getDocumentById(myId);
// De-serialize the document in to a TodoItem.
MyObject my = gson.fromJson(myDoc .toString(), MyObject.class);
LOG.debug("update object {}", my);
my.setName("IWantToUsePojoPlease");
Document updDocument = new Document(gson.toJson(my));
updDocument.setResourceId(myDoc.getResourceId());
updDocument.setId(myDoc.getId());
updDocument.set("entityType", ENTITY_TYPE);
try {
// Persist/replace the updated document.
updDocument = getDC().replaceDocument(updDocument, null).getResource();
```

I got the following error:

```
java.lang.NullPointerException
at com.microsoft.azure.documentdb.DocumentClient.trimBeginingAndEndingSlashes(DocumentClient.java:2160)
at com.microsoft.azure.documentdb.DocumentClient.joinPath(DocumentClient.java:2148)
at com.microsoft.azure.documentdb.DocumentClient.replaceDocument(DocumentClient.java:503)
```

I think this is a bug. Maybe the new Document instance loose the "_self"(SELF_LINK) reference and that's why the replace doesn't work. How could we keep this link ? Is it possible to fix this issue and add a second update sample using PoJo ?

If possible, I would like to avoid an update that will use Document.set(FIELD,VALUE) method but use PoJo (business) setters.

Regards

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.