diff options
| author | Robert Gemmell <robbie@apache.org> | 2010-05-19 15:42:10 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2010-05-19 15:42:10 +0000 |
| commit | 3876ca1554331bb584a17c9ad1a781b15f54d7dc (patch) | |
| tree | dc9197e59dded66d1794308fa170d7eb02a0e37d | |
| parent | 4e58a31df58da819914cba139751920ac80e8633 (diff) | |
| download | qpid-python-3876ca1554331bb584a17c9ad1a781b15f54d7dc.tar.gz | |
QPID-2466: swap WeakReference usage to keep handles to message content to SoftReference's.
Applied patch from Andrew Kennedy
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@946227 13f79535-47bb-0310-9956-ffa450edef68
| -rwxr-xr-x | java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java | 8 | ||||
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java b/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java index 5a5e2fe5b4..cf8ae2166c 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java +++ b/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java @@ -32,7 +32,7 @@ import org.apache.qpid.transport.codec.BBEncoder; import org.apache.qpid.transport.codec.BBDecoder; import java.nio.ByteBuffer; -import java.lang.ref.WeakReference; +import java.lang.ref.SoftReference; public class MessageMetaData_0_10 implements StorableMessageMetaData { @@ -42,7 +42,7 @@ public class MessageMetaData_0_10 implements StorableMessageMetaData private MessageTransferHeader _messageHeader; private long _arrivalTime; private int _bodySize; - private volatile WeakReference<ByteBuffer> _body; + private volatile SoftReference<ByteBuffer> _body; private static final int ENCODER_SIZE = 1 << 16; @@ -89,7 +89,7 @@ public class MessageMetaData_0_10 implements StorableMessageMetaData ByteBuffer body = ByteBuffer.allocate(_bodySize); body.put(xfrBody); body.flip(); - _body = new WeakReference(body); + _body = new SoftReference<ByteBuffer>(body); } @@ -212,7 +212,7 @@ public class MessageMetaData_0_10 implements StorableMessageMetaData public void setBody(ByteBuffer body) { - _body = new WeakReference(body); + _body = new SoftReference<ByteBuffer>(body); } private static class MetaDataFactory implements MessageMetaDataType.Factory<MessageMetaData_0_10> diff --git a/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java b/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java index d38b318fdf..a87cd32e37 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java +++ b/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java @@ -36,7 +36,7 @@ import org.apache.qpid.server.queue.AMQQueue; import java.io.ByteArrayInputStream; import java.io.File; -import java.lang.ref.WeakReference; +import java.lang.ref.SoftReference; import java.nio.ByteBuffer; import java.sql.Blob; import java.sql.Connection; @@ -1408,7 +1408,7 @@ public class DerbyMessageStore implements MessageStore { private final long _messageId; - private volatile WeakReference<StorableMessageMetaData> _metaDataRef; + private volatile SoftReference<StorableMessageMetaData> _metaDataRef; private Connection _conn; StoredDerbyMessage(long messageId, StorableMessageMetaData metaData) @@ -1424,7 +1424,7 @@ public class DerbyMessageStore implements MessageStore { _messageId = messageId; - _metaDataRef = new WeakReference(metaData); + _metaDataRef = new SoftReference<StorableMessageMetaData>(metaData); if(persist) { _conn = newConnection(); @@ -1451,7 +1451,7 @@ public class DerbyMessageStore implements MessageStore { throw new RuntimeException(e); } - _metaDataRef = new WeakReference(metaData); + _metaDataRef = new SoftReference<StorableMessageMetaData>(metaData); } return metaData; |
