Closed wenjiongyang closed 3 years ago
通过设置添加ExecutorService的方式使用并行网关时,PersisterSession在主线程与线程池之间传递时偶发传递失败,出现NPE; com.alibaba.smart.framework.engine.persister.custom.CustomExecutionInstanceStorage#findActiveExecution ProcessInstance processInstance = PersisterSession.currentSession().getProcessInstance(processInstanceId); 其中PersisterSession.currentSession()返回null 导致NPE; 经检查发现PersisterSession.sessionThreadLocal 用的是InheritableThreadLocal, 在使用线程池时这个类是会出问题的, 建议改成transmittable-thread-local试一下;
发现在新版本2.5.2.alpha0里使用了GatewaySticker 已经对这个问题修复;
嗯,这个问题已进修复了。
通过设置添加ExecutorService的方式使用并行网关时,PersisterSession在主线程与线程池之间传递时偶发传递失败,出现NPE; com.alibaba.smart.framework.engine.persister.custom.CustomExecutionInstanceStorage#findActiveExecution ProcessInstance processInstance = PersisterSession.currentSession().getProcessInstance(processInstanceId); 其中PersisterSession.currentSession()返回null 导致NPE; 经检查发现PersisterSession.sessionThreadLocal 用的是InheritableThreadLocal, 在使用线程池时这个类是会出问题的, 建议改成transmittable-thread-local试一下;