Bug #6542
closedFix MNodeService.systemMetadataChanged() to be asynchronous
0%
Description
The DataONE MNWebTester will at times show failures against Metacat MNs for calls to MNAuthorization.systemMetadataChanged(). The exceptions usually occur after the call has been received. This prompted a review of the behavior, and we agreed that all implementations should return 'true' (HTTP 200) upon successful receipt of the notification, and queue the processing of the message asynchronously.
Fix the MNodeService.systemMetadataChanged() method such that immediately returns true if the mime-multipart parameters that are sent are valid and if the caller is authorized. Queue the processing of the message (getting the newest system metadata from the CN) by sending the task to an ExecutorService. Note that we're doing this already for MNResourceHandler.replicate(), so that's probably a good starting point.