From e1a79cd651850e972e27f05a6667dcd088aa1bff Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 4 Sep 2015 16:17:27 +0200 Subject: [PATCH] Avoid re-propagation of shares during one propagation run * fix was proposed by @nickvergessen --- .../files_sharing/lib/propagation/recipientpropagator.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php index 1176410686..420cacb3d2 100644 --- a/apps/files_sharing/lib/propagation/recipientpropagator.php +++ b/apps/files_sharing/lib/propagation/recipientpropagator.php @@ -126,7 +126,13 @@ class RecipientPropagator { }); } + protected $propagatingIds = []; + public function propagateById($id) { + if (isset($this->propagatingIds[$id])) { + return; + } + $this->propagatingIds[$id] = true; $shares = Share::getAllSharesForFileId($id); foreach ($shares as $share) { // propagate down the share tree @@ -141,5 +147,7 @@ class RecipientPropagator { $watcher->writeHook(['path' => $path]); } } + + unset($this->propagatingIds[$id]); } }