You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2009/08/27 17:12:28 UTC
svn commit: r808451 - in
/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server:
flow/AbstractFlowCreditManager.java flow/CreditCreditManager.java
flow/WindowCreditManager.java subscription/Subscription_0_10.java
Author: rgodfrey
Date: Thu Aug 27 15:12:27 2009
New Revision: 808451
URL: http://svn.apache.org/viewvc?rev=808451&view=rev
Log:
state change fixes
Modified:
qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java
qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java
qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java
qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
Modified: qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java?rev=808451&r1=808450&r2=808451&view=diff
==============================================================================
--- qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java (original)
+++ qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/AbstractFlowCreditManager.java Thu Aug 27 15:12:27 2009
@@ -31,19 +31,28 @@
public final void addStateListener(FlowCreditManagerListener listener)
{
- _listeners.add(listener);
+ synchronized(_listeners)
+ {
+ _listeners.add(listener);
+ }
}
public final boolean removeListener(FlowCreditManagerListener listener)
{
- return _listeners.remove(listener);
+ synchronized(_listeners)
+ {
+ return _listeners.remove(listener);
+ }
}
private void notifyListeners(final boolean suspended)
{
- for(FlowCreditManagerListener listener : _listeners)
+ synchronized(_listeners)
{
- listener.creditStateChanged(!suspended);
+ for(FlowCreditManagerListener listener : _listeners)
+ {
+ listener.creditStateChanged(!suspended);
+ }
}
}
Modified: qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java?rev=808451&r1=808450&r2=808451&view=diff
==============================================================================
--- qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java (original)
+++ qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/CreditCreditManager.java Thu Aug 27 15:12:27 2009
@@ -37,6 +37,8 @@
{
_bytesCredit = bytesCredit;
_messageCredit = messageCredit;
+ setSuspended(!hasCredit());
+
}
Modified: qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java?rev=808451&r1=808450&r2=808451&view=diff
==============================================================================
--- qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java (original)
+++ qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/flow/WindowCreditManager.java Thu Aug 27 15:12:27 2009
@@ -39,6 +39,8 @@
{
_bytesCreditLimit = bytesCreditLimit;
_messageCreditLimit = messageCreditLimit;
+ setSuspended(!hasCredit());
+
}
Modified: qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java?rev=808451&r1=808450&r2=808451&view=diff
==============================================================================
--- qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java (original)
+++ qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java Thu Aug 27 15:12:27 2009
@@ -88,6 +88,7 @@
_creditManager = creditManager;
_filters = filters;
_creditManager.addStateListener(this);
+ _state.set(_creditManager.hasCredit() ? State.ACTIVE : State.SUSPENDED);
}
@@ -484,7 +485,13 @@
default:
throw new RuntimeException("Unknown message flow mode: " + flowMode);
}
+ if(_state.compareAndSet(State.ACTIVE, State.SUSPENDED))
+ {
+ _stateListener.stateChange(this, State.ACTIVE, State.SUSPENDED);
+ }
+
_creditManager.addStateListener(this);
+
}
public boolean isStopped()
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org