Masking job failing when completing at same time.
search cancel

Masking job failing when completing at same time.

book

Article ID: 429157

calendar_today

Updated On:

Products

CA Test Data Manager (Data Finder / Grid Tools)

Issue/Introduction

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)

==================================================

Environment

TDM 4.11.x

Cause

Identified as product defect.

Resolution

Download and apply the new TDM Portal build number TDMWeb-4.11.5010.0.zip from below page:

https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/release-announcements/Test-Data-Manager-TDM-Patches/16649

 

https://knowledge.broadcom.com/external/article?articleId=10931