Affects Version/s: OpenIDM 3.0.0, OpenIDM 3.1.0, OpenIDM 3.1.1, OpenIDM 4.0.0
Fix Version/s: OpenIDM 4.5.0
When the _targetQuery for a given mapping returns full objects within the results, the recon target phase may fail and/or behave unexpectedly.
One way to reproduce the problem is via the following:
1. Install OpenIDM 3.1.0 w/OpenDJ 2.6 as a source system (pre-populated with sample data)
2. Using sample2d as a base, configure the OpenDJ -> Managed User mapping to include the following source and target queries:
3. Perform a initial reconciliation from OpenDJ -> Manage User to both create and link the target objects
4. Modify the previously defined _sourceQuery and change it to the following:
The above will reduce the scope of visible source objects to a single OpenDJ account.
5. Re-run reconciliation with the new _sourceQuery. Notice that the target recon phase will to correctly process the remaining target objects and throw an error similar to the following:
Notice the target _id is being changed as a result of a miss-match within the state of the ResultIterable object used to cache the target query results: