JBoss Community

Concurrent Modification exception in task server when running with 100 concurrent users

created by nageswara Rao in jBPM - View the full discussion

I have a business process with 5 manual activities with a fork, initially all user tasks are assigned to business admin

 

My scenario is like start process instance for this Process,  then business admin deligate each task to a seperate user and that user will complete the task then next task will be created

 

When i execute this scenario with 100 concurrent users in load runner then 2% of the markdone operations are failing with Concurrent modifcation exception

[java] java.util.ConcurrentModificationException

     [java]  at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)

     [java]  at java.util.AbstractList$Itr.next(AbstractList.java:343)

     [java]  at org.jbpm.task.event.MessagingTaskEventListener.taskCompleted(MessagingTaskEventListener.java:72)

     [java]  at org.jbpm.task.event.TaskEventSupport.fireTaskCompleted(TaskEventSupport.java:47)

     [java]  at org.jbpm.task.service.TaskServiceSession.postTaskCompleteOperation(TaskServiceSession.java:497)

     [java]  at org.jbpm.task.service.TaskServiceSession.taskOperation(TaskServiceSession.java:463)

     [java]  at org.jbpm.task.service.TaskServerHandler.messageReceived(TaskServerHandler.java:84)

     [java]  at org.jbpm.task.service.mina.MinaTaskServerHandler.messageReceived(MinaTaskServerHandler.java:41)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)

     [java]  at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427)

     [java]  at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)

     [java]  at org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:177)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)

     [java]  at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)

     [java]  at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)

     [java]  at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:692)

     [java]  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:645)

     [java]  at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:634)

     [java]  at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:66)

     [java]  at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1078)

     [java]  at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)

     [java]  at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

     [java]  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

     [java]  at java.lang.Thread.run(Thread.java:662)

Reply to this message by going to Community

Start a new discussion in jBPM at Community