You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/03/03 07:50:40 UTC
svn commit: r382692 -
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java
Author: rajdavies
Date: Thu Mar 2 22:50:38 2006
New Revision: 382692
URL: http://svn.apache.org/viewcvs?rev=382692&view=rev
Log:
log when discarding messages - and ensure we don't get npe
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java?rev=382692&r1=382691&r2=382692&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/TopicSubscription.java Thu Mar 2 22:50:38 2006
@@ -19,10 +19,8 @@
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedList;
-
import javax.jms.InvalidSelectorException;
import javax.jms.JMSException;
-
import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.command.ActiveMQDestination;
@@ -34,9 +32,11 @@
import org.apache.activemq.command.MessageDispatchNotification;
import org.apache.activemq.memory.UsageManager;
import org.apache.activemq.transaction.Synchronization;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
public class TopicSubscription extends AbstractSubscription {
-
+ private static final Log log = LogFactory.getLog(TopicSubscription.class);
final protected LinkedList matched = new LinkedList();
final protected ActiveMQDestination dlqDestination = new ActiveMQQueue("ActiveMQ.DLQ");
final protected UsageManager usageManager;
@@ -62,8 +62,9 @@
// NOTE - be careful about the slaveBroker!
if (maximumPendingMessages > 0) {
+ log.warn("discarding " + (matched.size() - maximumPendingMessages) + " messages for slow consumer");
// lets discard old messages as we are a slow consumer
- while (matched.size() > maximumPendingMessages) {
+ while (!matched.isEmpty() && matched.size() > maximumPendingMessages) {
MessageReference oldMessage = (MessageReference) matched.removeFirst();
oldMessage.decrementReferenceCount();
}