From 1d7b88431a9d8949291446558b9913794cc51556 Mon Sep 17 00:00:00 2001 From: Robert Davies Date: Thu, 20 Dec 2007 14:29:30 +0000 Subject: [PATCH] Fix for https://issues.apache.org/activemq/browse/AMQ-1528 git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@605940 13f79535-47bb-0310-9956-ffa450edef68 --- .../activemq/broker/region/AbstractSubscription.java | 2 +- .../activemq/kaha/impl/index/hash/HashBin.java | 12 ++++++------ .../activemq/kaha/impl/index/hash/HashIndex.java | 2 +- .../activemq/kaha/impl/index/hash/HashPageInfo.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java b/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java index 383f6e58e6..2cd06d886d 100755 --- a/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java +++ b/activemq-core/src/main/java/org/apache/activemq/broker/region/AbstractSubscription.java @@ -115,7 +115,7 @@ public abstract class AbstractSubscription implements Subscription { } public boolean isSlave() { - return getContext().isSlave(); + return broker.getBrokerService().isSlave(); } public ConnectionContext getContext() { diff --git a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashBin.java b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashBin.java index 6c44da8a1b..d70be68523 100644 --- a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashBin.java +++ b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashBin.java @@ -143,9 +143,6 @@ class HashBin { } } if (!replace) { - if (low > size()) { - LOG.info("SIZE() " + size() + " low = " + low); - } addHashEntry(low, newEntry); size++; } @@ -189,7 +186,6 @@ class HashBin { pageToUse.setPage(hp); offset = 0; } else { - int count = 0; int countSoFar=0; int pageNo = 0; @@ -206,10 +202,14 @@ class HashBin { countSoFar += page.size(); pageNo++; } + while(pageNo >= hashPages.size()) { + HashPage hp = hashIndex.createPage(id); + addHashPageInfo(hp.getId(), 0); + } pageToUse = hashPages.get(pageNo); + } - pageToUse.begin(); - + pageToUse.begin(); pageToUse.addHashEntry(offset, entry); doOverFlow(index); } diff --git a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java index 90f9599500..27dd1a3a5c 100644 --- a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java +++ b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java @@ -62,7 +62,7 @@ public class HashIndex implements Index { private AtomicBoolean loaded = new AtomicBoolean(); private LRUCache pageCache; private boolean enablePageCaching=true; - private int pageCacheSize = 1; + private int pageCacheSize = 10; /** diff --git a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPageInfo.java b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPageInfo.java index f5d474f635..4442e92b69 100644 --- a/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPageInfo.java +++ b/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashPageInfo.java @@ -88,7 +88,7 @@ class HashPageInfo { void begin() throws IOException { if (page == null) { - page = hashIndex.getFullPage(id); + page = hashIndex.lookupPage(id); } }