diff --git a/quickfixj-core/src/main/java/quickfix/MemoryStore.java b/quickfixj-core/src/main/java/quickfix/MemoryStore.java index fb3d1e49c..f10205651 100644 --- a/quickfixj-core/src/main/java/quickfix/MemoryStore.java +++ b/quickfixj-core/src/main/java/quickfix/MemoryStore.java @@ -43,8 +43,9 @@ public MemoryStore() throws IOException { reset(); } - public MemoryStore(SessionID sessionID) { + public MemoryStore(SessionID sessionID) throws IOException { this.sessionID = sessionID; + reset(); } public void get(int startSequence, int endSequence, Collection messages) throws IOException { @@ -111,8 +112,8 @@ public void setNextTargetMsgSeqNum(int next) throws IOException { public void refresh() throws IOException { // IOException is declared to maintain strict compatibility with QF JNI final String text = "memory store does not support refresh!"; - if (sessionID != null) { - Session session = Session.lookupSession(sessionID); + final Session session = sessionID != null ? Session.lookupSession(sessionID) : null; + if (session != null) { session.getLog().onErrorEvent("ERROR: " + text); } else { LoggerFactory.getLogger(MemoryStore.class).error(text); diff --git a/quickfixj-core/src/main/java/quickfix/MemoryStoreFactory.java b/quickfixj-core/src/main/java/quickfix/MemoryStoreFactory.java index 890365166..09b670b73 100644 --- a/quickfixj-core/src/main/java/quickfix/MemoryStoreFactory.java +++ b/quickfixj-core/src/main/java/quickfix/MemoryStoreFactory.java @@ -30,7 +30,7 @@ public class MemoryStoreFactory implements MessageStoreFactory { public MessageStore create(SessionID sessionID) { try { - return new MemoryStore(); + return new MemoryStore(sessionID); } catch (IOException e) { throw new RuntimeError(e); }