From 85225cce0ad29e0c9e3ee32d674232c4ee8595e6 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 30 Mar 2021 12:59:40 +0200 Subject: [PATCH] gracefully handle deleteFromSelf when share is already gone - handling race conditions Signed-off-by: Arthur Schiwon --- lib/private/Share20/DefaultShareProvider.php | 3 ++- tests/lib/Share20/DefaultShareProviderTest.php | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php index 25c347719e..f256ab25b6 100644 --- a/lib/private/Share20/DefaultShareProvider.php +++ b/lib/private/Share20/DefaultShareProvider.php @@ -470,7 +470,8 @@ class DefaultShareProvider implements IShareProvider { } if (!$group->inGroup($user)) { - throw new ProviderException('Recipient not in receiving group'); + // nothing left to do + return; } // Try to fetch user specific share diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php index ef623346d7..b21cec83a4 100644 --- a/tests/lib/Share20/DefaultShareProviderTest.php +++ b/tests/lib/Share20/DefaultShareProviderTest.php @@ -1575,9 +1575,6 @@ class DefaultShareProviderTest extends \Test\TestCase { public function testDeleteFromSelfGroupUserNotInGroup() { - $this->expectException(\OC\Share20\Exception\ProviderException::class); - $this->expectExceptionMessage('Recipient not in receiving group'); - $qb = $this->dbConn->getQueryBuilder(); $stmt = $qb->insert('share') ->values([