summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-05-19 15:42:10 +0000
committerRobert Gemmell <robbie@apache.org>2010-05-19 15:42:10 +0000
commit3876ca1554331bb584a17c9ad1a781b15f54d7dc (patch)
treedc9197e59dded66d1794308fa170d7eb02a0e37d
parent4e58a31df58da819914cba139751920ac80e8633 (diff)
downloadqpid-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-xjava/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData_0_10.java8
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java8
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;