ARTEMIS-1009 Fixing compatibility there was an issue with running older clients Found by this testsuite:
https://github.com/clebertsuconic/messaging-versioning this will fix further compatibility issues Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/94b47e37 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/94b47e37 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/94b47e37 Branch: refs/heads/master Commit: 94b47e370b530e1ce01b0e1f1cc1b1c1aa57c4c1 Parents: 973c519 Author: Clebert Suconic <[email protected]> Authored: Mon Mar 6 17:19:35 2017 -0500 Committer: Clebert Suconic <[email protected]> Committed: Mon Mar 6 22:09:41 2017 -0500 ---------------------------------------------------------------------- .../org/apache/activemq/artemis/core/message/impl/CoreMessage.java | 2 +- .../java/org/apache/activemq/artemis/message/CoreMessageTest.java | 2 +- .../activemq/artemis/tests/integration/client/ConsumerTest.java | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/94b47e37/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java ---------------------------------------------------------------------- diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java index a9e2900..e8d7cc5 100644 --- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java +++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/message/impl/CoreMessage.java @@ -514,7 +514,7 @@ public class CoreMessage extends RefCountMessage implements ICoreMessage { // so we always need to take the BUFFER_HEADER_SPACE from packet impl into consideration endOfBodyPosition = writableBuffer.writerIndex() + BUFFER_HEADER_SPACE - 4; } else if (endOfBodyPosition <= 0) { - endOfBodyPosition = BUFFER_HEADER_SPACE; + endOfBodyPosition = BUFFER_HEADER_SPACE + DataConstants.SIZE_INT; } buffer.setIndex(0, 0); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/94b47e37/artemis-core-client/src/test/java/org/apache/activemq/artemis/message/CoreMessageTest.java ---------------------------------------------------------------------- diff --git a/artemis-core-client/src/test/java/org/apache/activemq/artemis/message/CoreMessageTest.java b/artemis-core-client/src/test/java/org/apache/activemq/artemis/message/CoreMessageTest.java index 5e92eaf..ec94011 100644 --- a/artemis-core-client/src/test/java/org/apache/activemq/artemis/message/CoreMessageTest.java +++ b/artemis-core-client/src/test/java/org/apache/activemq/artemis/message/CoreMessageTest.java @@ -197,7 +197,7 @@ public class CoreMessageTest { empty2.receiveBuffer(buffer); try { - empty2.getBodyBuffer().readByte(); + empty2.getBodyBuffer().readLong(); Assert.fail("should throw exception"); } catch (Exception expected) { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/94b47e37/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java index b957291..a2f6534 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/ConsumerTest.java @@ -190,6 +190,8 @@ public class ConsumerTest extends ActiveMQTestBase { Assert.assertEquals("hi", message2.getReadOnlyBodyBuffer().readString()); + Assert.assertNull(consumer.receiveImmediate()); + session.close(); }
