diff --git a/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryCommandStreamStore.java b/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryCommandStreamStore.java index 7b9f5a5cc..6755aacea 100644 --- a/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryCommandStreamStore.java +++ b/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryCommandStreamStore.java @@ -273,8 +273,13 @@ protected synchronized ICommandStreamInfo put(CommandStreamKey csKey, ICommandSt var newValidTime = csInfo.getValidTime().begin(); // error if command stream with same system/name/validTime already exists + // unless updating the same key if (prevValidTime.equals(newValidTime)) + { + if (replace && key.equals(csKey)) + return map.put(csKey, csInfo); throw new DataStoreException(DataStoreUtils.ERROR_EXISTING_COMMANDSTREAM); + } // don't add if previous entry had a more recent valid time // or if new entry is dated in the future diff --git a/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryDataStreamStore.java b/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryDataStreamStore.java index ef6764f61..50a70dbad 100644 --- a/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryDataStreamStore.java +++ b/sensorhub-core/src/main/java/org/sensorhub/impl/datastore/mem/InMemoryDataStreamStore.java @@ -224,8 +224,13 @@ protected synchronized IDataStreamInfo put(DataStreamKey dsKey, IDataStreamInfo var newValidTime = dsInfo.getValidTime().begin(); // error if datastream with same system/name/validTime already exists + // unless updating the same key if (prevValidTime.equals(newValidTime)) + { + if (replace && key.equals(dsKey)) + return map.put(dsKey, dsInfo); throw new DataStoreException(DataStoreUtils.ERROR_EXISTING_DATASTREAM); + } // don't add if previous entry had a more recent valid time // or if new entry is dated in the future