Support Article
ConcurrentModification exception in hasMessages When rule
Summary
An activity is configured on click of a button. In the activity, the hasMessages When rule is invoked. The ConcurrentModificationException displays on the screen on clicking the button. in RULE-OBJ-WHEN @BASECLASS HASMESSAGES :NULL
Error Messages
Exception caught while evaluating when
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:878)
at java.util.ArrayList$Itr.next(ArrayList.java:850)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.resetReferenceInformation(ClipboardPropertyImpl.java:5260)
at com.pega.pegarules.data.internal.clipboard.PropertyDataPageWrapper.clearPropertyValues(PropertyDataPageWrapper.java:1961)
at com.pega.pegarules.data.internal.clipboard.PropertyDataPageWrapper.populateDataFromPage(PropertyDataPageWrapper.java:1122)
at com.pega.pegarules.data.internal.clipboard.PropertyDataPageWrapper.refresh(PropertyDataPageWrapper.java:940)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.checkAssociation(ClipboardPropertyImpl.java:6188)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.getThis(ClipboardPropertyImpl.java:5108)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyBase.getThis(ClipboardPropertyBase.java:1526)
at com.pega.pegarules.data.internal.clipboard.ClipboardPropertyImpl.hasMessages(ClipboardPropertyImpl.java:3453)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.hasMessages(ClipboardPageImpl.java:3962)
at com.pega.pegarules.data.internal.clipboard.ClipboardPageImpl.hasMessages(ClipboardPageImpl.java:3995)
at com.pegarules.generated.hasMessages_071001_g2iWXetIUVd_Afo_MBZwOw.hasMessages07_10_01(hasMessages_071001_g2iWXetIUVd_Afo_MBZwOw.java:110)
at com.pegarules.generated.hasMessages_071001_g2iWXetIUVd_Afo_MBZwOw.invoke(hasMessages_071001_g2iWXetIUVd_Afo_MBZwOw.java:84)
at com.pega.pegarules.generation.internal.library.LibraryRuntime.resolveAndinvokeFunctionViaReflection(LibraryRuntime.java:133)
at com.pega.pegarules.generation.internal.library.LibraryRuntime.invokeLibraryRuntime(LibraryRuntime.java:110)
at com.pega.pegarules.session.internal.mgmt.Executable.invokeLibraryRuntime(Executable.java:8642)
at com.pega.pegarules.priv.generator.LibrarySupport.resolveAndInvokeFunctionViaReflection(LibrarySupport.java:181)
at com.pegarules.generated.pega_rules_default.hasMessages(pega_rules_default.java:2147)
at com.pegarules.generated.when.ra_when_hasmessages_8e97d69145a6536298f4d4f6b5175a86.evaluate(ra_when_hasmessages_8e97d69145a6536298f4d4f6b5175a86.java:50)
[WebContainer : 15] [TABTHREAD4] [ ] [:04.10.01] (ngineinterface.service.HttpAPI) ERROR: com.pega.pegarules.pub.PRRuntimeError
com.pega.pegarules.pub.PRRuntimeError: PRRuntimeError
at com.pega.pegarules.session.internal.mgmt.base.ThreadRunner.runActivitiesAlt(ThreadRunner.java:706)
at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.runActivitiesAlt(PRThreadImpl.java:433)
Caused by:
com.pega.pegarules.pub.runtime.IndeterminateConditionalException: ** in RULE-OBJ-WHEN @BASECLASS HASMESSAGES #20130918T235432.414 GMT: null
at com.pega.pegarules.priv.FUAUtil.activityPreTranIndeterminateConditionalCheck(FUAUtil.java:438)
Steps to Reproduce
Not Applicable
Root Cause
A defect in Pegasystems’ code or rules.
hasMessages rule iterates over a page’s content and checks for messages. During this iteration, if a reference property to a data page (Auto populate property) is encountered, the reference property is triggered. This modified the page structure and content. Hence, the concurrent modification exception occurred.
Resolution
Apply HFix-50939.
Published February 26, 2019 - 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.