diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2023-04-28 13:07:55 +0200 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2023-04-28 13:07:55 +0200 |
commit | ec495469099fc26c64736fd103facc25f8370a26 (patch) | |
tree | b79057f3f3baa05d4ba65968598563867a7464f2 /document/src | |
parent | 8cf2f720a10e3d06c69fd43a6fdfab1a59274036 (diff) |
pick up create flag for put operations
Diffstat (limited to 'document/src')
-rw-r--r-- | document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java | 9 | ||||
-rw-r--r-- | document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java | 6 |
2 files changed, 10 insertions, 5 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java index c406bcdb2b3..663c8f47b43 100644 --- a/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java +++ b/document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java @@ -73,10 +73,13 @@ public class VespaJsonDocumentReader { throw JsonReaderException.addDocId(e, documentParseInfo.documentId); } if (documentParseInfo.create.isPresent()) { - if (! (documentOperation instanceof DocumentUpdate update)) { - throw new IllegalArgumentException("Could not set create flag on non update operation."); + if (documentOperation instanceof DocumentUpdate update) { + update.setCreateIfNonExistent(documentParseInfo.create.get()); + } else if (documentOperation instanceof DocumentPut put) { + put.setCreateIfNonExistent(documentParseInfo.create.get()); + } else { + throw new IllegalArgumentException("Could not set create flag on operation."); } - update.setCreateIfNonExistent(documentParseInfo.create.get()); } return new ParsedDocumentOperation(documentOperation, fullyApplied); } diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java index a761a9adfb6..96b5d2c1fb5 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java @@ -893,7 +893,7 @@ public class JsonReaderTestCase { } - @Test(expected=RuntimeException.class) + @Test public void testCreateIfNonExistentInPut() { JsonReader r = createReader(inputJson("[{", " 'create':true,", @@ -902,7 +902,9 @@ public class JsonReaderTestCase { " 'nalle': 'bamse' },", " 'put': 'id:unittest:smoke::whee'", "}]")); - r.next(); + var op = r.next(); + var put = (DocumentPut) op; + assertTrue(put.getCreateIfNonExistent()); } @Test |