From a79966641727d0028fb09062683caa403e002457 Mon Sep 17 00:00:00 2001 From: Oleh Astappiev Date: Mon, 2 Oct 2023 12:41:43 +0200 Subject: [PATCH] feat: better timeout error --- .../l3s/interweb/server/search/SearchService.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/interweb-server/src/main/java/de/l3s/interweb/server/search/SearchService.java b/interweb-server/src/main/java/de/l3s/interweb/server/search/SearchService.java index 8d500a9f..549de7bb 100644 --- a/interweb-server/src/main/java/de/l3s/interweb/server/search/SearchService.java +++ b/interweb-server/src/main/java/de/l3s/interweb/server/search/SearchService.java @@ -68,13 +68,14 @@ public Uni search(SearchQuery query) { private Uni searchIn(SearchQuery query, SearchConnector connector, Duration timeout) { long start = System.currentTimeMillis(); - return searchWithCache(query, connector).ifNoItem().after(timeout).failWith(new ConnectorException("Timeout")) - .onFailure(ConnectorException.class).recoverWithItem(failure -> { - log.error("Error in search connector " + connector.getId(), failure); - SearchConnectorResults results = new SearchConnectorResults(); - results.setError((ConnectorException) failure); - return results; - }).onItem().invoke(conRes -> connector.fillResult(conRes, System.currentTimeMillis() - start)); + return searchWithCache(query, connector) + .ifNoItem().after(timeout).failWith(new ConnectorException(connector.getName() + " reached timeout after " + timeout.toMillis() + "ms")) + .onFailure(ConnectorException.class).recoverWithItem(failure -> { + log.error("Error in search connector " + connector.getId(), failure); + SearchConnectorResults results = new SearchConnectorResults(); + results.setError((ConnectorException) failure); + return results; + }).onItem().invoke(conRes -> connector.fillResult(conRes, System.currentTimeMillis() - start)); } private Uni searchWithCache(SearchQuery query, SearchConnector connector) {