@@ -32,32 +32,39 @@ public function process(Message $message, Context $context)
3232 }
3333
3434 if ($ message ->isRedelivered ()) {
35- $ replyMessage = $ context ->createMessage (false );
36- $ replyQueue = $ context ->createQueue ($ message ->getReplyTo ());
37- $ context ->createProducer ()->send ($ replyQueue , $ replyMessage );
35+ $ this ->sendReply ($ context , $ message , false );
3836
3937 return self ::REJECT ;
4038 }
4139
42- $ options = JSON ::decode ($ message ->getBody ());
40+ try {
41+ $ options = JSON ::decode ($ message ->getBody ());
4342
44- $ provider = $ this ->providerRegistry ->getProvider ($ options ['indexName ' ], $ options ['typeName ' ]);
45- $ provider ->populate (null , $ options );
43+ $ provider = $ this ->providerRegistry ->getProvider ($ options ['indexName ' ], $ options ['typeName ' ]);
44+ $ provider ->populate (null , $ options );
4645
47- $ this ->sendReply ($ context , $ message-> getReplyTo () , true );
46+ $ this ->sendReply ($ context , $ message , true );
4847
49- return self ::ACK ;
48+ return self ::ACK ;
49+ } catch (\Exception $ e ) {
50+ $ this ->sendReply ($ context , $ message , false );
51+
52+ return self ::REJECT ;
53+ }
5054 }
5155
5256 /**
5357 * @param Context $context
54- * @param string $replyTo
55- * @param bool $message
58+ * @param Message $message
59+ * @param bool $successful
5660 */
57- private function sendReply (Context $ context , $ replyTo , $ message )
61+ private function sendReply (Context $ context , Message $ message , $ successful )
5862 {
59- $ replyMessage = $ context ->createMessage ($ message );
60- $ replyQueue = $ context ->createQueue ($ replyTo );
63+ $ replyMessage = $ context ->createMessage ($ message ->getBody (), $ message ->getProperties (), $ message ->getHeaders ());
64+ $ replyMessage ->setProperty ('fos-populate-successful ' , (int ) $ successful );
65+
66+ $ replyQueue = $ context ->createQueue ($ message ->getReplyTo ());
67+
6168 $ context ->createProducer ()->send ($ replyQueue , $ replyMessage );
6269 }
6370}
0 commit comments