You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2009/06/17 11:31:56 UTC
svn commit: r785525 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java
test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java
Author: dejanb
Date: Wed Jun 17 09:31:54 2009
New Revision: 785525
URL: http://svn.apache.org/viewvc?rev=785525&view=rev
Log:
fix for https://issues.apache.org/activemq/browse/AMQ-2292 - ReadOnlyAsyncDataManager NPE
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java?rev=785525&r1=785524&r2=785525&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/kaha/impl/async/ReadOnlyAsyncDataManager.java Wed Jun 17 09:31:54 2009
@@ -48,6 +48,8 @@
}
started = true;
+
+ accessorPool = new DataFileAccessorPool(this);
ArrayList<File> files = new ArrayList<File>();
for (File directory : dirs) {
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java?rev=785525&r1=785524&r2=785525&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/kaha/impl/async/JournalImplTest.java Wed Jun 17 09:31:54 2009
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import junit.framework.TestCase;
@@ -26,6 +27,8 @@
import org.apache.activeio.packet.ByteArrayPacket;
import org.apache.activeio.packet.Packet;
import org.apache.activemq.kaha.impl.async.JournalFacade.RecordLocationFacade;
+import org.apache.activemq.kaha.impl.async.ReadOnlyAsyncDataManager;
+import org.apache.activemq.util.ByteSequence;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -126,6 +129,37 @@
log.info(journal);
}
+ public void testReadOnlyRead() throws InvalidRecordLocationException, InterruptedException, IOException {
+
+ Packet data1 = createPacket("Hello World 1");
+ RecordLocation location1 = journal.write(data1, false);
+ Packet data2 = createPacket("Hello World 2");
+ RecordLocation location2 = journal.write(data2, false);
+ Packet data3 = createPacket("Hello World 3");
+ RecordLocation location3 = journal.write(data3, false);
+
+ Packet packet;
+ packet = journal.read(location2);
+ assertEquals(data2, packet);
+ packet = journal.read(location1);
+ assertEquals(data1, packet);
+ packet = journal.read(location3);
+ assertEquals(data3, packet);
+
+ ArrayList<File> data = new ArrayList<File>();
+ data.add(logDirectory);
+ ReadOnlyAsyncDataManager rodm = new ReadOnlyAsyncDataManager(data);
+ rodm.start();
+ try {
+ for (Location curr = rodm.getFirstLocation(); curr != null; curr = rodm.getNextLocation(curr)) {
+ ByteSequence bs = rodm.read(curr);
+ assertNotNull(bs);
+ }
+ } finally {
+ rodm.close();
+ }
+ }
+
public void testCanReadFromArchivedLogFile() throws InvalidRecordLocationException, InterruptedException, IOException {
Packet data1 = createPacket("Hello World 1");