New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sending a message with an empty ArrayList to a splitter provides the ArrayList to the outputChannel [INT-1442] #5439
Comments
Jettro Coenradie commented This might help: I created a Unit test to show the problem. The test was created in : SplitterIntegrationTests
|
Iwein Fuld commented I've found the problem and I've got a fix. I'll push it once I've aligned with Oleg. |
Iwein Fuld commented One question that we need to resolve before closing this issue is what the actual expected behavior is. My fix (in the nightly tomorrow) is splitting the empty message into zero reply messages. If you can think of any reason why not generating a reply in this case is a problem, please speak up. |
Mark Fisher commented I think no reply is the correct behavior. For consistency's sake, I think that also means we should add namespace support for the 'requires-reply' value for any Splitter. The general idea is that any component that might not produce any reply even if one is expected (e.g. by a waiting Gateway upstream) so that an immediate Exception can be thrown in such cases rather than waiting for a timeout. This is very similar to the case where a Service Activator returns NULL, and it's also somewhat similar to the "throw-exception-on-rejection" flag for a Filter. If others agree, then we can create a separate issue for exposing that namespace attribute. |
Oleg Zhurakousky commented I agree and that is what I was thinking. Empty collection = no reply, since nothing was sent downstream. However there has to be an option that explicitly notifies the caller that reply isn't coming and yes 'requires-reply' will be consistent with SA |
Jettro Coenradie commented I thinking an empty reply is also fine. The actual result is Thatcher the. Message was passed and IT was returned withouten errors. I would expect simular behavior for à collection with items as for à collection without items. |
Jettro Coenradie commented Sorry, my previous comment reads a bit weird. Tries to type it on my iPad, not good when it is on the Dutch language. I thinking an empty reply is also fine. The actual result is that the message was passed and it was returned withouten errors. I would expect simular behavior for a collection with items as for a collection without items. Although I do understand what Oleg is saying as well. I think that I did receive a reply message in the past. |
Oleg Zhurakousky commented Fixed with the following behavior.
no reply message will be sent to the output-channel |
Jettro Coenradie opened INT-1442 and commented
The implementation for Splitters on this topic must have changed from M3 to M7. When providing an empty ArrayList object to a splitter, in M3 no message was passed to the outputChannel. With the M7 release, an ArrayList object is send to the outputChannel.
Easy way to verify is the Cafe sample. Remove the orderlines from the order and you see the message.
For us this is a serious problem,
Affects: 2.0 M7
Sub-tasks:
The text was updated successfully, but these errors were encountered: