From fd8d6b8187a1a70c64db5d23887273ae112db9d3 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 19 May 2019 16:33:13 +0200 Subject: [PATCH] [Messenger] Fix undefined index on read timeout --- .../Transport/RedisExt/ConnectionTest.php | 18 +++++++++++++++++- .../Transport/RedisExt/Connection.php | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php index fae72fa7819bd..c2654d326d0f5 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/RedisExt/ConnectionTest.php @@ -115,7 +115,8 @@ public function testUnexpectedRedisError() public function testGetAfterReject() { - $connection = Connection::fromDsn('redis://localhost/messenger-rejectthenget'); + $redis = new \Redis(); + $connection = Connection::fromDsn('redis://localhost/messenger-rejectthenget', [], $redis); try { $connection->setup(); } catch (TransportException $e) { @@ -129,5 +130,20 @@ public function testGetAfterReject() $connection = Connection::fromDsn('redis://localhost/messenger-rejectthenget'); $this->assertNotNull($connection->get()); + + $redis->del('messenger-rejectthenget'); + } + + public function testBlockingTimeout() + { + $redis = new \Redis(); + $connection = Connection::fromDsn('redis://localhost/messenger-blockingtimeout', ['blocking_timeout' => 1], $redis); + try { + $connection->setup(); + } catch (TransportException $e) { + } + + $this->assertNull($connection->get()); + $redis->del('messenger-blockingtimeout'); } } diff --git a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php index 66dc9fe9d6437..566e3d6c62321 100644 --- a/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php +++ b/src/Symfony/Component/Messenger/Transport/RedisExt/Connection.php @@ -102,7 +102,7 @@ public function get(): ?array return $this->get(); } - foreach ($messages[$this->stream] as $key => $message) { + foreach ($messages[$this->stream] ?? [] as $key => $message) { $redisEnvelope = \json_decode($message['message'], true); return [ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy