Support Article
ConcurrentModificationException in parallel load of data pages
SA-19955
Summary
User is on Pega 7.1.7 and trying to call multiple interfacing systems for loading data pages in parallel.
Further user waits for the responses for these interface calls to come back using connect-wait. While loading these data pages in parallel, user observes:
"ConcurrentModificationExceptions" in the logs.
The issue is sporadic in user's environment and not reproducible every time. Whenever this issue is encountered, they start receiving the "ConcurrentModificationException" errors and the case is then routed to FlowProblems_Default. The exception is sporadic (occurs once every 1-2 months) and in the PegaRULES logs they doesn't find a "caused by" for the exception.
Error Messages
Exception
java.util.ConcurrentModificationException
at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:64)
at com.pega.pegarules.exec.internal.async.AsyncPoolNotificationHandler.getLoadErrorsIfAny(AsyncPoolNotificationHandler.java:84)
at com.pega.pegarules.exec.internal.async.AsyncServicesManager.registerOnDataPageAndWaitForUpdate(AsyncServicesManager.java:1308)
at com.pega.pegarules.exec.internal.async.AsyncServicesManager.waitOnLoadDataPageActivities(AsyncServicesManager.java:1246)
at com.pega.pegarules.session.internal.mgmt.Executable.waitOnLoadDataPageActivities(Executable.java:9688)
at com.pegarules.generated.activity.ra_action_processexternalpullsinparallel_bccaeb53ba4c77ca260e3abadc90f56f.step11_circum0(ra_action_processexternalpullsinparallel_bccaeb53ba4c77ca260e3abadc90f56f.java:1226)
at com.pegarules.generated.activity.ra_action_processexternalpullsinparallel_bccaeb53ba4c77ca260e3abadc90f56f.perform(ra_action_processexternalpullsinparallel_bccaeb53ba4c77ca260e3abadc90f56f.java:240)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)
at com.pegarules.generated.flow.ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.RunTaskActivity(ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.java:2122)
at com.pegarules.generated.flow.ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.Task_Utility1_circum0(ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.java:972)
at com.pegarules.generated.flow.ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.perform(ra_action_externalpullsparallel_1b854ce5b3782a4da9b241c34a72097b.java:581)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)
at com.pegarules.generated.flow.ra_action_processprospectexternalchecks_f68ebed7198faff947aa303b06f4f993.LaunchFlow(ra_action_processprospectexternalchecks_f68ebed7198faff947aa303b06f4f993.java:4184)
at com.pegarules.generated.flow.ra_action_processprospectexternalchecks_f68ebed7198faff947aa303b06f4f993.LaunchFlow(ra_action_processprospectexternalchecks_f68ebed7198faff947aa303b06f4f993.java:3840)
Steps to Reproduce
- Load data pages in parallel by calling some external interfaces.
- Wait for the responses to come back using Connect-Wait.
Root Cause
A defect in Pegasystems’ code or rules is identified as the root cause for this issue.
Resolution
Apply HFix-26037 to resolve the issue.
Published February 18, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.