summaryrefslogtreecommitdiffstats
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
parentba878c027385ac2db61dd849d39705c704786f62 (diff)
Use NOT_FOUND in DocumentResponse as well — as success
-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
-rw-r--r--jdisc_core/src/main/java/com/yahoo/jdisc/Response.java1
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/util/ByteLimitedInputStream.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/io/ByteWriter.java2
-rw-r--r--vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java6
8 files changed, 20 insertions, 19 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:
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
index c3d07a70e14..c3e386b020c 100644
--- a/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
+++ b/jdisc_core/src/main/java/com/yahoo/jdisc/Response.java
@@ -87,6 +87,7 @@ public class Response {
int UNPROCESSABLE_ENTITY = 422;
int LOCKED = 423;
int FAILED_DEPENDENCY = 424;
+ int TOO_MANY_REQUESTS = 429;
/** 5xx: Server Error - The server failed to fulfill an apparently valid request. */
int INTERNAL_SERVER_ERROR = 500;
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/util/ByteLimitedInputStream.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/util/ByteLimitedInputStream.java
index c8ae79deebd..260b57b2112 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/util/ByteLimitedInputStream.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/util/ByteLimitedInputStream.java
@@ -5,7 +5,7 @@ import java.io.IOException;
import java.io.InputStream;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*
* @since 5.1.23
*/
diff --git a/vespajlib/src/main/java/com/yahoo/io/ByteWriter.java b/vespajlib/src/main/java/com/yahoo/io/ByteWriter.java
index 05f7cec9189..de9c88a713d 100644
--- a/vespajlib/src/main/java/com/yahoo/io/ByteWriter.java
+++ b/vespajlib/src/main/java/com/yahoo/io/ByteWriter.java
@@ -11,7 +11,7 @@ import java.nio.charset.CharsetEncoder;
/**
* A buffered writer which accepts byte arrays in addition to character arrays.
*
- * @author <a href="mailt:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ * @author Steinar Knutsen
*/
public class ByteWriter extends AbstractByteWriter {
private final OutputStream stream;
diff --git a/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java b/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
index 51a4fc167c7..144a9a585f6 100644
--- a/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
+++ b/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
@@ -94,8 +94,12 @@ public class SlimeUtils {
}
public static byte[] toJsonBytes(Slime slime) throws IOException {
+ return toJsonBytes(slime.get());
+ }
+
+ public static byte[] toJsonBytes(Inspector inspector) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- new JsonFormat(true).encode(baos, slime);
+ new JsonFormat(true).encode(baos, inspector);
return baos.toByteArray();
}