Polish orphaned case znode deletion

This commit is contained in:
Richard Cordovano 2019-04-08 12:05:07 -04:00
parent 0cfd04727a
commit c8e94e012b
3 changed files with 15 additions and 12 deletions

View File

@ -143,8 +143,7 @@ CaseNodesCleanupTask.progress.connectingToCoordSvc=Connecting to the coordinatio
# {0} - node path
CaseNodesCleanupTask.progress.deletingOrphanedCaseNode=Deleting orphaned case node {0}...
CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes...
CaseNodesCleanupTask.progress.lockingManifest=Deleting orphaned case node {0}...
CaseNodesCleanupTask.progress.startMessage=Starting deletion...
CaseNodesCleanupTask.progress.startMessage=Starting orphaned case znode cleanup...
ConfirmationDialog.DoNotDelete=Do not delete
ConfirmationDialog.Delete=Permanently delete
ConfirmationDialog.DeleteAreYouSure=The entire case will be removed. Are you sure you want to delete case
@ -204,7 +203,6 @@ DeleteCaseTask.progress.deletingResourcesLockNode=Deleting case resources znode.
DeleteCaseTask.progress.gettingManifestPaths=Getting manifest file paths...
# {0} - manifest file path
DeleteCaseTask.progress.lockingManifest=Locking manifest file {0}...
DeleteCaseTask.progress.Manifest=Deleting manifest file {0}...
DeleteCaseTask.progress.openingCaseDatabase=Opening the case database...
DeleteCaseTask.progress.openingCaseMetadataFile=Opening case metadata file...
# {0} - manifest file path

View File

@ -48,13 +48,6 @@ final class CaseNodesCleanupAction extends AbstractAction {
final FutureTask<Void> future = new FutureTask<>(task, null);
taskCanceller.setFuture(future);
new Thread(future).start();
try {
future.get();
} catch (InterruptedException ex) {
Exceptions.printStackTrace(ex);
} catch (ExecutionException ex) {
Exceptions.printStackTrace(ex);
}
}
@Override

View File

@ -51,10 +51,12 @@ final class CaseNodesCleanupTask implements Runnable {
@Override
@NbBundle.Messages({
"CaseNodesCleanupTask.progress.startMessage=Starting orphaned case znode cleanup...",
"CaseNodesCleanupTask.progress.connectingToCoordSvc=Connecting to the coordination service...",
"CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes..."
})
public void run() {
progress.start(Bundle.CaseNodesCleanupTask_progress_startMessage());
try {
progress.progress(Bundle.CaseNodesCleanupTask_progress_connectingToCoordSvc());
logger.log(Level.INFO, "Connecting to the coordination service for orphan case node clean up"); // NON-NLS
@ -67,7 +69,7 @@ final class CaseNodesCleanupTask implements Runnable {
}
progress.progress(Bundle.CaseNodesCleanupTask_progress_gettingCaseNodesListing());
logger.log(Level.INFO, "Querying coordination service for case nodes for orphan case node clean up"); // NON-NLS
logger.log(Level.INFO, "Querying coordination service for case nodes for orphaned case node clean up"); // NON-NLS
List<CaseNodeData> nodeDataList;
try {
nodeDataList = CaseNodeDataCollector.getNodeData();
@ -99,11 +101,21 @@ final class CaseNodesCleanupTask implements Runnable {
deleteNode(coordinationService, caseName, nodePath);
} catch (InterruptedException ex) {
logger.log(Level.WARNING, String.format("Unexpected interrupt while deleting znode %s for %s", nodePath, caseName), ex); // NON-NLS
logger.log(Level.WARNING, String.format("Unexpected interrupt while deleting orphaned znode %s for %s", nodePath, caseName), ex); // NON-NLS
return;
}
}
}
} catch (Exception ex) {
/*
* This is an unexpected runtime exceptions firewall. It is here
* because this task is designed to be able to be run in scenarios
* where there is no call to get() on a Future<Void> associated with
* the task, so this ensures that any such errors get logged.
*/
logger.log(Level.SEVERE, "Unexpected error during orphan case znode cleanup", ex); // NON-NLS
throw ex;
} finally {
progress.finish();
}