ClearingRuntimeException
This commit is contained in:
parent
c341878e54
commit
d600ddfb52
2 changed files with 44 additions and 2 deletions
|
|
@ -0,0 +1,34 @@
|
|||
package ru.spcex.clearing.error;
|
||||
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
|
||||
public class ClearingRuntimeException extends RuntimeException {
|
||||
final EnumMessage enumMsg;
|
||||
|
||||
public ClearingRuntimeException(EnumMessage msg) {
|
||||
this.enumMsg = msg;
|
||||
}
|
||||
|
||||
public ClearingRuntimeException(ClearingError code) {
|
||||
this.enumMsg = new EnumMessage(code);
|
||||
}
|
||||
|
||||
public ClearingRuntimeException(ClearingError code, String message) {
|
||||
super(code == null ? message : code.getId() + " " + message);
|
||||
this.enumMsg = new EnumMessage(code);
|
||||
}
|
||||
|
||||
public ClearingRuntimeException(ClearingError code, String message, Throwable cause) {
|
||||
super(code == null ? message : code.getId() + " " + message, cause);
|
||||
this.enumMsg = new EnumMessage(code);
|
||||
}
|
||||
|
||||
public ClearingRuntimeException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
this.enumMsg = new EnumMessage(ClearingError.GeneralError);
|
||||
}
|
||||
|
||||
public EnumMessage getEnumMsg() {
|
||||
return enumMsg;
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import org.springframework.statemachine.state.State;
|
|||
import org.springframework.statemachine.support.StateMachineInterceptorAdapter;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.spcex.clearing.error.ClearingRuntimeException;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.session.stage.SecondaryAuctionT0Session;
|
||||
import ru.spcex.clearing.session.stage.TaskType;
|
||||
|
|
@ -20,6 +21,7 @@ import ru.spcex.platform.enumeration.SessionStatus;
|
|||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
/**
|
||||
|
|
@ -29,10 +31,12 @@ import ru.spcex.platform.utils.log.ExceptionUtils;
|
|||
public class SessionStatusChangingInterceptor extends StateMachineInterceptorAdapter<TaskType, SsnEvent> {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<Session> ssnImdg;
|
||||
private final IMessageResolver messageResolver;
|
||||
|
||||
@Autowired
|
||||
public SessionStatusChangingInterceptor(ImdgProvider imdgProvider, SecondaryAuctionT0Session secondaryAuctionT0Session) {
|
||||
public SessionStatusChangingInterceptor(ImdgProvider imdgProvider, SecondaryAuctionT0Session secondaryAuctionT0Session, IMessageResolver messageResolver) {
|
||||
this.ssnImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.messageResolver = messageResolver;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -87,7 +91,11 @@ public class SessionStatusChangingInterceptor extends StateMachineInterceptorAda
|
|||
Exception exception
|
||||
) {
|
||||
String id = StateMachineUtil.getId(stM);
|
||||
log.error("{} interceptor caught an exception!!!", id);
|
||||
if (exception instanceof ClearingRuntimeException withEnum) {
|
||||
log.error("{} interceptor caught an error {}", id, messageResolver.resolve(withEnum.getEnumMsg()));
|
||||
} else {
|
||||
log.error("{} interceptor caught an exception", id);
|
||||
}
|
||||
Session session = stM.getExtendedState().get(DataEnum.session, Session.class);
|
||||
if (session != null) {
|
||||
log.info("{} updating session status to error", id);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue