When MongoDbMessageStore is used as message store for delayer it fails to read messages from MongoDB.
Delayer is wrapping GenericMessage into DelayHandler.DelayedMessageWrapper, and MongoDbMessageStore is warping this again to MongoDbMessageStore.MessageWrapper. In the database there are MongoDbMessageStore.MessageWrapper -> DelayHandler.DelayedMessageWrapper -> GenericMessage -> Payload.
MongoDbMessageStore.MessageReadingMongoConverter does not provide special handling for DelayHandler.DelayedMessageWrapper as it done for MongoDbMessageStore.MessageWrapper. And because DelayHandler.DelayedMessageWrapper stores GenericMessage without default constructor, MongoDbMessageStore.MessageReadingMongoConverter fails to read it from MongoDB.
Hi, Roman!
Thanks, that you point it out!
It's a pity, that we haven't got integration tests on the matter before...
After some investigation several other issue appeared around MongoDbMessageStore.
So, it will be immediate task for us and we will try to fix it ASAP.
Roman Leicht opened INT-3070 and commented
When MongoDbMessageStore is used as message store for delayer it fails to read messages from MongoDB.
Delayer is wrapping GenericMessage into DelayHandler.DelayedMessageWrapper, and MongoDbMessageStore is warping this again to MongoDbMessageStore.MessageWrapper. In the database there are MongoDbMessageStore.MessageWrapper -> DelayHandler.DelayedMessageWrapper -> GenericMessage -> Payload.
MongoDbMessageStore.MessageReadingMongoConverter does not provide special handling for DelayHandler.DelayedMessageWrapper as it done for MongoDbMessageStore.MessageWrapper. And because DelayHandler.DelayedMessageWrapper stores GenericMessage without default constructor, MongoDbMessageStore.MessageReadingMongoConverter fails to read it from MongoDB.
Affects: 2.2.4
Sub-tasks:
Ensure Message conversion for MongoDbMessageStore in case of within payload [INT-3076] #7058 Ensure Message conversion for MongoDbMessageStore in case of within payload
Ensure that Delayer works correctly with RedisMessageStore [INT-3078] #7060 Ensure that Delayer works correctly with RedisMessageStore
Ensure that Delayer works correctly with GemfireMessageStore [INT-3079] #7061 Ensure that Delayer works correctly with GemfireMessageStore
Issue Links:
("depends on")
The text was updated successfully, but these errors were encountered: