summaryrefslogtreecommitdiff
path: root/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java31
1 files changed, 17 insertions, 14 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java b/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java
index 731f6140f9..a7d58dc6dd 100644
--- a/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java
+++ b/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java
@@ -21,16 +21,13 @@
package org.apache.qpid.tools.messagestore.commands;
import org.apache.commons.codec.binary.Hex;
-import org.apache.mina.common.ByteBuffer;
-import org.apache.qpid.framing.abstraction.ContentChunk;
-import org.apache.qpid.server.queue.AMQMessage;
import org.apache.qpid.server.queue.QueueEntryImpl;
import org.apache.qpid.server.queue.QueueEntry;
+import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.tools.messagestore.MessageStoreTool;
import org.apache.qpid.tools.utils.Console;
import java.io.UnsupportedEncodingException;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -100,7 +97,7 @@ public class Dump extends Show
for (QueueEntry entry : messages)
{
- AMQMessage msg = entry.getMessage();
+ ServerMessage msg = entry.getMessage();
if (!includeMsg(msg, msgids))
{
continue;
@@ -112,7 +109,7 @@ public class Dump extends Show
// Show general message information
hex.add(Show.Columns.ID.name());
- ascii.add(msg.getMessageId().toString());
+ ascii.add(msg.getMessageNumber().toString());
hex.add(Console.ROW_DIVIDER);
ascii.add(Console.ROW_DIVIDER);
@@ -136,10 +133,10 @@ public class Dump extends Show
hex.add(Console.ROW_DIVIDER);
ascii.add(Console.ROW_DIVIDER);
- Iterator bodies = msg.getContentBodyIterator();
- if (bodies.hasNext())
- {
+ final int messageSize = (int) msg.getSize();
+ if (messageSize != 0)
+ {
hex.add("Hex");
hex.add(Console.ROW_DIVIDER);
@@ -147,14 +144,19 @@ public class Dump extends Show
ascii.add("ASCII");
ascii.add(Console.ROW_DIVIDER);
- while (bodies.hasNext())
+ java.nio.ByteBuffer buf = java.nio.ByteBuffer.allocate(64 * 1024);
+
+ int position = 0;
+
+ while(position < messageSize)
{
- ContentChunk chunk = (ContentChunk) bodies.next();
+ position += msg.getContent(buf, position);
+ buf.flip();
//Duplicate so we don't destroy original data :)
- ByteBuffer hexBuffer = chunk.getData().duplicate();
+ java.nio.ByteBuffer hexBuffer = buf;
- ByteBuffer charBuffer = hexBuffer.duplicate();
+ java.nio.ByteBuffer charBuffer = hexBuffer.duplicate();
Hex hexencoder = new Hex();
@@ -232,6 +234,7 @@ public class Dump extends Show
ascii.add(asciiLine);
}
+ buf.clear();
}
}
else
@@ -252,7 +255,7 @@ public class Dump extends Show
return display;
}
- private void addShowInformation(List<String> column1, List<String> column2, AMQMessage msg,
+ private void addShowInformation(List<String> column1, List<String> column2, ServerMessage msg,
String title, boolean routing, boolean headers, boolean messageHeaders)
{
List<QueueEntry> single = new LinkedList<QueueEntry>();