From 4749f12de9c9e36130649a6597501e65627e9c5e Mon Sep 17 00:00:00 2001
From: Patrick Simpson
Date: Wed, 22 Mar 2017 13:44:52 +0100
Subject: [PATCH] Exception while loading shared folder tree nodes is now
logged. Any nodes whose parents are missing are silently ignored.
---
.../AcaciaZPushPlugin/Controls/KTreeNodeLoader.cs | 1 +
.../ZPush/API/SharedFolders/SharedFoldersAPI.cs | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Controls/KTreeNodeLoader.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Controls/KTreeNodeLoader.cs
index 6ba4688..5022ade 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Controls/KTreeNodeLoader.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Controls/KTreeNodeLoader.cs
@@ -107,6 +107,7 @@ namespace Acacia.Controls
}, true)
.OnError(error =>
{
+ Logger.Instance.Error(this, "Exception while fetching child nodes: {0}", error);
// On error return an empty node list
State = LoadingState.Error;
return new KTreeNodes(node);
diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/API/SharedFolders/SharedFoldersAPI.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/API/SharedFolders/SharedFoldersAPI.cs
index 57f7295..71e9562 100644
--- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/API/SharedFolders/SharedFoldersAPI.cs
+++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/ZPush/API/SharedFolders/SharedFoldersAPI.cs
@@ -96,10 +96,13 @@ namespace Acacia.ZPush.API.SharedFolders
rootNodes.Add(folder);
parent = null;
}
+ else if (!foldersByServerId.ContainsKey(folder.ParentId))
+ {
+ // Ignore the node if the parent is not available
+ continue;
+ }
else
{
- if (!foldersByServerId.ContainsKey(folder.ParentId))
- throw new Exception("Missing parent folder: " + folder.ParentId);
parent = foldersByServerId[folder.ParentId];
parent.Children.Add(folder);
}