mirror of https://github.com/apache/activemq.git
https://issues.apache.org/jira/browse/AMQ-4656 - fix regression for FilePendingDurableSubscriberMessageStoragePolicy
This commit is contained in:
parent
c8a5fb769e
commit
6aaf859d22
|
@ -29,6 +29,7 @@ import javax.jms.JMSException;
|
||||||
|
|
||||||
import org.apache.activemq.broker.Broker;
|
import org.apache.activemq.broker.Broker;
|
||||||
import org.apache.activemq.broker.ConnectionContext;
|
import org.apache.activemq.broker.ConnectionContext;
|
||||||
|
import org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor;
|
||||||
import org.apache.activemq.broker.region.cursors.PendingMessageCursor;
|
import org.apache.activemq.broker.region.cursors.PendingMessageCursor;
|
||||||
import org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor;
|
import org.apache.activemq.broker.region.cursors.StoreDurableSubscriberCursor;
|
||||||
import org.apache.activemq.broker.region.policy.PolicyEntry;
|
import org.apache.activemq.broker.region.policy.PolicyEntry;
|
||||||
|
@ -160,7 +161,7 @@ public class DurableTopicSubscription extends PrefetchSubscription implements Us
|
||||||
}
|
}
|
||||||
|
|
||||||
synchronized (pendingLock) {
|
synchronized (pendingLock) {
|
||||||
if (!((StoreDurableSubscriberCursor) pending).isStarted() || !keepDurableSubsActive) {
|
if (!((AbstractPendingMessageCursor) pending).isStarted() || !keepDurableSubsActive) {
|
||||||
pending.setSystemUsage(memoryManager);
|
pending.setSystemUsage(memoryManager);
|
||||||
pending.setMemoryUsageHighWaterMark(getCursorMemoryHighWaterMark());
|
pending.setMemoryUsageHighWaterMark(getCursorMemoryHighWaterMark());
|
||||||
pending.setMaxAuditDepth(getMaxAuditDepth());
|
pending.setMaxAuditDepth(getMaxAuditDepth());
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.activemq.bugs;
|
package org.apache.activemq.bugs;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
@ -31,12 +32,20 @@ import org.apache.activemq.ActiveMQConnectionFactory;
|
||||||
import org.apache.activemq.broker.BrokerService;
|
import org.apache.activemq.broker.BrokerService;
|
||||||
import org.apache.activemq.broker.jmx.BrokerView;
|
import org.apache.activemq.broker.jmx.BrokerView;
|
||||||
import org.apache.activemq.broker.jmx.DurableSubscriptionViewMBean;
|
import org.apache.activemq.broker.jmx.DurableSubscriptionViewMBean;
|
||||||
|
import org.apache.activemq.broker.region.policy.FilePendingDurableSubscriberMessageStoragePolicy;
|
||||||
|
import org.apache.activemq.broker.region.policy.PendingDurableSubscriberMessageStoragePolicy;
|
||||||
|
import org.apache.activemq.broker.region.policy.PolicyEntry;
|
||||||
|
import org.apache.activemq.broker.region.policy.PolicyMap;
|
||||||
|
import org.apache.activemq.broker.region.policy.StorePendingDurableSubscriberMessageStoragePolicy;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.junit.runners.Parameterized;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@RunWith(value = Parameterized.class)
|
||||||
public class AMQ4656Test {
|
public class AMQ4656Test {
|
||||||
|
|
||||||
private static final transient Logger LOG = LoggerFactory.getLogger(AMQ4656Test.class);
|
private static final transient Logger LOG = LoggerFactory.getLogger(AMQ4656Test.class);
|
||||||
|
@ -45,9 +54,22 @@ public class AMQ4656Test {
|
||||||
|
|
||||||
private String connectionUri;
|
private String connectionUri;
|
||||||
|
|
||||||
|
@Parameterized.Parameter
|
||||||
|
public PendingDurableSubscriberMessageStoragePolicy pendingDurableSubPolicy;
|
||||||
|
|
||||||
|
@Parameterized.Parameters(name="{0}")
|
||||||
|
public static Iterable<Object[]> getTestParameters() {
|
||||||
|
return Arrays.asList(new Object[][]{{new FilePendingDurableSubscriberMessageStoragePolicy()},{new StorePendingDurableSubscriberMessageStoragePolicy()}});
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
brokerService = new BrokerService();
|
brokerService = new BrokerService();
|
||||||
|
PolicyMap policyMap = new PolicyMap();
|
||||||
|
PolicyEntry defaultEntry = new PolicyEntry();
|
||||||
|
defaultEntry.setPendingDurableSubscriberPolicy(pendingDurableSubPolicy);
|
||||||
|
policyMap.setDefaultEntry(defaultEntry);
|
||||||
|
brokerService.setDestinationPolicy(policyMap);
|
||||||
brokerService.setPersistent(false);
|
brokerService.setPersistent(false);
|
||||||
brokerService.setUseJmx(true);
|
brokerService.setUseJmx(true);
|
||||||
brokerService.setDeleteAllMessagesOnStartup(true);
|
brokerService.setDeleteAllMessagesOnStartup(true);
|
||||||
|
|
Loading…
Reference in New Issue