Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-4678

Recon may fail if source object is deleted during recon and a correlation query is defined

    Details

      Description

      Reconciliation may fail as a result of a NullPointerException thrown while populating the scope for the configured source correlationQuery.

      The following exception is observed within the OpenIDM log when the issue occurs:

      Nov 24, 2015 9:51:14 PM org.forgerock.openidm.sync.impl.ReconciliationService$1 run 
      INFO: Reconciliation reported exception 
      org.forgerock.openidm.sync.impl.SynchronizationException: Synchronization failed 
      at org.forgerock.openidm.sync.impl.ObjectMapping.doRecon(ObjectMapping.java:929) 
      at org.forgerock.openidm.sync.impl.ObjectMapping.recon(ObjectMapping.java:833) 
      at org.forgerock.openidm.sync.impl.ReconciliationService.reconcile(ReconciliationService.java:371) 
      at org.forgerock.openidm.sync.impl.ReconciliationService.access$000(ReconciliationService.java:87) 
      at org.forgerock.openidm.sync.impl.ReconciliationService$1.run(ReconciliationService.java:315) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:744) 
      Caused by: org.forgerock.openidm.sync.impl.SynchronizationException: Exception in executing recon task null 
      at org.forgerock.openidm.sync.impl.ReconFeeder.translateTaskThrowable(ReconFeeder.java:112) 
      at org.forgerock.openidm.sync.impl.ReconFeeder.execute(ReconFeeder.java:92) 
      at org.forgerock.openidm.sync.impl.ObjectMapping.doRecon(ObjectMapping.java:898) 
      ... 7 more 
      Caused by: java.lang.NullPointerException 
      at org.forgerock.openidm.sync.impl.ObjectMapping$SourceSyncOperation.correlateTarget(ObjectMapping.java:2196) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$SourceSyncOperation.correlateTarget(ObjectMapping.java:2172) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$SourceSyncOperation.assessSituation(ObjectMapping.java:2116) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$SourceSyncOperation.sync(ObjectMapping.java:1942) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$2.recon(ObjectMapping.java:1019) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$ReconTask.call(ObjectMapping.java:1139) 
      at org.forgerock.openidm.sync.impl.ObjectMapping$ReconTask.call(ObjectMapping.java:1109) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
      ... 3 more
      

      The problem can occur if the source object is deleted after reconciliation has started and the list of source object IDs has been queried but before getSourceObject() is invoked within SourceSyncOperation.correlateTarget() to load the source object.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                cgdrake Chris Drake
                Reporter:
                cgdrake Chris Drake
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: