Repository: activemq Updated Branches: refs/heads/trunk 128921e68 -> 9c2471604
https://issues.apache.org/jira/browse/AMQ-4930 tracked hung org.apache.activemq.usecases.ExpiredMessagesWithNoConsumerTest#testExpiredMessagesWithNoConsumer - when using lower -Xmx than maven run - looping on browse due to no page when hasSpace fails. Browse picks up this state now Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/9c247160 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/9c247160 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/9c247160 Branch: refs/heads/trunk Commit: 9c247160440ecb4aa91903895e7fabb8ad9c92e5 Parents: 128921e Author: gtully <[email protected]> Authored: Wed Mar 12 16:51:22 2014 +0000 Committer: gtully <[email protected]> Committed: Wed Mar 12 16:51:22 2014 +0000 ---------------------------------------------------------------------- .../java/org/apache/activemq/broker/region/Queue.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/9c247160/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java ---------------------------------------------------------------------- diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java b/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java index a8a864e..60c6228 100755 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/region/Queue.java @@ -1230,15 +1230,17 @@ public class Queue extends BaseDestination implements Task, UsageListener { } private boolean shouldPageInMoreForBrowse(int max) { + int alreadyPagedIn = 0; pagedInMessagesLock.readLock().lock(); try { - int alreadyPagedIn = pagedInMessages.size(); - return alreadyPagedIn < max - && alreadyPagedIn < getDestinationStatistics().getMessages().getCount() - && !memoryUsage.isFull(110); + alreadyPagedIn = pagedInMessages.size(); } finally { pagedInMessagesLock.readLock().unlock(); } + LOG.trace("max {}, alreadyPagedIn {}, messagesCount {}, memoryUsage {}%", new Object[]{max, alreadyPagedIn, destinationStatistics.getMessages().getCount(), memoryUsage.getPercentUsage()}); + return (alreadyPagedIn < max) + && (alreadyPagedIn < destinationStatistics.getMessages().getCount()) + && messages.hasSpace(); } private void addAll(Collection<? extends MessageReference> refs, List<Message> l, int max,
