diff --git a/app/controllers/Application.java b/app/controllers/Application.java index 6bf1b800..6a4597ce 100644 --- a/app/controllers/Application.java +++ b/app/controllers/Application.java @@ -354,9 +354,13 @@ location, from, size, responseFormat, lang().code(), Logger.debug("Caching search result for request: {}", cacheKey); Cache.set(cacheKey, searchResult, ONE_DAY); return searchResult; - } catch (IllegalArgumentException x) { - Logger.warn("Bad request: ", x.getMessage()); - return badRequest("Bad request: " + x.getMessage()); + } catch (Throwable t) { + String message = t.getMessage() + + (t.getCause() != null ? ", cause: " + t.getCause().getMessage() + : ""); + Logger.error("Error: {}", message); + return internalServerError( + views.html.error.render(q, "Error: " + message)); } } @@ -402,10 +406,10 @@ private static Result searchResult(String q, String location, int from, results.put("js", () -> { String queryResultString = searchQueryResult(q, location, from, size, "location"); - String queryMetadata = - Json.parse(queryResultString).get("aggregation").toString(); - JavaScript script = - views.js.facet_map.render(queryMetadata, q, location, from, size); + JsonNode queryMetadata = Json.parse(queryResultString).get("aggregation"); + JavaScript script = views.js.facet_map.render( + queryMetadata == null ? "{}" : queryMetadata.toString(), q, location, + from, size); return ok(script).as("application/javascript; charset=utf-8"); }); results.put("csv", () -> { diff --git a/app/views/error.scala.html b/app/views/error.scala.html new file mode 100644 index 00000000..d784c6aa --- /dev/null +++ b/app/views/error.scala.html @@ -0,0 +1,12 @@ +@* Copyright 2018 Fabian Steeg, hbz. Licensed under the GPLv2 *@ + +@(q: String, message: String) + +@import play.i18n._ + +@main(q) { +
+} diff --git a/app/views/search.scala.html b/app/views/search.scala.html index 479cf058..8aa1507e 100644 --- a/app/views/search.scala.html +++ b/app/views/search.scala.html @@ -55,7 +55,7 @@@Html(Messages.get("search.footer.api_text", routes.Application.search(q=qParam, from=from, format="json", location=location), routes.Application.search(q=qParam, from=from, format="csv", location=location), routes.Application.api()))
- }} else { @if(!q.isEmpty) {@Html(Messages.get("search.footer.no_results", q))
} } } + }} else { @if(!q.isEmpty) { } } } }} \ No newline at end of file diff --git a/conf/application.conf b/conf/application.conf index 7bd9e9e1..285463a2 100644 --- a/conf/application.conf +++ b/conf/application.conf @@ -76,20 +76,6 @@ application.global=Global # # ebean.default="models.*" -# Logger -# ~~~~~ -# You can also configure logback (http://logback.qos.ch/), -# by providing an application-logger.xml file in the conf directory. - -# Root logger: -logger.root=ERROR - -# Logger used by the framework: -logger.play=INFO - -# Logger provided to your application: -logger.application=DEBUG - organisation.icons={ "http://purl.org/lobid/libtype#n34" : "music", "http://purl.org/lobid/libtype#n39" : "bus", diff --git a/conf/logback.xml b/conf/logback.xml deleted file mode 100644 index 73268459..00000000 --- a/conf/logback.xml +++ /dev/null @@ -1,50 +0,0 @@ - - -