summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-09-22 16:38:43 +0200
committerJon Marius Venstad <venstad@gmail.com>2020-09-24 21:38:03 +0200
commit7d280adf22a83d5446153820a42258d352418269 (patch)
tree543d8d33a186f4cd15b60e53441b7aa8a6cf83bd /documentapi
parentba878c027385ac2db61dd849d39705c704786f62 (diff)
Use NOT_FOUND in DocumentResponse as well — as success
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/abi-spec.json2
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/DocumentResponse.java21
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java4
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java1
4 files changed, 12 insertions, 16 deletions
diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json
index 7a0a5fa0dd7..23c3bd3c1b8 100644
--- a/documentapi/abi-spec.json
+++ b/documentapi/abi-spec.json
@@ -159,10 +159,10 @@
"public void <init>(long)",
"public void <init>(long, com.yahoo.document.Document)",
"public void <init>(long, java.lang.String, boolean)",
- "public void <init>(long, java.lang.String, com.yahoo.documentapi.Response$Outcome)",
"public void <init>(long, com.yahoo.document.Document, java.lang.String, boolean)",
"public void <init>(long, com.yahoo.document.Document, java.lang.String, com.yahoo.documentapi.Response$Outcome)",
"public com.yahoo.document.Document getDocument()",
+ "public boolean isSuccess()",
"public int hashCode()",
"public boolean equals(java.lang.Object)",
"public java.lang.String toString()"
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/DocumentResponse.java b/documentapi/src/main/java/com/yahoo/documentapi/DocumentResponse.java
index a4d81a5e145..7fa9707f6ed 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/DocumentResponse.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/DocumentResponse.java
@@ -26,8 +26,7 @@ public class DocumentResponse extends Response {
* @param document the Document to encapsulate in the Response
*/
public DocumentResponse(long requestId, Document document) {
- super(requestId);
- this.document = document;
+ this(requestId, document, null, document != null ? Outcome.SUCCESS : Outcome.NOT_FOUND);
}
/**
@@ -38,21 +37,11 @@ public class DocumentResponse extends Response {
*/
@Deprecated(since = "7") // TODO: Remove on Vespa 8
public DocumentResponse(long requestId, String textMessage, boolean success) {
- super(requestId, textMessage, success);
+ super(requestId, textMessage, success ? Outcome.NOT_FOUND : Outcome.ERROR);
document = null;
}
/**
- * Creates a response containing a textual message
- *
- * @param textMessage the message to encapsulate in the Response
- * @param outcome the outcome of this operation
- */
- public DocumentResponse(long requestId, String textMessage, Outcome outcome) {
- this(requestId, null, textMessage, outcome);
- }
-
- /**
* Creates a response containing a textual message and/or a document
*
* @param document the Document to encapsulate in the Response
@@ -97,6 +86,12 @@ public class DocumentResponse extends Response {
*/
public Document getDocument() { return document; }
+ @Override
+ public boolean isSuccess() {
+ // TODO: is it right that Get operations are successful without a result, in this API?
+ return super.isSuccess() || outcome() == Outcome.NOT_FOUND;
+ }
+
public int hashCode() {
return super.hashCode() + (document == null ? 0 : document.hashCode());
}
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java
index 398675e594e..40f26a82a89 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java
@@ -61,7 +61,7 @@ public class LocalAsyncSession implements AsyncSession {
long req = getNextRequestId();
try {
syncSession.put(documentPut, pri);
- addResponse(new DocumentResponse(req));
+ addResponse(new DocumentResponse(req, documentPut.getDocument()));
} catch (Exception e) {
addResponse(new DocumentResponse(req, documentPut.getDocument(), e.getMessage(), Response.Outcome.ERROR));
}
@@ -85,7 +85,7 @@ public class LocalAsyncSession implements AsyncSession {
try {
addResponse(new DocumentResponse(req, syncSession.get(id)));
} catch (Exception e) {
- addResponse(new DocumentResponse(req, e.getMessage(), Response.Outcome.ERROR));
+ addResponse(new DocumentResponse(req, null, e.getMessage(), Response.Outcome.ERROR));
}
return new Result(req);
}
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
index d1da3c7dc03..fc7d7fe6b9f 100644
--- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
+++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java
@@ -329,6 +329,7 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession {
default:
return new Response(reqId, null, SUCCESS, reply.getTrace());
}
+ // TODO jonmv: Why on earth is this relevant!?
Message msg = reply.getMessage();
switch (msg.getType()) {
case DocumentProtocol.MESSAGE_PUTDOCUMENT: