update(REQ-2516) - 重新设置异常的处理类
This commit is contained in:
parent
73f1361458
commit
355d9c3d1a
@ -2,6 +2,7 @@ package cn.axzo.workflow.server.advice;
|
||||
|
||||
import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties;
|
||||
import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.framework.domain.web.code.IRespCode;
|
||||
import cn.axzo.framework.domain.web.code.RespCode;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
@ -30,8 +31,8 @@ public class FlowableExceptionResultHandlerAdvice extends AbstractExceptionApiRe
|
||||
protected IRespCode decode(FlowableException ex, IRespCode fallbackCode) {
|
||||
log.warn("发现 FlowableException Error: ", ex);
|
||||
if (Objects.nonNull(ex.getCause()) && ex.getCause() instanceof WorkflowEngineException) {
|
||||
return new RespCode(UNAVAILABLE_FOR_LEGAL_REASONS.getCode(), ex.getCause().getMessage());
|
||||
return new RespCode(BaseCode.SUCCESS.getCode(), ex.getCause().getMessage());
|
||||
}
|
||||
return new RespCode(UNAVAILABLE_FOR_LEGAL_REASONS.getCode(), ex.getMessage());
|
||||
return new RespCode(BaseCode.SUCCESS.getCode(), ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package cn.axzo.workflow.server.advice;
|
||||
|
||||
import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties;
|
||||
import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.framework.domain.web.code.IRespCode;
|
||||
import cn.axzo.framework.domain.web.code.RespCode;
|
||||
import org.flowable.common.engine.api.FlowableOptimisticLockingException;
|
||||
@ -25,6 +26,6 @@ public class FlowableOptimisticLockingExceptionHandlerAdvice extends AbstractExc
|
||||
|
||||
@Override
|
||||
protected IRespCode decode(FlowableOptimisticLockingException ex, IRespCode fallbackCode) {
|
||||
return new RespCode(UNAVAILABLE_FOR_LEGAL_REASONS.getCode(), ex.getMessage());
|
||||
return new RespCode(BaseCode.SUCCESS.getCode(), ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.workflow.server.advice;
|
||||
|
||||
import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties;
|
||||
import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler;
|
||||
import cn.axzo.framework.domain.web.code.BaseCode;
|
||||
import cn.axzo.framework.domain.web.code.IRespCode;
|
||||
import cn.axzo.framework.domain.web.code.RespCode;
|
||||
import cn.axzo.workflow.client.feign.bpmn.ProcessActivityApi;
|
||||
import cn.axzo.workflow.client.feign.bpmn.ProcessInstanceApi;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnActivitySetAssigneeDTO;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.sql.SQLIntegrityConstraintViolationException;
|
||||
|
||||
|
||||
/**
|
||||
* 处理多个接口同时操作一个流程实例时,可能会抛出数据库的异常,这种异常是可以被忽略的
|
||||
* <p>
|
||||
* 例如: {@link ProcessActivityApi#setAssignee(BpmnActivitySetAssigneeDTO)} 于 {@link ProcessInstanceApi#abortProcessInstance(BpmnProcessInstanceAbortDTO)}
|
||||
* 两个接口并发访问时,由于 abort 先执行完,并提交事务后,setAssignee 方法内虽然有判断实例状态,但最后事务提交时突然发现实例状态被中止了就会抛出异常。
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2024/6/20 09:42
|
||||
*/
|
||||
@Component
|
||||
public class SQLIntegrityConstraintViolationExceptionHandlerAdvice extends AbstractExceptionApiResultHandler<SQLIntegrityConstraintViolationException> {
|
||||
public SQLIntegrityConstraintViolationExceptionHandlerAdvice(RespErrorCodeMappingProperties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IRespCode decode(SQLIntegrityConstraintViolationException ex, IRespCode fallbackCode) {
|
||||
return new RespCode(BaseCode.SUCCESS.getCode(), ex.getMessage());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user