Skip to content

Commit 4e431b4

Browse files
author
James Little
committed
Empty SubError causes SonarQube complaint minor code smell
Also easier ways of handling error responses.
1 parent 49acd33 commit 4e431b4

File tree

10 files changed

+31
-36
lines changed

10 files changed

+31
-36
lines changed

src/main/java/com/bnc/sbjb/model/api/CustomError.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class CustomError {
1010
private Instant timestamp;
1111
private String message;
1212

13-
private List<SubError> subErrors;
13+
private List<ValidationError> subErrors;
1414

1515
private CustomError() {
1616
timestamp = Instant.now();
@@ -46,11 +46,11 @@ public void setMessage(String message) {
4646
this.message = message;
4747
}
4848

49-
public List<SubError> getSubErrors() {
49+
public List<ValidationError> getSubErrors() {
5050
return subErrors;
5151
}
5252

53-
public void setSubErrors(List<SubError> subErrors) {
53+
public void setSubErrors(List<ValidationError> subErrors) {
5454
this.subErrors = subErrors;
5555
}
5656
}

src/main/java/com/bnc/sbjb/model/api/SubError.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/java/com/bnc/sbjb/model/api/ValidationError.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.bnc.sbjb.model.api;
22

3-
public class ValidationError extends SubError {
3+
public class ValidationError {
44

55
private String object;
66
private String field;

src/main/java/com/bnc/sbjb/rest/Controller.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ public class Controller {
1212
@RequestMapping("/hello")
1313
@ResponseStatus(HttpStatus.OK)
1414
public String helloWorld() {
15-
return "Hello World";
15+
throw new IllegalStateException("Hello World");
1616
}
1717
}

src/main/java/com/bnc/sbjb/rest/DefaultErrorController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
import org.springframework.boot.web.servlet.error.ErrorController;
44
import org.springframework.http.HttpStatus;
5-
import org.springframework.http.ResponseEntity;
65
import org.springframework.web.bind.annotation.RequestMapping;
6+
import org.springframework.web.bind.annotation.ResponseStatus;
77
import org.springframework.web.bind.annotation.RestController;
88

99
@RestController
1010
public class DefaultErrorController implements ErrorController {
1111

1212
private static final String PATH = "/error";
1313

14+
@ResponseStatus(HttpStatus.NOT_FOUND)
1415
@RequestMapping(value = PATH)
15-
public ResponseEntity<String> error() {
16-
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
16+
public void error() {
1717
}
1818

1919
@Override
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.bnc.sbjb.rest;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
import org.springframework.http.HttpStatus;
6+
import org.springframework.web.bind.annotation.ControllerAdvice;
7+
import org.springframework.web.bind.annotation.ExceptionHandler;
8+
import org.springframework.web.bind.annotation.ResponseStatus;
9+
10+
@ControllerAdvice
11+
public class DefaultExceptionHandler {
12+
13+
private static final Logger logger = LoggerFactory.getLogger(DefaultExceptionHandler.class);
14+
15+
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
16+
@ExceptionHandler({Exception.class})
17+
public void handleException(Exception exception) {
18+
logger.warn("errorMessage=\"{}\"", exception.getMessage());
19+
}
20+
}

src/main/java/com/bnc/sbjb/rest/ExceptionHandler.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/test/java/com/bnc/sbjb/model/api/CustomErrorTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44

55
import java.time.Instant;
6-
import java.util.ArrayList;
6+
import java.util.Collections;
77
import java.util.List;
88
import org.junit.jupiter.api.BeforeEach;
99
import org.junit.jupiter.api.Test;
1010
import org.springframework.http.HttpStatus;
1111

12-
public class CustomErrorTest {
12+
class CustomErrorTest {
1313

1414
private CustomError customError;
1515

@@ -39,8 +39,7 @@ void testMessageIdempotent() {
3939

4040
@Test
4141
void testSubErrorIdempotent() {
42-
List<SubError> errors = new ArrayList<SubError>();
43-
errors.add(new TestSubError());
42+
List<ValidationError> errors = Collections.singletonList(new ValidationError("test", "test"));
4443
customError.setSubErrors(errors);
4544
assertThat(customError.getSubErrors().size()).isEqualTo(1);
4645
}

src/test/java/com/bnc/sbjb/model/api/TestSubError.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/test/java/com/bnc/sbjb/model/api/ValidationErrorTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5-
import com.bnc.sbjb.model.api.ValidationError;
65
import org.junit.jupiter.api.BeforeEach;
76
import org.junit.jupiter.api.Test;
87

0 commit comments

Comments
 (0)