aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-15 11:10:28 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-15 11:10:28 -0400
commit3d9b862430f042af1bcb9a7cdffd446ed09f9ef9 (patch)
tree6db03e4fc97f3dd05f214fefa660e4c37807dfde
parent30d6e2cd6ce0702faaec73b7ffb59d9844fb6967 (diff)
parentae307f1c7d6e31d9813db3858dc912aff5b201d0 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
-rw-r--r--MediaBrowser.Installer/MainWindow.xaml.cs37
1 files changed, 25 insertions, 12 deletions
diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs
index d037924a0..6e4ad1258 100644
--- a/MediaBrowser.Installer/MainWindow.xaml.cs
+++ b/MediaBrowser.Installer/MainWindow.xaml.cs
@@ -265,18 +265,32 @@ namespace MediaBrowser.Installer
{
// Extract
lblStatus.Text = "Extracting Package...";
- try
- {
- ExtractPackage(archive);
- // We're done with it so delete it (this is necessary for update operations)
- TryDelete(archive);
- }
- catch (Exception e)
+ var retryCount = 0;
+ var success = false;
+ while (!success && retryCount < 3)
{
- SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message + "\n\n" + e.StackTrace);
- // Delete archive even if failed so we don't try again with this one
- TryDelete(archive);
- return;
+ try
+ {
+ ExtractPackage(archive);
+ success = true;
+ // We're done with it so delete it (this is necessary for update operations)
+ TryDelete(archive);
+ }
+ catch (Exception e)
+ {
+ if (retryCount < 3)
+ {
+ retryCount++;
+ Thread.Sleep(500);
+ }
+ else
+ {
+ // Delete archive even if failed so we don't try again with this one
+ TryDelete(archive);
+ SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message);
+ return;
+ }
+ }
}
// Create shortcut
@@ -496,7 +510,6 @@ namespace MediaBrowser.Installer
{
//Rollback
RollBack(systemDir, backupDir);
- TryDelete(archive); // so we don't try again if its an update
throw new ApplicationException(string.Format("Could not extract {0} to {1} after {2} attempts.\n\n{3}", archive, RootPath, retryCount, e.Message));
}
}