summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2023-04-28 13:07:55 +0200
committerHåvard Pettersen <havardpe@yahooinc.com>2023-04-28 13:07:55 +0200
commitec495469099fc26c64736fd103facc25f8370a26 (patch)
treeb79057f3f3baa05d4ba65968598563867a7464f2 /document
parent8cf2f720a10e3d06c69fd43a6fdfab1a59274036 (diff)
pick up create flag for put operations
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/json/readers/VespaJsonDocumentReader.java9
-rw-r--r--document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java6
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