【问题描述】
关于EOS7.5,finishworkitem结束工作项报java.lang.NumberFormatException异常
具体异常信息:
Caused by: java.lang.RuntimeException: java.lang.NumberFormatException
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.process(EventServiceRunnerImpl.java:174)
at com.primeton.workflow.event.framework.event.base.interceptor.EventRunnerInterceptor.invoke(EventRunnerInterceptor.java:91)
at com.primeton.workflow.event.framework.EventServiceInterceptor.invoke(EventServiceInterceptor.java:89)
at com.primeton.workflow.event.framework.event.base.EventServiceImplDefault.publish(EventServiceImplDefault.java:169)
at com.primeton.workflow.engine.scheduler.event.handle.task.WFTaskScheduler.taskHasFinished(WFTaskScheduler.java:247)
at com.primeton.workflow.api.listener.WFTaskListener.OnMessage(WFTaskListener.java:25)
at com.primeton.workflow.task.message.impl.TaskMessageCenter.fireTaskMessage(TaskMessageCenter.java:104)
at com.primeton.workflow.task.service.scheduler.TaskScheduler.finishWorkItem(TaskScheduler.java:641)
at com.primeton.workflow.task.engtask.WFWorkItemOperateImpl.finishWorkItemInner(WFWorkItemOperateImpl.java:1617)
at com.primeton.workflow.task.engtask.WFWorkItemOperateImpl.finishWorkItem(WFWorkItemOperateImpl.java:1601)
at com.primeton.workflow.task.engtask.WFWorkItemOperateImpl.finishWorkItem(WFWorkItemOperateImpl.java:158)
at com.primeton.workflow.api.engtask.WorkItemManagerImpl.finishWorkItem(WorkItemManagerImpl.java:41)
... 98 more
Caused by: java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:459)
at java.math.BigDecimal.<init>(BigDecimal.java:728)
at com.primeton.das.entity.impl.hibernate.type.BigDecimalType.set(BigDecimalType.java:32)
at com.primeton.das.entity.impl.hibernate.type.NullableType.nullSafeSet(NullableType.java:88)
at com.primeton.das.entity.impl.hibernate.type.NullableType.nullSafeSet(NullableType.java:71)
at com.primeton.das.entity.impl.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1582)
at com.primeton.das.entity.impl.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1696)
at com.primeton.das.entity.impl.hibernate.loader.Loader.doQuery(Loader.java:673)
at com.primeton.das.entity.impl.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at com.primeton.das.entity.impl.hibernate.loader.Loader.doList(Loader.java:2282)
at com.primeton.das.entity.impl.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2166)
at com.primeton.das.entity.impl.hibernate.loader.Loader.list(Loader.java:2161)
at com.primeton.das.entity.impl.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:121)
at com.primeton.das.entity.impl.hibernate.impl.SessionImpl.list(SessionImpl.java:1595)
at com.primeton.das.entity.impl.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:293)
at com.primeton.das.entity.impl.DASSessionImpl.query(DASSessionImpl.java:395)
at com.primeton.spring.support.DasCriteriaUtil.queryEntitiesByCriteriaEntity(DasCriteriaUtil.java:58)
at com.eos.spring.DASTemplate.queryEntitiesByCriteriaEntity(DASTemplate.java:346)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager.getEmpById(DefaultEmpManager.java:57)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$FastClassByCGLIB$$4d8771ad.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.primeton.spring.interceptor.BeanInterceptor.invoke(BeanInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$EnhancerByCGLIB$$419357f4.getEmpById(<generated>)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$FastClassByCGLIB$$4d8771ad.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$EnhancerByCGLIB$$a60398f0.getEmpById(<generated>)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$FastClassByCGLIB$$4d8771ad.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.primeton.spring.interceptor.BeanInterceptor.invoke(BeanInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at org.gocom.components.coframe.org.party.manager.DefaultEmpManager$$EnhancerByCGLIB$$39948127.getEmpById(<generated>)
at org.gocom.components.coframe.org.party.impl.EmpPartyTypeDataService.getPartyByPartyID(EmpPartyTypeDataService.java:48)
at org.gocom.components.coframe.auth.party.DefaultPartyManagerService.doGetPartyByPartyID(DefaultPartyManagerService.java:254)
at com.primeton.cap.party.AbstractPartyManagerService.getPartyByPartyID(AbstractPartyManagerService.java:133)
at com.primeton.cap.party.manager.PartyRuntimeManager.getPartyByPartyID(PartyRuntimeManager.java:58)
at org.gocom.components.coframe.bps.om.WFOMServiceImpl.findParticipantByID(WFOMServiceImpl.java:62)
at com.primeton.workflow.service.organization.internal.WFOMServiceInner.findParticipantByID(WFOMServiceInner.java:96)
at com.primeton.workflow.service.organization.util.WFParticipantUtil.getAvailParticipantIDAndName(WFParticipantUtil.java:118)
at com.primeton.workflow.task.service.scheduler.TaskSchedulerHelper.buildTaskByParticipant(TaskSchedulerHelper.java:337)
at com.primeton.workflow.task.service.scheduler.TaskScheduler.createWorkItemWithID(TaskScheduler.java:463)
at com.primeton.workflow.task.service.scheduler.TaskScheduler.createWorkItem(TaskScheduler.java:428)
at com.primeton.workflow.task.engtask.TaskHandler.createWorkItem(TaskHandler.java:42)
at com.primeton.workflow.task.engtask.TaskHandler.invoke(TaskHandler.java:23)
at com.primeton.workflow.event.framework.event.base.WFEventExecutor.handleEvent(WFEventExecutor.java:175)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.processOneContext(EventServiceRunnerImpl.java:215)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.processOneContextSafe(EventServiceRunnerImpl.java:188)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.process(EventServiceRunnerImpl.java:168)
at com.primeton.workflow.engine.scheduler.event.handle.task.WFTaskScheduler.createWorkItem(WFTaskScheduler.java:396)
at com.primeton.workflow.engine.scheduler.event.handle.task.ActivityWorkItemDispatchUtil.dispatchWorkItem(ActivityWorkItemDispatchUtil.java:209)
at com.primeton.workflow.engine.scheduler.event.handle.task.ActivityWorkItemDispatchUtil.dispatchWorkItemToParticipantList(ActivityWorkItemDispatchUtil.java:195)
at com.primeton.workflow.engine.scheduler.event.handler.activity.ActivityWorkItemDispatcher.dispatch(ActivityWorkItemDispatcher.java:316)
at com.primeton.workflow.engine.scheduler.event.handler.activity.ActivityExecuterAction.execute(ActivityExecuterAction.java:280)
at com.primeton.workflow.engine.scheduler.enginelog.EngineLogExecutor.executeAction(EngineLogExecutor.java:162)
at com.primeton.workflow.engine.scheduler.event.handler.activity.visitors.ManualActivityVisitor.startActivity(ManualActivityVisitor.java:93)
at com.primeton.workflow.engine.scheduler.event.handler.activity.ActivityExecuter.invoke(ActivityExecuter.java:234)
at com.primeton.workflow.event.framework.event.base.WFEventExecutor.handleEvent(WFEventExecutor.java:175)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.processOneContext(EventServiceRunnerImpl.java:215)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.processOneContextSafe(EventServiceRunnerImpl.java:188)
at com.primeton.workflow.event.framework.event.base.EventServiceRunnerImpl.process(EventServiceRunnerImpl.java:168)
... 109 more
【解答】
报NumberFormatException异常的原因是结束工作项时查找不到流程中设置的参与者,因为指派的参与者不是真正存在的,在参与者列表获取参与者后结束工作项可以正常完成。