From c5031b536aa11d6f76f0c033a94decd5643e858c Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 15 Sep 2014 16:41:25 +0200 Subject: [PATCH] no-jira: fix NPE in the indexer REST API for statistics if the indexer is disabled --- .../restapi/system/IndexerWebService.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/olat/restapi/system/IndexerWebService.java b/src/main/java/org/olat/restapi/system/IndexerWebService.java index e605717bc49..a172ae76b22 100644 --- a/src/main/java/org/olat/restapi/system/IndexerWebService.java +++ b/src/main/java/org/olat/restapi/system/IndexerWebService.java @@ -69,8 +69,13 @@ public class IndexerWebService { @Path("status") @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response getStatus(@Context HttpServletRequest request) { + String status; SearchServiceStatus serviceStatus = SearchServiceFactory.getService().getStatus(); - String status = serviceStatus.getStatus(); + if(serviceStatus instanceof SearchServiceStatusImpl) { + status = serviceStatus.getStatus(); + } else { + status = "disabled"; + } return Response.ok(new IndexerStatus(status)).build(); } @@ -85,8 +90,14 @@ public class IndexerWebService { @Path("status") @Produces({MediaType.TEXT_PLAIN}) public Response getPlainTextStatus(@Context HttpServletRequest request) { + String status; SearchServiceStatus serviceStatus = SearchServiceFactory.getService().getStatus(); - return Response.ok(serviceStatus.getStatus()).build(); + if(serviceStatus instanceof SearchServiceStatusImpl) { + status = serviceStatus.getStatus(); + } else { + status = "disabled"; + } + return Response.ok(status).build(); } /** @@ -123,8 +134,10 @@ public class IndexerWebService { stats.setRunningFolderIndexerCount(fStatus.getNumberRunningFolderIndexer()); stats.setAvailableFolderIndexerCount(fStatus.getNumberAvailableFolderIndexer()); stats.setLastFullIndexTime(fStatus.getLastFullIndexTime()); + stats.setStatus(status.getStatus()); + } else { + stats.setStatus("disabled"); } - stats.setStatus(status.getStatus()); return stats; } } -- GitLab