Seeing masking job failure on the portal with error as "Java.util.concurrentmodificationexception" when 2 different masking jobs(different projects) are completing at the same time. This issue is observed for 2 jobs where 2 jobs are failing:
From below snippet of log Could see that the Job 42940 is holding that csv being referred by 42941.
===================================================
2026-01-07 18:07:42.347 UTC [INFO ] [SimpleAsyncTaskExecutor-67] --- [U:][M:][P:] c.c.t.f.s.CallFastDataMasker: Job: 42941 counting number of audit samples received from each task
2026-01-07 18:07:42.350 UTC [ERROR] [SimpleAsyncTaskExecutor-67] --- [U:][M:][P:] c.c.t.f.a.FDMAudit: Must call closeProfile before calling initProfile again
2026-01-07 18:07:42.883 UTC [ERROR] [SimpleAsyncTaskExecutor-66] --- [U:][M:][P:] c.c.t.f.a.FDMAudit: Exception when reading samples from csv file
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.base/java.util.HashMap$KeyIterator.next(Unknown Source)
at com.ca.tdm.fdm.audit.FDMAudit.flushDBMaskingBatches(FDMAudit.java:726)
at com.ca.tdm.fdm.audit.FDMAudit.storeDBMasking(FDMAudit.java:641)
at com.ca.tdm.fdm.audit.FDMAudit.readSamples(FDMAudit.java:502)
at com.ca.tdm.fdm.audit.FDMAudit.readSamples(FDMAudit.java:123)
at com.ca.tdm.fdm.service.CallFastDataMasker.storeAuditSamples(CallFastDataMasker.java:1307)
at com.ca.tdm.fdm.service.CallFastDataMasker.startMaskingJob(CallFastDataMasker.java:985)
at jdk.internal.reflect.GeneratedMethodAccessor7326.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:114)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
2026-01-07 18:07:42.884 UTC [ERROR] [SimpleAsyncTaskExecutor-66] --- [U:][M:][P:] c.c.t.f.s.CallFastDataMasker: Failed to read samples output from FDM for profile: temp
2026-01-07 18:07:42.893 UTC [ERROR] [SimpleAsyncTaskExecutor-66] --- [U:][M:][P:] c.c.t.f.s.CallFastDataMasker: startMaskingJob: jobId: 42940: exception raised: {}
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.base/java.util.HashMap$KeyIterator.next(Unknown Source)
at com.ca.tdm.fdm.audit.FDMAudit.flushDBMaskingBatches(FDMAudit.java:726)
at com.ca.tdm.fdm.audit.FDMAudit.closeProfile(FDMAudit.java:116)
at com.ca.tdm.fdm.service.CallFastDataMasker.storeAuditSamples(CallFastDataMasker.java:1318)
at com.ca.tdm.fdm.service.CallFastDataMasker.startMaskingJob(CallFastDataMasker.java:985)
at jdk.internal.reflect.GeneratedMethodAccessor7326.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:114)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
2026-01-07 18:07:42.896 UTC [INFO ] [SimpleAsyncTaskExecutor-66] --- [U:][M:][P:] c.c.t.f.c.JobEngine: sendStatus: jobId: 42940: sending to job engine: status: FAILED info: java.util.ConcurrentModificationException
2026-01-07 18:07:43.284 UTC [ERROR] [SimpleAsyncTaskExecutor-66] --- [U:][M:][P:] o.s.a.i.SimpleAsyncUncaughtExceptionHandler: Unexpected exception occurred invoking async method: public void com.ca.tdm.fdm.service.CallFastDataMasker.startMaskingJob(java.lang.Long,com.ca.tdm.commons.masking.dto.PIIMaskingParameters,com.ca.tdm.commons.masking.dto.DataMaskConfigDto,org.springframework.security.core.context.SecurityContext,com.ca.tdm.fdm.client.CsvDownload,com.ca.tdm.fdm.client.JobEngine) throws java.io.IOException,java.lang.InterruptedException
java.util.ConcurrentModificationException: null
at java.base/java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.base/java.util.HashMap$KeyIterator.next(Unknown Source)
at com.ca.tdm.fdm.audit.FDMAudit.flushDBMaskingBatches(FDMAudit.java:726)
at com.ca.tdm.fdm.audit.FDMAudit.closeProfile(FDMAudit.java:116)
at com.ca.tdm.fdm.service.CallFastDataMasker.storeAuditSamples(CallFastDataMasker.java:1318)
at com.ca.tdm.fdm.service.CallFastDataMasker.startMaskingJob(CallFastDataMasker.java:985)
at jdk.internal.reflect.GeneratedMethodAccessor7326.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:360)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:114)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
==================================================
TDM 4.11.x
Identified as product defect.
Download and apply the new TDM Portal build number TDMWeb-4.11.5010.0.zip from below page:
https://knowledge.broadcom.com/external/article?articleId=10931