Github user gemmellr commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/2490#discussion_r245955337
--- Diff:
artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionCreateConsumerMessage.java
---
@@ -104,6 +119,11 @@ public void decodeRest(final ActiveMQBuffer buffer) {
filterString = buffer.readNullableSimpleString();
browseOnly = buffer.readBoolean();
requiresResponse = buffer.readBoolean();
+ if (buffer.readableBytes() > 0) {
--- End diff --
I assume this is to allow for old clients that don't send this value. Would
a more specific version check be clearer here for later reference? Related, I'm
guessing other changes already made for 2.7.0 have updated the version info
since it doesn't look to change here?
Also, is the reverse case safe, does an older server failing to read the
additional value (seemingly always sent now) have potential to lead to any
issues on older servers, i.e how might the buffer continue to be used later if
at all? Should the client omit the value for older servers? (Or does the
presumed version change prevent the new client working with the old server
anyway? I don't know how that stuff is handled, just commenting from reading
the diff here).
---