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

View File

@ -99,7 +99,7 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
@SuppressWarnings("unchecked")
U arg = (U) abstractService.getResultInstance();
arg.setState(e instanceof PrivilegeModelException ?
ServiceResultState.FAILED :
ServiceResultState.EXCEPTION :
ServiceResultState.ACCESS_DENIED);
arg.setMessage(e.getMessage());
arg.setThrowable(e);
@ -187,6 +187,7 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
}
} else if (serviceResult.getState() == ServiceResultState.FAILED
|| serviceResult.getState() == ServiceResultState.EXCEPTION
|| serviceResult.getState() == ServiceResultState.ACCESS_DENIED) {
msg = serviceResult.getState() + ": " + msg;
@ -203,9 +204,15 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa
reason = serviceResult.getThrowable().getMessage();
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;

View File

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