/** * Optimizes the given writable archive file and notifies the user in case of an error. * * @param rwArchiveFile the writable archive file to optimize */ protected void optimizeArchive(AbstractRWArchiveFile rwArchiveFile) { isOptimizingArchive = true; while(true) { try { archiveToOptimize = rwArchiveFile; archiveToOptimize.optimizeArchive(); break; } catch(IOException e) { if(showErrorDialog(errorDialogTitle, Translator.get("error_while_optimizing_archive", rwArchiveFile.getName()))==FileJobAction.RETRY) continue; break; } } isOptimizingArchive = false; }
@Override protected void jobCompleted() { super.jobCompleted(); // If the source files are located inside an archive, optimize the archive file AbstractArchiveFile archiveFile = getBaseSourceFolder().getParentArchive(); if(archiveFile!=null && archiveFile.isArchive() && archiveFile.isWritable()) { while(true) { try { archiveToOptimize = ((AbstractRWArchiveFile)archiveFile); isOptimizingArchive = true; archiveToOptimize.optimizeArchive(); break; } catch(IOException e) { if(showErrorDialog(errorDialogTitle, Translator.get("error_while_optimizing_archive", archiveFile.getName()))==FileJobAction.RETRY) continue; break; } } isOptimizingArchive = true; } }