checkStarted();
clearIO();
try
{
Filter filter = FilterImpl.createFilter(filterStr);
List<Map<String, Object>> messages = new ArrayList<Map<String, Object>>();
queue.flushExecutor();
LinkedListIterator<MessageReference> iterator = queue.totalIterator();
try
{
while (iterator.hasNext())
{
MessageReference ref = (MessageReference)iterator.next();
if (filter == null || filter.match(ref.getMessage()))
{
Message message = ref.getMessage();
messages.add(message.toMap());
}
}