[Major] Added new service result EXCEPTION used when exception thrown

This commit is contained in:
Robert von Burg 2019-08-28 12:04:46 +02:00
parent 67d77bafea
commit c822f00473
3 changed files with 13 additions and 6 deletions

View File

@ -525,7 +525,7 @@ public abstract class AbstractService<T extends ServiceArgument, U extends Servi
logger.error(msg); logger.error(msg);
U result = getResultInstance(); U result = getResultInstance();
result.setState(ServiceResultState.FAILED); result.setState(ServiceResultState.EXCEPTION);
result.setMessage(msg); result.setMessage(msg);
return result; return result;
} }
@ -543,7 +543,7 @@ public abstract class AbstractService<T extends ServiceArgument, U extends Servi
} catch (Exception e) { } catch (Exception e) {
U result = getResultInstance(); U result = getResultInstance();
result.setState(ServiceResultState.FAILED); result.setState(ServiceResultState.EXCEPTION);
result.setMessage(e.getMessage()); result.setMessage(e.getMessage());
result.setThrowable(e); result.setThrowable(e);
return result; return result;

View File

@ -99,7 +99,7 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
U arg = (U) abstractService.getResultInstance(); U arg = (U) abstractService.getResultInstance();
arg.setState(e instanceof PrivilegeModelException ? arg.setState(e instanceof PrivilegeModelException ?
ServiceResultState.FAILED : ServiceResultState.EXCEPTION :
ServiceResultState.ACCESS_DENIED); ServiceResultState.ACCESS_DENIED);
arg.setMessage(e.getMessage()); arg.setMessage(e.getMessage());
arg.setThrowable(e); arg.setThrowable(e);
@ -187,6 +187,7 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
} }
} else if (serviceResult.getState() == ServiceResultState.FAILED } else if (serviceResult.getState() == ServiceResultState.FAILED
|| serviceResult.getState() == ServiceResultState.EXCEPTION
|| serviceResult.getState() == ServiceResultState.ACCESS_DENIED) { || serviceResult.getState() == ServiceResultState.ACCESS_DENIED) {
msg = serviceResult.getState() + ": " + msg; msg = serviceResult.getState() + ": " + msg;
@ -203,9 +204,15 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
reason = serviceResult.getThrowable().getMessage(); reason = serviceResult.getThrowable().getMessage();
throwable = serviceResult.getThrowable(); throwable = serviceResult.getThrowable();
} }
logger.error("Reason: " + reason, throwable);
if (getContainer().hasComponent(OperationsLog.class)) { if (throwable == null)
logger.error("Reason: " + reason);
else
logger.error("Reason: " + reason, throwable);
if ((serviceResult.getState() == ServiceResultState.EXCEPTION
|| serviceResult.getState() == ServiceResultState.ACCESS_DENIED) //
&& getContainer().hasComponent(OperationsLog.class)) {
LogMessage logMessage; LogMessage logMessage;

View File

@ -21,5 +21,5 @@ package li.strolch.service.api;
*/ */
public enum ServiceResultState { public enum ServiceResultState {
SUCCESS, WARNING, FAILED, ACCESS_DENIED; SUCCESS, WARNING, FAILED, EXCEPTION, ACCESS_DENIED;
} }