aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-container-plugin
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2020-10-29 20:15:54 +0100
committerJon Marius Venstad <venstad@gmail.com>2020-10-29 20:15:54 +0100
commit5b8f92a7e2ec58b5d227326488a4b4c3d3fda636 (patch)
tree610ce22e03bf1d20c7a7498b616115452acb61eb /vespaclient-container-plugin
parent50c1f916a1699daac57f35cbc0c37060d09aed54 (diff)
Use existing timeout parse code
Diffstat (limited to 'vespaclient-container-plugin')
-rw-r--r--vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java15
-rw-r--r--vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java9
2 files changed, 5 insertions, 19 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
index f9bb94b3ccb..8287b6f1630 100644
--- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
+++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java
@@ -56,6 +56,7 @@ import com.yahoo.messagebus.Trace;
import com.yahoo.messagebus.TraceNode;
import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.restapi.Path;
+import com.yahoo.search.query.ParameterParser;
import com.yahoo.text.Text;
import com.yahoo.vespa.config.content.AllClustersBucketSpacesConfig;
import com.yahoo.yolean.Exceptions;
@@ -100,7 +101,6 @@ import static com.yahoo.jdisc.http.HttpRequest.Method.PUT;
import static java.util.Objects.requireNonNull;
import static java.util.logging.Level.FINE;
import static java.util.logging.Level.WARNING;
-import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toMap;
import static java.util.stream.Collectors.toUnmodifiableMap;
@@ -112,13 +112,11 @@ import static java.util.stream.Collectors.toUnmodifiableMap;
*/
public class DocumentV1ApiHandler extends AbstractRequestHandler {
+ private static final Duration defaultTimeout = Duration.ofSeconds(175);
+
private static final Logger log = Logger.getLogger(DocumentV1ApiHandler.class.getName());
private static final Parser<Integer> integerParser = Integer::parseInt;
- private static final Parser<Double> timeoutParser = value -> {
- int suffixLength = value.endsWith("ms") ? 2 : value.endsWith("s") ? 1 : 0;
- double factor = suffixLength == 2 ? 1e-3 : 1;
- return Double.parseDouble(value.substring(0, value.length() - suffixLength)) * factor;
- };
+ private static final Parser<Long> timeoutMillisParser = value -> ParameterParser.asMilliSeconds(value, defaultTimeout.toMillis());
private static final Parser<Boolean> booleanParser = Boolean::parseBoolean;
private static final CompletionHandler logException = new CompletionHandler() {
@@ -135,8 +133,6 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
private static final JsonFactory jsonFactory = new JsonFactory();
- private static final Duration defaultTimeout = Duration.ofSeconds(175);
-
private static final String CREATE = "create";
private static final String CONDITION = "condition";
private static final String ROUTE = "route";
@@ -206,8 +202,7 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler {
HttpRequest request = (HttpRequest) rawRequest;
try {
- request.setTimeout(getProperty(request, TIMEOUT, timeoutParser)
- .map(timeoutSeconds -> (long) (timeoutSeconds * 1000))
+ request.setTimeout(getProperty(request, TIMEOUT, timeoutMillisParser)
.orElse(defaultTimeout.toMillis()),
TimeUnit.MILLISECONDS);
diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
index 989f8c6a387..c85db0582eb 100644
--- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
+++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java
@@ -449,15 +449,6 @@ public class DocumentV1ApiTest {
"}", response.readAll());
assertEquals(400, response.getStatus());
- // GET with wrong timeout fails
- access.session.expect((__, ___) -> { throw new AssertionError("Not supposed to happen"); });
- response = driver.sendRequest("http://localhost/document/v1/space/music/number/1/two?timeout=30us");
- assertSameJson("{" +
- " \"pathId\": \"/document/v1/space/music/number/1/two\"," +
- " \"message\": \"Failed parsing '30us': For input string: \\\"30u\\\"\"" +
- "}", response.readAll());
- assertEquals(400, response.getStatus());
-
// INSUFFICIENT_STORAGE is a 507
access.session.expect((id, parameters) -> {
parameters.responseHandler().get().handleResponse(new Response(0, "disk full", Response.Outcome.INSUFFICIENT_STORAGE));