diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-09-22 16:38:43 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-09-24 21:38:03 +0200 |
commit | 7d280adf22a83d5446153820a42258d352418269 (patch) | |
tree | 543d8d33a186f4cd15b60e53441b7aa8a6cf83bd /documentapi | |
parent | ba878c027385ac2db61dd849d39705c704786f62 (diff) |
Use NOT_FOUND in DocumentResponse as well — as success
Diffstat (limited to 'documentapi')
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: |