diff options
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(); } |