check we are not a slaveBroker() when dispatching

git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@491431 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Robert Davies 2006-12-31 15:35:38 +00:00
parent 7695676339
commit 6ddeac7bc0
1 changed files with 6 additions and 4 deletions

View File

@ -125,11 +125,12 @@ abstract public class PrefetchSubscription extends AbstractSubscription{
public void add(MessageReference node) throws Exception{ public void add(MessageReference node) throws Exception{
boolean pendingEmpty=false; boolean pendingEmpty=false;
synchronized(pending){ synchronized(pending){
pendingEmpty=pending.isEmpty(); pendingEmpty=pending.isEmpty();
enqueueCounter++; enqueueCounter++;
} }
if(!isFull()&&pendingEmpty){ if(!isFull()&&pendingEmpty&&!broker.isSlaveBroker()){
dispatch(node); dispatch(node);
}else{ }else{
optimizePrefetch(); optimizePrefetch();
@ -155,6 +156,7 @@ abstract public class PrefetchSubscription extends AbstractSubscription{
pending.remove(); pending.remove();
createMessageDispatch(node,node.getMessage()); createMessageDispatch(node,node.getMessage());
dispatched.addLast(node); dispatched.addLast(node);
return; return;
} }
} }
@ -162,7 +164,7 @@ abstract public class PrefetchSubscription extends AbstractSubscription{
pending.release(); pending.release();
} }
throw new JMSException("Slave broker out of sync with master: Dispatched message ("+mdn.getMessageId() throw new JMSException("Slave broker out of sync with master: Dispatched message ("+mdn.getMessageId()
+") was not in the pending list: "+pending); +") was not in the pending list");
} }
} }
@ -395,7 +397,7 @@ abstract public class PrefetchSubscription extends AbstractSubscription{
protected void dispatchMatched() throws IOException{ protected void dispatchMatched() throws IOException{
if(dispatching.compareAndSet(false,true)){ if(!broker.isSlaveBroker() && dispatching.compareAndSet(false,true)){
try{ try{
List toDispatch=null; List toDispatch=null;
synchronized(pending){ synchronized(pending){