You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2008/06/13 15:47:21 UTC
svn commit: r667540 - in
/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport:
Session.java SessionDelegate.java
Author: rhs
Date: Fri Jun 13 06:47:21 2008
New Revision: 667540
URL: http://svn.apache.org/viewvc?rev=667540&view=rev
Log:
QPID-901: don't send known-completed for ranges we ignore
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/SessionDelegate.java
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java?rev=667540&r1=667539&r2=667540&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java Fri Jun 13 06:47:21 2008
@@ -226,11 +226,12 @@
}
}
- void complete(int lower, int upper)
+ boolean complete(int lower, int upper)
{
log.debug("%s complete(%d, %d)", this, lower, upper);
synchronized (commands)
{
+ int old = maxComplete;
for (int id = max(maxComplete, lower); le(id, upper); id++)
{
commands.remove(id);
@@ -239,8 +240,9 @@
{
maxComplete = max(maxComplete, upper);
}
- commands.notifyAll();
log.debug("%s commands remaining: %s", this, commands);
+ commands.notifyAll();
+ return gt(maxComplete, old);
}
}
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/SessionDelegate.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/SessionDelegate.java?rev=667540&r1=667539&r2=667540&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/SessionDelegate.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/SessionDelegate.java Fri Jun 13 06:47:21 2008
@@ -67,16 +67,27 @@
@Override public void sessionCompleted(Session ssn, SessionCompleted cmp)
{
RangeSet ranges = cmp.getCommands();
+ RangeSet known = null;
+ if (cmp.getTimelyReply())
+ {
+ known = new RangeSet();
+ }
+
if (ranges != null)
{
for (Range range : ranges)
{
- ssn.complete(range.getLower(), range.getUpper());
+ boolean advanced = ssn.complete(range.getLower(), range.getUpper());
+ if (advanced && known != null)
+ {
+ known.add(range);
+ }
}
}
- if (cmp.getTimelyReply())
+
+ if (known != null)
{
- ssn.sessionKnownCompleted(ranges);
+ ssn.sessionKnownCompleted(known);
}
}