From e14ae9996c7a36b85fc602fc3d82239a03e1b990 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 30 Jan 2008 00:53:22 +0000
Subject: [PATCH] When there is a problem deleting files in the uninstaller, just consider it a warning and inform the user that the problematic file might being used by another process.
---
opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java | 79 ++++++++++++++++++++++++++++++++++++---
1 files changed, 72 insertions(+), 7 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
index e23b86f..d20f2cf 100644
--- a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.guitools.uninstaller;
@@ -91,6 +91,7 @@
private ProgressStep status = UninstallProgressStep.NOT_STARTED;
private boolean runStarted;
private boolean errorOnRemoteOccurred;
+ private boolean errorDeletingOccurred;
private HashMap<ProgressStep, Integer> hmRatio =
new HashMap<ProgressStep, Integer>();
@@ -656,7 +657,7 @@
getFormattedSuccess(successMsg));
Message nonCriticalMsg;
- if (isCli())
+ if (!isCli())
{
nonCriticalMsg =
INFO_SUMMARY_UNINSTALL_FINISHED_WITH_ERROR_ON_REMOTE.get();
@@ -668,6 +669,18 @@
}
hmSummary.put(UninstallProgressStep.FINISHED_WITH_ERROR_ON_REMOTE,
getFormattedWarning(nonCriticalMsg));
+ if (!isCli())
+ {
+ nonCriticalMsg =
+ INFO_SUMMARY_UNINSTALL_FINISHED_WITH_ERROR_DELETING.get();
+ }
+ else
+ {
+ nonCriticalMsg =
+ INFO_SUMMARY_UNINSTALL_FINISHED_WITH_ERROR_DELETING_CLI.get();
+ }
+ hmSummary.put(UninstallProgressStep.FINISHED_WITH_ERROR_DELETING,
+ getFormattedWarning(nonCriticalMsg));
hmSummary.put(UninstallProgressStep.FINISHED_WITH_ERROR,
getFormattedError(
INFO_SUMMARY_UNINSTALL_FINISHED_WITH_ERROR.get()));
@@ -790,8 +803,24 @@
notifyListeners(getTaskSeparator());
}
- deleteExternalDatabaseFiles(dbsToDelete);
- displaySeparator = true;
+ try
+ {
+ deleteExternalDatabaseFiles(dbsToDelete);
+ displaySeparator = true;
+ }
+ catch (ApplicationException ae)
+ {
+ if (ae.getType() == ReturnCode.FILE_SYSTEM_ACCESS_ERROR)
+ {
+ errorDeletingOccurred = true;
+ Message msg = getFormattedWarning(ae.getMessageObject());
+ notifyListeners(msg);
+ }
+ else
+ {
+ throw ae;
+ }
+ }
}
Set<String> logsToDelete =
@@ -803,8 +832,24 @@
notifyListeners(getTaskSeparator());
}
- deleteExternalLogFiles(logsToDelete);
- displaySeparator = true;
+ try
+ {
+ deleteExternalLogFiles(logsToDelete);
+ displaySeparator = true;
+ }
+ catch (ApplicationException ae)
+ {
+ if (ae.getType() == ReturnCode.FILE_SYSTEM_ACCESS_ERROR)
+ {
+ errorDeletingOccurred = true;
+ Message msg = getFormattedWarning(ae.getMessageObject());
+ notifyListeners(msg);
+ }
+ else
+ {
+ throw ae;
+ }
+ }
}
UninstallUserData userData = getUninstallUserData();
@@ -820,13 +865,33 @@
if (somethingToDelete) {
status = UninstallProgressStep.DELETING_INSTALLATION_FILES;
- deleteInstallationFiles(getRatio(status),
+ try
+ {
+ deleteInstallationFiles(getRatio(status),
getRatio(UninstallProgressStep.FINISHED_SUCCESSFULLY));
+ }
+ catch (ApplicationException ae)
+ {
+ if (ae.getType() == ReturnCode.FILE_SYSTEM_ACCESS_ERROR)
+ {
+ errorDeletingOccurred = true;
+ Message msg = getFormattedWarning(ae.getMessageObject());
+ notifyListeners(msg);
+ }
+ else
+ {
+ throw ae;
+ }
+ }
}
if (errorOnRemoteOccurred)
{
status = UninstallProgressStep.FINISHED_WITH_ERROR_ON_REMOTE;
}
+ else if (errorDeletingOccurred)
+ {
+ status = UninstallProgressStep.FINISHED_WITH_ERROR_DELETING;
+ }
else
{
status = UninstallProgressStep.FINISHED_SUCCESSFULLY;
--
Gitblit v1.10.0