diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java
new file mode 100644
index 0000000000..2b6b26ec91
--- /dev/null
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/MessageBufferTest.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.activemq.artemis.tests.integration.client;
+
+import java.util.UUID;
+
+import org.apache.activemq.artemis.api.core.client.ClientConsumer;
+import org.apache.activemq.artemis.api.core.client.ClientProducer;
+import org.apache.activemq.artemis.api.core.client.ClientSession;
+import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
+import org.apache.activemq.artemis.api.core.client.ServerLocator;
+import org.apache.activemq.artemis.core.client.impl.ClientMessageImpl;
+import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class MessageBufferTest extends ActiveMQTestBase {
+
+ protected ActiveMQServer server;
+ protected ClientSession session;
+ protected ClientSessionFactory sf;
+ protected ServerLocator locator;
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ server = createServer(false, createDefaultInVMConfig());
+ server.start();
+ locator = createInVMNonHALocator();
+ sf = createSessionFactory(locator);
+ session = addClientSession(sf.createSession(false, true, true));
+ }
+
+ @Test
+ public void simpleTest() throws Exception {
+ final String data = "Simple Text " + UUID.randomUUID().toString();
+ final String queueName = "simpleQueue";
+ final String addressName = "simpleAddress";
+
+ session.createQueue(addressName, queueName);
+ ClientProducer producer = session.createProducer(addressName);
+
+ ClientMessageImpl message = (ClientMessageImpl)session.createMessage(true);
+ message.getBodyBuffer().writeString(data);
+
+ for (int i = 0; i < 100; i++) {
+ message.putStringProperty("key", "int" + i);
+ // JMS layer will always call this before sending
+ message.getBodyBuffer().resetReaderIndex();
+ producer.send(message);
+ session.commit();
+ Assert.assertTrue("Message body growing indefinitely and unexpectedly", message.getBodySize() < 1000);
+
+ }
+
+ producer.send(message);
+ producer.close();
+ ClientConsumer consumer = session.createConsumer(queueName);
+ session.start();
+
+ assertNotNull(message);
+ message.acknowledge();
+ assertEquals(data, message.getBodyBuffer().readString());
+ }
+}