Bug #4182
Updated by Rob Nahf over 10 years ago
In STAGE, objects reharvested generate syncFailed exceptions when there are no changes.
The reharvest treats the task as an update to the systemMetadata, and when it doesn't find a change in the two fields that are allowed to change, it assumes there the change is a change somewhere else, which would be disallowed, so generates a syncFailed. If nothing has changed, a syncFailed is still thrown.
Also, by visual inspection, the TransferObjectTask.updateSystemMetadata logic is inadequate in that it only updates either the obsoletedBy or the isArchived field, but not both, which seems to be possible with non-API changes to systemMetadata.
The reharvest treats the task as an update to the systemMetadata, and when it doesn't find a change in the two fields that are allowed to change, it assumes there the change is a change somewhere else, which would be disallowed, so generates a syncFailed. If nothing has changed, a syncFailed is still thrown.
Also, by visual inspection, the TransferObjectTask.updateSystemMetadata logic is inadequate in that it only updates either the obsoletedBy or the isArchived field, but not both, which seems to be possible with non-API changes to systemMetadata.