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.statemachine.support.StateMachineInterceptorAdapter;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.misc.Session;
|
import ru.clearing.classes.statics.data.misc.Session;
|
||||||
|
import ru.spcex.clearing.error.ClearingRuntimeException;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.session.stage.SecondaryAuctionT0Session;
|
import ru.spcex.clearing.session.stage.SecondaryAuctionT0Session;
|
||||||
import ru.spcex.clearing.session.stage.TaskType;
|
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.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
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> {
|
public class SessionStatusChangingInterceptor extends StateMachineInterceptorAdapter<TaskType, SsnEvent> {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
private final Imdg<Session> ssnImdg;
|
private final Imdg<Session> ssnImdg;
|
||||||
|
private final IMessageResolver messageResolver;
|
||||||
|
|
||||||
@Autowired
|
@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.ssnImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||||
|
this.messageResolver = messageResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -87,7 +91,11 @@ public class SessionStatusChangingInterceptor extends StateMachineInterceptorAda
|
||||||
Exception exception
|
Exception exception
|
||||||
) {
|
) {
|
||||||
String id = StateMachineUtil.getId(stM);
|
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);
|
Session session = stM.getExtendedState().get(DataEnum.session, Session.class);
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
log.info("{} updating session status to error", id);
|
log.info("{} updating session status to error", id);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue