catch all exception and return a user friendly exception message

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2016-11-02 18:05:14 +01:00
parent e81d04cd8d
commit 4623b70cc9
No known key found for this signature in database
GPG key ID: 2378A753E2BF04F6
2 changed files with 15 additions and 8 deletions

View file

@ -222,6 +222,8 @@ class FederatedShareProvider implements IShareProvider {
$token
);
$failure = false;
try {
$sharedByFederatedId = $share->getSharedBy();
if ($this->userManager->userExists($sharedByFederatedId)) {
@ -239,17 +241,22 @@ class FederatedShareProvider implements IShareProvider {
);
if ($send === false) {
$message_t = $this->l->t('Sharing %s failed, could not find %s, maybe the server is currently unreachable.',
[$share->getNode()->getName(), $share->getSharedWith()]);
throw new \Exception($message_t);
$failure = true;
}
} catch (\Exception $e) {
$this->logger->error('Failed to notify remote server of federated share, removing share (' . $e->getMessage() . ')');
$failure = true;
}
if($failure) {
$this->removeShareFromTableById($shareId);
throw $e;
$message_t = $this->l->t('Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate.',
[$share->getNode()->getName(), $share->getSharedWith()]);
throw new \Exception($message_t);
}
return $shareId;
}
/**

View file

@ -227,7 +227,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$share = $this->provider->create($share);
$this->fail();
} catch (\Exception $e) {
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable.', $e->getMessage());
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable or uses a self-signed certificate.', $e->getMessage());
}
$qb = $this->connection->getQueryBuilder();
@ -283,7 +283,7 @@ class FederatedShareProviderTest extends \Test\TestCase {
$share = $this->provider->create($share);
$this->fail();
} catch (\Exception $e) {
$this->assertEquals('dummy', $e->getMessage());
$this->assertEquals('Sharing myFile failed, could not find user@server.com, maybe the server is currently unreachable or uses a self-signed certificate.', $e->getMessage());
}
$qb = $this->connection->getQueryBuilder();
@ -707,8 +707,8 @@ class FederatedShareProviderTest extends \Test\TestCase {
$userManager = \OC::$server->getUserManager();
$rootFolder = \OC::$server->getRootFolder();
$u1 = $userManager->createUser('testFed', 'test');
$u2 = $userManager->createUser('testFed2', 'test');
$u1 = $userManager->createUser('testFed', md5(time()));
$u2 = $userManager->createUser('testFed2', md5(time()));
$folder1 = $rootFolder->getUserFolder($u1->getUID())->newFolder('foo');
$file1 = $folder1->newFile('bar1');