Merge branch '4920-delete-orphan-case-nodes' into 4922-delete-orphan-manifest-nodes

This commit is contained in:
Richard Cordovano 2019-04-08 12:06:13 -04:00
commit d4fed15e35
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 # {0} - node path
CaseNodesCleanupTask.progress.deletingOrphanedCaseNode=Deleting orphaned case node {0}... CaseNodesCleanupTask.progress.deletingOrphanedCaseNode=Deleting orphaned case node {0}...
CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes... CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes...
CaseNodesCleanupTask.progress.lockingManifest=Deleting orphaned case node {0}... CaseNodesCleanupTask.progress.startMessage=Starting orphaned case znode cleanup...
CaseNodesCleanupTask.progress.startMessage=Starting deletion...
ConfirmationDialog.DoNotDelete=Do not delete ConfirmationDialog.DoNotDelete=Do not delete
ConfirmationDialog.Delete=Permanently delete ConfirmationDialog.Delete=Permanently delete
ConfirmationDialog.DeleteAreYouSure=The entire case will be removed. Are you sure you want to delete case 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... DeleteCaseTask.progress.gettingManifestPaths=Getting manifest file paths...
# {0} - manifest file path # {0} - manifest file path
DeleteCaseTask.progress.lockingManifest=Locking manifest file {0}... DeleteCaseTask.progress.lockingManifest=Locking manifest file {0}...
DeleteCaseTask.progress.Manifest=Deleting manifest file {0}...
DeleteCaseTask.progress.openingCaseDatabase=Opening the case database... DeleteCaseTask.progress.openingCaseDatabase=Opening the case database...
DeleteCaseTask.progress.openingCaseMetadataFile=Opening case metadata file... DeleteCaseTask.progress.openingCaseMetadataFile=Opening case metadata file...
# {0} - manifest file path # {0} - manifest file path

View File

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

View File

@ -51,10 +51,12 @@ final class CaseNodesCleanupTask implements Runnable {
@Override @Override
@NbBundle.Messages({ @NbBundle.Messages({
"CaseNodesCleanupTask.progress.startMessage=Starting orphaned case znode cleanup...",
"CaseNodesCleanupTask.progress.connectingToCoordSvc=Connecting to the coordination service...", "CaseNodesCleanupTask.progress.connectingToCoordSvc=Connecting to the coordination service...",
"CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes..." "CaseNodesCleanupTask.progress.gettingCaseNodesListing=Querying coordination service for case nodes..."
}) })
public void run() { public void run() {
progress.start(Bundle.CaseNodesCleanupTask_progress_startMessage());
try { try {
progress.progress(Bundle.CaseNodesCleanupTask_progress_connectingToCoordSvc()); progress.progress(Bundle.CaseNodesCleanupTask_progress_connectingToCoordSvc());
logger.log(Level.INFO, "Connecting to the coordination service for orphan case node clean up"); // NON-NLS 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()); 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; List<CaseNodeData> nodeDataList;
try { try {
nodeDataList = CaseNodeDataCollector.getNodeData(); nodeDataList = CaseNodeDataCollector.getNodeData();
@ -99,11 +101,21 @@ final class CaseNodesCleanupTask implements Runnable {
deleteNode(coordinationService, caseName, nodePath); deleteNode(coordinationService, caseName, nodePath);
} catch (InterruptedException ex) { } 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; 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 { } finally {
progress.finish(); progress.finish();
} }