diff --git a/observe/docs b/observe/docs index da563d26..c11179d9 160000 --- a/observe/docs +++ b/observe/docs @@ -1 +1 @@ -Subproject commit da563d26c1bf29ff8b2bbdc59650ff028f277a65 +Subproject commit c11179d9405d56bdce1d844167180312da5251a8 diff --git a/wings/warlock-shadow/src/main/java/pro/fessional/wings/warlock/errorhandle/DefaultExceptionResolver.java b/wings/warlock-shadow/src/main/java/pro/fessional/wings/warlock/errorhandle/DefaultExceptionResolver.java index 5b86cdf3..5c93b416 100644 --- a/wings/warlock-shadow/src/main/java/pro/fessional/wings/warlock/errorhandle/DefaultExceptionResolver.java +++ b/wings/warlock-shadow/src/main/java/pro/fessional/wings/warlock/errorhandle/DefaultExceptionResolver.java @@ -18,6 +18,7 @@ import pro.fessional.mirana.data.R; import pro.fessional.mirana.pain.CodeException; import pro.fessional.mirana.pain.HttpStatusException; +import pro.fessional.mirana.pain.MessageException; import pro.fessional.mirana.text.JsonTemplate; import pro.fessional.wings.slardar.context.LocaleZoneIdUtil; import pro.fessional.wings.slardar.context.TerminalContextException; @@ -55,8 +56,8 @@ public DefaultExceptionResolver(SimpleResponse defaultResponse, MessageSource me @Override protected SimpleResponse resolve(@NotNull Exception exception) { SimpleResponse response = null; + Throwable cause = exception; try { - Throwable cause = exception; for (; response == null && cause != null; cause = cause.getCause()) { if (cause instanceof HttpStatusException ex) { response = handle(ex); @@ -77,10 +78,14 @@ else if (cause instanceof AccessDeniedException ex) { response = handleAccessDenied(ex); } } + + if (response == null) { + cause = exception; + } // handler if (handler != null) { // use original exception if response is null, otherwise the cause - response = handler.handle(response == null ? exception : cause, response); + response = handler.handle(cause, response); } } catch (Throwable e) { @@ -92,7 +97,12 @@ else if (cause instanceof AccessDeniedException ex) { response = defaultResponse; } else { - log.debug("handled exception, response simple", exception); + if (cause instanceof MessageException) { + log.debug("handled MessageException, response simple", exception); + } + else { + log.info("handled exception, response simple", exception); + } } return response; @@ -123,7 +133,7 @@ protected SimpleResponse handle(CodeException cex) { return new SimpleResponse(defaultResponse.getHttpStatus(), defaultResponse.getContentType(), body); } - protected SimpleResponse handleUnauthorized(Exception ex) { + protected SimpleResponse handleUnauthorized(Exception ignore) { final String body = JsonTemplate.obj(obj -> { obj.putVal("success", false); String code = AuthnErrorEnum.Unauthorized.getCode(); @@ -133,7 +143,7 @@ protected SimpleResponse handleUnauthorized(Exception ex) { return new SimpleResponse(HttpStatus.UNAUTHORIZED.value(), defaultResponse.getContentType(), body); } - protected SimpleResponse handleAccessDenied(Exception ex) { + protected SimpleResponse handleAccessDenied(Exception ignore) { final String body = JsonTemplate.obj(obj -> { obj.putVal("success", false); String code = AuthzErrorEnum.AccessDenied.getCode();