diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java b/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java index e18a4ebc4de7..8bf25fbb0ed2 100644 --- a/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java +++ b/geode-core/src/main/java/org/apache/geode/management/internal/api/LocatorClusterManagementService.java @@ -88,11 +88,7 @@ public ClusterManagementResult create(CacheElement config, String group) { ConfigurationValidator validator = validators.get(config.getClass()); if (validator != null) { - try { - validator.validate(config); - } catch (IllegalArgumentException e) { - return new ClusterManagementResult(false, e.getMessage()); - } + validator.validate(config); } diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java index 8947235a47f7..cbe664f032aa 100644 --- a/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java +++ b/geode-core/src/test/java/org/apache/geode/management/internal/api/LocatorClusterManagementServiceTest.java @@ -78,10 +78,9 @@ public void elementAlreadyExist() throws Exception { @Test public void validationFailed() throws Exception { - result = service.create(regionConfig, "cluster"); - assertThat(result.isSuccessful()).isFalse(); - assertThat(result.getPersistenceStatus().getMessage()) - .contains("Name of the region has to be specified"); + assertThatThrownBy(() -> service.create(regionConfig, "cluster")) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Name of the region has to be specified"); } @Test diff --git a/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/ManagementControllerAdvice.java b/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/ManagementControllerAdvice.java index 9e8265d8ae22..937b412ef2ee 100644 --- a/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/ManagementControllerAdvice.java +++ b/geode-web-management/src/main/java/org/apache/geode/management/internal/rest/controllers/ManagementControllerAdvice.java @@ -67,6 +67,12 @@ public ResponseEntity badRequest(final MalformedObjectN HttpStatus.BAD_REQUEST); } + @ExceptionHandler(IllegalArgumentException.class) + public ResponseEntity badRequest(final IllegalArgumentException e) { + return new ResponseEntity<>(new ClusterManagementResult(false, e.getMessage()), + HttpStatus.BAD_REQUEST); + } + @ExceptionHandler(InstanceNotFoundException.class) public ResponseEntity notFound(final InstanceNotFoundException e) { return new ResponseEntity<>(new ClusterManagementResult(false, e.getMessage()),