summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Simon <arnaudsimon@apache.org>2007-10-04 13:57:01 +0000
committerArnaud Simon <arnaudsimon@apache.org>2007-10-04 13:57:01 +0000
commit0442198591e75c1ee00a5445d832c95c6acc45b3 (patch)
treed92507b9b3f6e1c8720169fa486e91b6b840d4b2
parent0fef8091470cb69f14bcbd3daee9f877eca37f3f (diff)
downloadqpid-python-0442198591e75c1ee00a5445d832c95c6acc45b3.tar.gz
Changed to send message ack when required
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@581912 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java22
-rw-r--r--java/client/src/main/java/org/apache/qpidity/nclient/impl/ClientSession.java7
-rw-r--r--java/common/src/main/java/org/apache/qpidity/transport/Session.java2
4 files changed, 27 insertions, 8 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
index eb161ee423..89ec7a8029 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
@@ -265,10 +265,10 @@ public abstract class AMQSession extends Closeable implements Session, QueueSess
*
* @todo This is accessed only within a synchronized method, so does not need to be atomic.
*/
- private final AtomicBoolean _firstDispatcher = new AtomicBoolean(true);
+ protected final AtomicBoolean _firstDispatcher = new AtomicBoolean(true);
/** Used to indicate that the session should start pre-fetching messages as soon as it is started. */
- private final boolean _immediatePrefetch;
+ protected final boolean _immediatePrefetch;
/** Indicates that warnings should be generated on violations of the strict AMQP. */
private final boolean _strictAMQP;
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index 3456124185..41efb4b586 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
@@ -528,4 +528,26 @@ public class AMQSession_0_10 extends AMQSession
startDistpatcherIfNecessary();
}
}
+
+ synchronized void startDistpatcherIfNecessary()
+ {
+ // If IMMEDIATE_PREFETCH is not set then we need to start fetching
+ if (!_immediatePrefetch)
+ {
+ // We do this now if this is the first call on a started connection
+ if (isSuspended() && _firstDispatcher.getAndSet(false))
+ {
+ try
+ {
+ suspendChannel(false);
+ }
+ catch (AMQException e)
+ {
+ _logger.info("Unsuspending channel threw an exception:" + e);
+ }
+ }
+ }
+
+ startDistpatcherIfNecessary(false);
+ }
}
diff --git a/java/client/src/main/java/org/apache/qpidity/nclient/impl/ClientSession.java b/java/client/src/main/java/org/apache/qpidity/nclient/impl/ClientSession.java
index 7883e995dd..dd2481368f 100644
--- a/java/client/src/main/java/org/apache/qpidity/nclient/impl/ClientSession.java
+++ b/java/client/src/main/java/org/apache/qpidity/nclient/impl/ClientSession.java
@@ -27,12 +27,9 @@ public class ClientSession extends org.apache.qpidity.transport.Session implemen
{
for (Range range : ranges)
{
- for (long l = range.getLower(); l <= range.getUpper(); l++)
- {
- System.out.println("Acknowleding transfer id : " + l);
- super.processed(l);
- }
+ super.processed(range);
}
+ super.flushProcessed();
}
public void messageSubscribe(String queue, String destination, short confirmMode, short acquireMode, MessagePartListener listener, Map<String, Object> filter, Option... options)
diff --git a/java/common/src/main/java/org/apache/qpidity/transport/Session.java b/java/common/src/main/java/org/apache/qpidity/transport/Session.java
index ad2cbe8cde..5441ac8f23 100644
--- a/java/common/src/main/java/org/apache/qpidity/transport/Session.java
+++ b/java/common/src/main/java/org/apache/qpidity/transport/Session.java
@@ -111,7 +111,7 @@ public class Session extends Invoker
}
}
- void flushProcessed()
+ public void flushProcessed()
{
long mark = -1;
boolean first = true;