@ExceptionHandler({HalException.class}) @ResponseBody public DaemonResponse<Void> handleHalconfigException(HttpServletResponse response, HalException exception) { response.setStatus(exception.getResponseCode()); return new DaemonResponse<>(null, exception.getProblems()); } }
public void failure(HalException e) { inFailedState(); fatalError = e; response = new DaemonResponse<>(null, e.getProblems()); }
public DaemonResponse<K> build() { if (buildResponse == null) { throw new IllegalArgumentException("No response provided to build"); } K responseBody; ProblemSet problemSet = new ProblemSet(); try { setup.run(); if (validateResponse != null) { problemSet = validateResponse.get(); } problemSet.throwifSeverityExceeds(severity); } catch (Exception e) { log.error("Unknown exception encountered: ", e); throw e; } try { responseBody = buildResponse.get(); } catch (HalException e) { // This is OK, propagate the exception to the HalconfigExceptionHandler e.getProblems().addAll(problemSet); throw e; } catch (Exception e) { log.error("Unknown exception encountered: ", e); throw e; } return new DaemonResponse<>(responseBody, problemSet); } }
public ConfigProblemSetBuilder extend(HalException e) { e.getProblems() .getProblems() .forEach(p -> addProblem(p.getSeverity(), p.getMessage()) .setOptions(p.getOptions()) .setRemediation(p.getRemediation()) ); return this; }
public ConfigProblemSetBuilder extend(HalException e) { e.getProblems() .getProblems() .forEach(p -> addProblem(p.getSeverity(), p.getMessage()) .setOptions(p.getOptions()) .setRemediation(p.getRemediation()) ); return this; }