summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java
index b8a36aba58..e0c181a5fc 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/AMQMessage.java
@@ -24,11 +24,14 @@ import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.framing.ContentHeaderBody;
import org.apache.qpid.framing.abstraction.MessagePublishInfo;
+import org.apache.qpid.server.AMQChannel;
import org.apache.qpid.server.store.StoredMessage;
+import org.apache.qpid.server.configuration.SessionConfig;
import org.apache.qpid.server.queue.AMQQueue;
import java.util.concurrent.atomic.AtomicInteger;
+import java.lang.ref.WeakReference;
import java.nio.ByteBuffer;
/**
@@ -63,9 +66,16 @@ public class AMQMessage implements ServerMessage
private final StoredMessage<MessageMetaData> _handle;
+ WeakReference<AMQChannel> _channelRef;
+
public AMQMessage(StoredMessage<MessageMetaData> handle)
{
+ this(handle, null);
+ }
+
+ public AMQMessage(StoredMessage<MessageMetaData> handle, WeakReference<AMQChannel> channelRef)
+ {
_handle = handle;
final MessageMetaData metaData = handle.getMetaData();
_size = metaData.getContentSize();
@@ -75,6 +85,8 @@ public class AMQMessage implements ServerMessage
{
_flags |= IMMEDIATE;
}
+
+ _channelRef = channelRef;
}
@@ -326,4 +338,9 @@ public class AMQMessage implements ServerMessage
{
return _handle;
}
+
+ public SessionConfig getSessionConfig()
+ {
+ return _channelRef == null ? null : ((SessionConfig) _channelRef.get());
+ }
}