8000 Fix · symfony/symfony@05dcb17 · GitHub
[go: up one dir, main page]

Skip to content

Commit 05dcb17

Browse files
Fix
1 parent e96f873 commit 05dcb17

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

src/Symfony/Component/Messenger/Middleware/LockMiddleware.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Messenger\Middleware;
1313

14+
use Symfony\Component\Lock\Key;
1415
use Symfony\Component\Lock\LockFactory;
1516
use Symfony\Component\Messenger\Envelope;
1617
use Symfony\Component\Messenger\Message\LockableMessageInterface;
@@ -39,9 +40,11 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope
3940
if (null === $envelope->last(ReceivedStamp::class)) {
4041
if ($message instanceof LockableMessageInterface) {
4142
// If we're trying to dispatch a lockable message.
42-
$key = $message->getKey();
43+
$keyResource = $message->getKey();
44+
45+
if (null !== $keyResource) {
46+
$key = new Key($keyResource);
4347

44-
if (null !== $key) {
4548
// The acquire call must be done before stamping the message
4649
// in order to have the full state of the key in the stamp.
4750
$lock = $message instanceof TTLAwareLockableMessageInterface

src/Symfony/Component/Messenger/Tests/Fixtures/DummyLockableMessage.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
namespace Symfony\Component\Messenger\Tests\Fixtures;
44

5-
use Symfony\Component\Lock\Key;
65
use Symfony\Component\Messenger\Message\LockableMessageInterface;
76

87
class DummyLockableMessage implements DummyMessageInterface, LockableMessageInterface
98
{
109
private string $message;
1110

12-
private ?Key $key;
11+
private ?string $key;
1312

14-
public function __construct(string $message, ?Key $key)
13+
public function __construct(string $message, ?string $key)
1514
{
1615
$this->message = $message;
1716
$this->key = $key;
@@ -22,8 +21,13 @@ public function getMessage(): string
2221
return $this->message;
2322
}
2423

25-
public function getKey(): ?Key
24+
public function getKey(): ?string
2625
{
2726
return $this->key;
2827
}
28+
29+
public function shouldBeReleasedBeforeHandlerCall(): bool
30+
{
31+
return false;
32+
}
2933
}

src/Symfony/Component/Messenger/Tests/Middleware/LockMiddlewareTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Component\Messenger\Tests\Middleware;
1313

14-
use Symfony\Component\Lock\Key;
1514
use Symfony\Component\Lock\LockFactory;
1615
use Symfony\Component\Lock\Store\FlockStore;
1716
use Symfony\Component\Lock\Store\SemaphoreStore;
@@ -53,7 +52,7 @@ public function testLockMiddlewareIgnoreIfMessageHasNoKey()
5352

5453
public function testLockMiddlewareIfMessageHasKey()
5554
{
56-
$message = new DummyLockableMessage('Hello', new Key('id'));
55+
$message = new DummyLockableMessage('Hello', 'id');
5756
$envelope = new Envelope($message);
5857

5958
if (SemaphoreStore::isSupported()) {
@@ -67,7 +66,7 @@ public function testLockMiddlewareIfMessageHasKey()
6766
$envelope = $decorator->handle($envelope, $this->getStackMock(true));
6867
$this->assertNotNull($envelope->last(LockStamp::class));
6968

70-
$message2 = new DummyLockableMessage('Hello', new Key('id'));
69+
$message2 = new DummyLockableMessage('Hello', 'id');
7170
$envelope2 = new Envelope($message2);
7271

7372
$decorator->handle($envelope2, $this->getStackMock(false));
@@ -76,7 +75,7 @@ public function testLockMiddlewareIfMessageHasKey()
7675
$envelope = $envelope->with(new ReceivedStamp('transport'));
7776
$decorator->handle($envelope, $this->getStackMock(true));
7877

79-
$message3 = new DummyLockableMessage('Hello', new Key('id'));
78+
$message3 = new DummyLockableMessage('Hello', 'id');
8079
$envelope3 = new Envelope($message3);
8180
$decorator->handle($envelope3, $this->getStackMock(true));
8281
}

0 commit comments

Comments
 (0)
0