Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions quickfixj-core/src/main/java/quickfix/CachedFileStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ private void initializeSessionCreateTime() throws IOException {
new FileInputStream(sessionTimeFile)))) {
final Calendar c = SystemTime.getUtcCalendar(UtcTimestampConverter
.convert(sessionTimeInput.readUTF()));
cache.setCreationTime(c);
cache.setCreationTimeCalendar(c);
} catch (final Exception e) {
throw new IOException(e.getMessage());
}
Expand All @@ -147,7 +147,7 @@ private void storeSessionTimeStamp() throws IOException {
try (DataOutputStream sessionTimeOutput = new DataOutputStream(new BufferedOutputStream(
new FileOutputStream(sessionFileName, false)))) {
final Date date = SystemTime.getDate();
cache.setCreationTime(SystemTime.getUtcCalendar(date));
cache.setCreationTimeCalendar(SystemTime.getUtcCalendar(date));
sessionTimeOutput.writeUTF(UtcTimestampConverter.convert(date, true));
}
}
Expand Down
4 changes: 2 additions & 2 deletions quickfixj-core/src/main/java/quickfix/FileStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ private void initializeSessionCreateTime() throws IOException {
new FileInputStream(sessionTimeFile)))) {
final Calendar c = SystemTime.getUtcCalendar(UtcTimestampConverter
.convert(sessionTimeInput.readUTF()));
cache.setCreationTime(c);
cache.setCreationTimeCalendar(c);
} catch (final Exception e) {
throw new IOException(e.getMessage());
}
Expand All @@ -137,7 +137,7 @@ private void storeSessionTimeStamp() throws IOException {
try (DataOutputStream sessionTimeOutput = new DataOutputStream(new BufferedOutputStream(
new FileOutputStream(sessionFileName, false)))) {
final Date date = SystemTime.getDate();
cache.setCreationTime(SystemTime.getUtcCalendar(date));
cache.setCreationTimeCalendar(SystemTime.getUtcCalendar(date));
sessionTimeOutput.writeUTF(UtcTimestampConverter.convert(date, true));
}
}
Expand Down
2 changes: 1 addition & 1 deletion quickfixj-core/src/main/java/quickfix/JdbcStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ private void loadCache() throws SQLException, IOException {
setSessionIdParameters(query, 1);
rs = query.executeQuery();
if (rs.next()) {
cache.setCreationTime(SystemTime.getUtcCalendar(rs.getTimestamp(1)));
cache.setCreationTimeCalendar(SystemTime.getUtcCalendar(rs.getTimestamp(1)));
cache.setNextTargetMsgSeqNum(rs.getInt(2));
cache.setNextSenderMsgSeqNum(rs.getInt(3));
} else {
Expand Down
12 changes: 6 additions & 6 deletions quickfixj-core/src/main/java/quickfix/MemoryStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class MemoryStore implements MessageStore {
private int nextSenderMsgSeqNum;
private int nextTargetMsgSeqNum;
private SessionID sessionID;
private Calendar creationTime = SystemTime.getUtcCalendar();
private Calendar creationTimeCalendar = SystemTime.getUtcCalendar();

public MemoryStore() throws IOException {
reset();
Expand Down Expand Up @@ -67,15 +67,15 @@ public boolean get(int sequence, String message) throws IOException {
}

public Date getCreationTime() throws IOException {
return creationTime.getTime();
return creationTimeCalendar.getTime();
}

public Calendar getCreationTimeCalendar() throws IOException {
return creationTime;
return creationTimeCalendar;
}

void setCreationTime(Calendar creationTime) {
this.creationTime = creationTime;
void setCreationTimeCalendar(Calendar creationTimeCalendar) {
this.creationTimeCalendar = creationTimeCalendar;
}

public int getNextSenderMsgSeqNum() {
Expand All @@ -98,7 +98,7 @@ public void reset() throws IOException {
setNextSenderMsgSeqNum(1);
setNextTargetMsgSeqNum(1);
messages.clear();
creationTime = SystemTime.getUtcCalendar();
creationTimeCalendar = SystemTime.getUtcCalendar();
}

public boolean set(int sequence, String message) throws IOException {
Expand Down
7 changes: 3 additions & 4 deletions quickfixj-core/src/main/java/quickfix/NoopStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,15 @@
*/
public class NoopStore implements MessageStore {

private Date creationTime = new Date();
private Calendar creationTimeCalendar = SystemTime.getUtcCalendar(creationTime);
private int nextSenderMsgSeqNum = 1;
private int nextTargetMsgSeqNum = 1;
private Calendar creationTimeCalendar = SystemTime.getUtcCalendar();

public void get(int startSequence, int endSequence, Collection<String> messages) {
}

public Date getCreationTime() {
return creationTime;
return creationTimeCalendar.getTime();
}

public Calendar getCreationTimeCalendar() {
Expand All @@ -64,9 +63,9 @@ public void incrNextTargetMsgSeqNum() {
}

public void reset() {
creationTime = new Date();
nextSenderMsgSeqNum = 1;
nextTargetMsgSeqNum = 1;
creationTimeCalendar = SystemTime.getUtcCalendar();
}

public boolean set(int sequence, String message) {
Expand Down
45 changes: 45 additions & 0 deletions quickfixj-core/src/test/java/quickfix/NoopStoreTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package quickfix;

import org.junit.Test;

import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Calendar;
import java.util.Date;

import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotSame;

public class NoopStoreTest {

@Test
public void shouldInstantiateNewCalendarOnStoreReset() {
try {
LocalDateTime before = LocalDateTime.of(2023, 1, 1, 2, 3, 4);

MockSystemTimeSource beforeTimeSource = new MockSystemTimeSource(before.toInstant(ZoneOffset.UTC).toEpochMilli());
SystemTime.setTimeSource(beforeTimeSource);

NoopStore underTest = new NoopStore();

Date creationTime = underTest.getCreationTime();
Calendar creationTimeCalendar = underTest.getCreationTimeCalendar();

MockSystemTimeSource afterTimeSource = new MockSystemTimeSource(before.plusMinutes(1L).toInstant(ZoneOffset.UTC).toEpochMilli());
SystemTime.setTimeSource(afterTimeSource);

underTest.reset();

Date creationTimeAfterReset = underTest.getCreationTime();
Calendar creationTimeCalendarAfterReset = underTest.getCreationTimeCalendar();

assertNotSame(creationTime, creationTimeAfterReset);
assertNotSame(creationTimeCalendar, creationTimeCalendarAfterReset);

assertNotEquals(creationTime, creationTimeAfterReset);
assertNotEquals(creationTimeCalendar, creationTimeCalendarAfterReset);
} finally {
SystemTime.setTimeSource(null);
}
}
}
Loading