You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/05/25 10:22:54 UTC

qpid-broker-j git commit: QPID-7689: [Java Broker] Cache message metadata size to avoid reloading metadata from disk

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master c5e8ab2ce -> 1857f0b0a


QPID-7689: [Java Broker] Cache message metadata size to avoid reloading metadata from disk


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/1857f0b0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/1857f0b0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/1857f0b0

Branch: refs/heads/master
Commit: 1857f0b0a74a98280bffd89a2b842ff6d9864429
Parents: c5e8ab2
Author: Lorenz Quack <lq...@apache.org>
Authored: Thu May 25 10:45:41 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Thu May 25 10:46:12 2017 +0100

----------------------------------------------------------------------
 .../store/berkeleydb/AbstractBDBMessageStore.java     | 14 +++++++++++---
 .../server/message/AbstractServerMessageImpl.java     |  2 +-
 .../qpid/server/message/internal/InternalMessage.java |  8 +++++++-
 .../apache/qpid/server/store/StoredMemoryMessage.java |  8 ++++++++
 .../org/apache/qpid/server/store/StoredMessage.java   |  2 ++
 .../server/store/serializer/v1/MessageRecord.java     |  2 +-
 .../server/txn/FlowToDiskTransactionObserver.java     |  4 ++--
 .../qpid/server/virtualhost/AbstractVirtualHost.java  |  4 +---
 .../v0_10/MessageConverter_Internal_to_v0_10.java     |  7 +++++++
 .../server/protocol/v0_10/MessageConverter_v0_10.java |  7 +++++++
 .../v0_8/MessageConverter_Internal_to_v0_8.java       |  7 +++++++
 .../server/protocol/v1_0/MessageConverter_to_1_0.java |  6 ++++++
 .../v0_10_v1_0/MessageConverter_1_0_to_v0_10.java     |  7 +++++++
 .../v0_8_v0_10/MessageConverter_0_10_to_0_8.java      |  7 +++++++
 .../v0_8_v0_10/MessageConverter_0_8_to_0_10.java      |  7 +++++++
 .../v0_8_v1_0/MessageConverter_1_0_to_v0_8.java       |  7 +++++++
 .../server/store/jdbc/AbstractJDBCMessageStore.java   | 14 +++++++++++---
 17 files changed, 99 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
----------------------------------------------------------------------
diff --git a/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java b/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
index dd9f02a..b6bd5c9 100644
--- a/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
+++ b/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
@@ -1013,6 +1013,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
 
         private final long _messageId;
         private final int _contentSize;
+        private final int _metadataSize;
         private MessageDataRef<T> _messageDataRef;
 
         StoredBDBMessage(long messageId, T metaData, boolean isRecovered)
@@ -1022,7 +1023,8 @@ public abstract class AbstractBDBMessageStore implements MessageStore
             _messageDataRef = new MessageDataRef<>(metaData, !isRecovered);
 
             _contentSize = metaData.getContentSize();
-            _inMemorySize.addAndGet(metaData.getStorableSize());
+            _metadataSize = metaData.getStorableSize();
+            _inMemorySize.addAndGet(_metadataSize);
         }
 
         @Override
@@ -1041,7 +1043,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
                     checkMessageStoreOpen();
                     metaData = (T) getMessageMetaData(_messageId);
                     _messageDataRef = new MessageDataRef<>(metaData, _messageDataRef.getData(), false);
-                    _inMemorySize.addAndGet(metaData.getStorableSize());
+                    _inMemorySize.addAndGet(getMetadataSize());
                 }
                 return metaData;
             }
@@ -1155,6 +1157,12 @@ public abstract class AbstractBDBMessageStore implements MessageStore
             return _contentSize;
         }
 
+        @Override
+        public int getMetadataSize()
+        {
+            return _metadataSize;
+        }
+
         synchronized void store(Transaction txn)
         {
             if (!stored())
@@ -1207,7 +1215,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
             long bytesCleared = 0;
             if ((metaData =_messageDataRef.getMetaData()) != null)
             {
-                bytesCleared += metaData.getStorableSize();
+                bytesCleared += getMetadataSize();
                 metaData.dispose();
             }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java b/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
index 978abc5..32fb369 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
@@ -65,7 +65,7 @@ public abstract class AbstractServerMessageImpl<X extends AbstractServerMessageI
     @Override
     public long getSizeIncludingHeader()
     {
-        return _handle.getMetaData().getContentSize() + _handle.getMetaData().getStorableSize();
+        return _handle.getContentSize() + _handle.getMetadataSize();
     }
 
     public StoredMessage<T> getStoredMessage()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
index 70ecd61..6dcf4b6 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
@@ -212,7 +212,7 @@ public class InternalMessage extends AbstractServerMessageImpl<InternalMessage,
 
                 final InternalMessageMetaData metaData =
                         InternalMessageMetaData.create(persistent, header, bytes.length);
-
+                final int metadataSize = metaData.getStorableSize();
 
                 return new StoredMessage<InternalMessageMetaData>()
                 {
@@ -241,6 +241,12 @@ public class InternalMessage extends AbstractServerMessageImpl<InternalMessage,
                     }
 
                     @Override
+                    public int getMetadataSize()
+                    {
+                        return metadataSize;
+                    }
+
+                    @Override
                     public void remove()
                     {
                         throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
index 6d6921c..e06c4bf 100755
--- a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
@@ -34,6 +34,7 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
 {
     private final long _messageNumber;
     private final int _contentSize;
+    private final int _metadataSize;
     private final Queue<QpidByteBuffer> _content = new LinkedList<>();
     private volatile T _metaData;
 
@@ -42,6 +43,7 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
         _messageNumber = messageNumber;
         _metaData = metaData;
         _contentSize = _metaData.getContentSize();
+        _metadataSize = _metaData.getStorableSize();
     }
 
     public long getMessageNumber()
@@ -110,6 +112,12 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
         return _contentSize;
     }
 
+    @Override
+    public int getMetadataSize()
+    {
+        return _metadataSize;
+    }
+
     public T getMetaData()
     {
         return _metaData;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
index fbaf0c0..309be7b 100755
--- a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
@@ -34,6 +34,8 @@ public interface StoredMessage<M extends StorableMessageMetaData>
 
     int getContentSize();
 
+    int getMetadataSize();
+
     void remove();
 
     boolean isInMemory();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java b/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
index 003f0aa..eb8e73e 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
@@ -35,7 +35,7 @@ class MessageRecord implements Record
     public MessageRecord(final StoredMessage<?> storedMessage)
     {
         _messageNumber = storedMessage.getMessageNumber();
-        _metaData = new byte[1 + storedMessage.getMetaData().getStorableSize()];
+        _metaData = new byte[1 + storedMessage.getMetadataSize()];
         QpidByteBuffer buf = QpidByteBuffer.wrap(_metaData);
         buf.put((byte)storedMessage.getMetaData().getType().ordinal());
         storedMessage.getMetaData().writeToBuffer(buf);

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java b/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
index d794238..c00da42 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
@@ -58,7 +58,7 @@ public class FlowToDiskTransactionObserver implements TransactionObserver
                                  final EnqueueableMessage<? extends StorableMessageMetaData> message)
     {
         StoredMessage<? extends StorableMessageMetaData> handle = message.getStoredMessage();
-        long messageSize = handle.getContentSize() + handle.getMetaData().getStorableSize();
+        long messageSize = handle.getContentSize() + handle.getMetadataSize();
 
         long newUncommittedSize = _uncommittedMessageSize.get() + messageSize;
         if (newUncommittedSize > _maxUncommittedInMemorySize)
@@ -121,7 +121,7 @@ public class FlowToDiskTransactionObserver implements TransactionObserver
 
         private void messageEnqueued(StoredMessage<? extends StorableMessageMetaData> handle)
         {
-            long size = handle.getContentSize() + handle.getMetaData().getStorableSize();
+            long size = handle.getContentSize() + handle.getMetadataSize();
             _uncommittedMessageSize.addAndGet(size);
             _uncommittedMessages.add(handle);
         }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
index 294acb5..842b2fe 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
@@ -1952,9 +1952,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
                                     if (cumulativeSize <= currentTargetSize)
                                     {
                                         cumulativeSize += storedMessage.getContentSize();
-                                        cumulativeSize += storedMessage.getMetaData() == null
-                                                ? 0
-                                                : storedMessage.getMetaData().getStorableSize();
+                                        cumulativeSize += storedMessage.getMetadataSize();
                                     }
                                     else
                                     {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
index 05ff4cd..b0be59d 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
@@ -76,6 +76,7 @@ public class MessageConverter_Internal_to_v0_10 implements MessageConverter<Inte
         final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(serverMsg,
                                                                           mimeType,
                                                                           messageContent.length);
+        final int metadataSize = messageMetaData_0_10.getStorableSize();
 
         return new StoredMessage<MessageMetaData_0_10>()
                 {
@@ -104,6 +105,12 @@ public class MessageConverter_Internal_to_v0_10 implements MessageConverter<Inte
                     }
 
                     @Override
+                    public int getMetadataSize()
+                    {
+                        return metadataSize;
+                    }
+
+                    @Override
                     public void remove()
                     {
                         throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
index 4e9926c..e624455 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
@@ -64,6 +64,7 @@ public class MessageConverter_v0_10 implements MessageConverter<ServerMessage, M
     private StoredMessage<MessageMetaData_0_10> convertToStoredMessage(final ServerMessage<?> serverMsg)
     {
         final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(serverMsg);
+        final int metadataSize = messageMetaData_0_10.getStorableSize();
 
         return new StoredMessage<MessageMetaData_0_10>()
                 {
@@ -92,6 +93,12 @@ public class MessageConverter_v0_10 implements MessageConverter<ServerMessage, M
                     }
 
                     @Override
+                    public int getMetadataSize()
+                    {
+                        return metadataSize;
+                    }
+
+                    @Override
                     public void remove()
                     {
                         throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
index dcf2f4b..dc8e2e8 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
@@ -77,6 +77,7 @@ public class MessageConverter_Internal_to_v0_8 implements MessageConverter<Inter
         final MessageMetaData messageMetaData_0_8 = convertMetaData(serverMsg,
                                                                     mimeType,
                                                                     messageContent.length);
+        final int metadataSize = messageMetaData_0_8.getStorableSize();
 
         return new StoredMessage<MessageMetaData>()
         {
@@ -105,6 +106,12 @@ public class MessageConverter_Internal_to_v0_8 implements MessageConverter<Inter
             }
 
             @Override
+            public int getMetadataSize()
+            {
+                return metadataSize;
+            }
+
+            @Override
             public void remove()
             {
                 throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
index 53fb71d..53c6666 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
@@ -254,6 +254,12 @@ public abstract class MessageConverter_to_1_0<M extends ServerMessage> implement
         }
 
         @Override
+        public int getMetadataSize()
+        {
+            return _metaData.getStorableSize();
+        }
+
+        @Override
         public void remove()
         {
             throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java b/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
index 602aab5..54e323e 100644
--- a/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
+++ b/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
@@ -84,6 +84,7 @@ public class MessageConverter_1_0_to_v0_10 implements MessageConverter<Message_1
                                                                           addressSpace,
                                                                           mimeType,
                                                                           messageContent.length);
+        final int metadataSize = messageMetaData_0_10.getStorableSize();
 
         return new StoredMessage<MessageMetaData_0_10>()
         {
@@ -112,6 +113,12 @@ public class MessageConverter_1_0_to_v0_10 implements MessageConverter<Message_1
             }
 
             @Override
+            public int getMetadataSize()
+            {
+                return metadataSize;
+            }
+
+            @Override
             public void remove()
             {
                 throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
index 1558caa..f2b0652 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
@@ -187,6 +187,7 @@ public class MessageConverter_0_10_to_0_8 implements MessageConverter<MessageTra
                                                                   NamedAddressSpace addressSpace)
     {
         final MessageMetaData metaData = convertMetaData(message, addressSpace);
+        final int metadataSize = metaData.getStorableSize();
         return new StoredMessage<org.apache.qpid.server.protocol.v0_8.MessageMetaData>()
         {
             @Override
@@ -214,6 +215,12 @@ public class MessageConverter_0_10_to_0_8 implements MessageConverter<MessageTra
             }
 
             @Override
+            public int getMetadataSize()
+            {
+                return metadataSize;
+            }
+
+            @Override
             public void remove()
             {
                 throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
index b298e9f..856c662 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
@@ -73,6 +73,7 @@ public class MessageConverter_0_8_to_0_10  implements MessageConverter<AMQMessag
     private StoredMessage<MessageMetaData_0_10> convertToStoredMessage(final AMQMessage message_0_8)
     {
         final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(message_0_8);
+        final int metadataSize = messageMetaData_0_10.getStorableSize();
         return new StoredMessage<MessageMetaData_0_10>()
         {
             @Override
@@ -100,6 +101,12 @@ public class MessageConverter_0_8_to_0_10  implements MessageConverter<AMQMessag
             }
 
             @Override
+            public int getMetadataSize()
+            {
+                return metadataSize;
+            }
+
+            @Override
             public void remove()
             {
                 throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java b/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
index 2b2f6fa..d247a8f 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
@@ -83,6 +83,7 @@ public class MessageConverter_1_0_to_v0_8 implements MessageConverter<Message_1_
         final MessageMetaData messageMetaData_0_8 = convertMetaData(serverMsg,
                                                                     mimeType,
                                                                     messageContent.length);
+        final int metadataSize = messageMetaData_0_8.getStorableSize();
 
         return new StoredMessage<MessageMetaData>()
         {
@@ -111,6 +112,12 @@ public class MessageConverter_1_0_to_v0_8 implements MessageConverter<Message_1_
             }
 
             @Override
+            public int getMetadataSize()
+            {
+                return metadataSize;
+            }
+
+            @Override
             public void remove()
             {
                 throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
----------------------------------------------------------------------
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
index d1e1f6c..8b0a7ad 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
@@ -1434,6 +1434,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
 
         private final long _messageId;
         private final int _contentSize;
+        private final int _metadataSize;
 
         private MessageDataRef<T> _messageDataRef;
 
@@ -1445,7 +1446,8 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
             _messageDataRef = new MessageDataRef<>(metaData, !isRecovered);
 
             _contentSize = metaData.getContentSize();
-            _inMemorySize.addAndGet(metaData.getStorableSize());
+            _metadataSize = metaData.getStorableSize();
+            _inMemorySize.addAndGet(_metadataSize);
         }
 
 
@@ -1467,7 +1469,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
                     {
                         metaData = (T) AbstractJDBCMessageStore.this.getMetaData(_messageId);
                         _messageDataRef = new MessageDataRef<>(metaData, _messageDataRef.getData(), false);
-                        _inMemorySize.addAndGet(metaData.getStorableSize());
+                        _inMemorySize.addAndGet(getMetadataSize());
                     }
                     catch (SQLException e)
                     {
@@ -1586,6 +1588,12 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
             return _contentSize;
         }
 
+        @Override
+        public int getMetadataSize()
+        {
+            return _metadataSize;
+        }
+
         synchronized void store(final Connection conn) throws SQLException
         {
             if (!stored())
@@ -1641,7 +1649,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
             long bytesCleared = 0;
             if ((metaData = _messageDataRef.getMetaData()) != null)
             {
-                bytesCleared += metaData.getStorableSize();
+                bytesCleared += getMetadataSize();
                 metaData.dispose();
             }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org