Author: rajdavies Date: Fri May 16 13:23:08 2008 New Revision: 657193 URL: http://svn.apache.org/viewvc?rev=657193&view=rev Log: Fix for https://issues.apache.org/activemq/browse/AMQ-1736 Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java?rev=657193&r1=657192&r2=657193&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/index/hash/HashIndex.java Fri May 16 13:23:08 2008 @@ -55,9 +55,6 @@ private int keySize = DEFAULT_KEY_SIZE; private int numberOfBins = DEFAULT_BIN_SIZE; private int keysPerPage = this.pageSize /this.keySize; - private DataByteArrayInputStream dataIn; - private DataByteArrayOutputStream dataOut; - private byte[] readBuffer; private HashBin[] bins; private Marshaller keyMarshaller; private long length; @@ -242,9 +239,6 @@ this.bins = new HashBin[capacity]; threshold = calculateThreashold(); keysPerPage = pageSize / keySize; - dataIn = new DataByteArrayInputStream(); - dataOut = new DataByteArrayOutputStream(pageSize); - readBuffer = new byte[pageSize]; try { openIndexFile(); if (indexFile.length() > 0) { @@ -375,6 +369,7 @@ } void writeFullPage(HashPage page) throws IOException { + DataByteArrayOutputStream dataOut = new DataByteArrayOutputStream(pageSize); dataOut.reset(); page.write(keyMarshaller, dataOut); if (dataOut.size() > pageSize) { @@ -385,6 +380,7 @@ } void writePageHeader(HashPage page) throws IOException { + DataByteArrayOutputStream dataOut = new DataByteArrayOutputStream(pageSize); dataOut.reset(); page.writeHeader(dataOut); indexFile.seek(page.getId()); @@ -392,6 +388,9 @@ } HashPage getFullPage(long id) throws IOException { + byte[] readBuffer = new byte[pageSize]; + DataByteArrayInputStream dataIn = new DataByteArrayInputStream(); + readBuffer = new byte[pageSize]; indexFile.seek(id); indexFile.readFully(readBuffer, 0, pageSize); dataIn.restart(readBuffer); @@ -402,6 +401,8 @@ } HashPage getPageHeader(long id) throws IOException { + byte[] readBuffer = new byte[pageSize]; + DataByteArrayInputStream dataIn = new DataByteArrayInputStream(); indexFile.seek(id); indexFile.readFully(readBuffer, 0, HashPage.PAGE_HEADER_SIZE); dataIn.restart(readBuffer); @@ -468,6 +469,8 @@ } private void doLoad() throws IOException { + byte[] readBuffer = new byte[pageSize]; + DataByteArrayInputStream dataIn = new DataByteArrayInputStream(); long offset = 0; if (loaded.compareAndSet(false, true)) { while ((offset + pageSize) <= indexFile.length()) {