diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2008-10-30 21:12:27 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2008-10-30 21:12:27 +0000 |
| commit | b5d8000313ed57d468534c7da595a1f7299f3140 (patch) | |
| tree | 3b273a9d2f143a292488e9cd12daf66f4daec8a8 | |
| parent | 364b62744a35f7e48332af00217a1848345cd39a (diff) | |
| download | qpid-python-b5d8000313ed57d468534c7da595a1f7299f3140.tar.gz | |
QPID-1420: swapped out the size limited ArrayBlockingQueue with a LinkedBlockingQueue, this eliminates the need to coordinate the size of the synchronousQueue with the max prefetch, and hopefully prevents the deadlock described in the JIRA
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709244 13f79535-47bb-0310-9956-ffa450edef68
| -rw-r--r-- | java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java index dfd228370c..76422c6297 100644 --- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java +++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java @@ -40,8 +40,9 @@ import java.util.SortedSet; import java.util.ArrayList; import java.util.Collections; import java.util.TreeSet; -import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -78,7 +79,7 @@ public abstract class BasicMessageConsumer<U> extends Closeable implements Messa * Used in the blocking receive methods to receive a message from the Session thread. <p/> Or to notify of errors * <p/> Argument true indicates we want strict FIFO semantics */ - protected final ArrayBlockingQueue _synchronousQueue; + protected final BlockingQueue _synchronousQueue; protected final MessageFactoryRegistry _messageFactory; @@ -182,7 +183,7 @@ public abstract class BasicMessageConsumer<U> extends Closeable implements Messa _prefetchLow = prefetchLow; _exclusive = exclusive; - _synchronousQueue = new ArrayBlockingQueue(prefetchHigh, true); + _synchronousQueue = new LinkedBlockingQueue(); _autoClose = autoClose; _noConsume = noConsume; |
