From bf24a1c7c10ac6b3d926491089410f3785801431 Mon Sep 17 00:00:00 2001 From: kalynstricklin Date: Wed, 29 Apr 2026 12:51:22 -0500 Subject: [PATCH] check if the datastream is being replaced before throwing an error --- .../impl/datastore/mem/InMemoryCommandStreamStore.java | 5 +++++ .../impl/datastore/mem/InMemoryDataStreamStore.java | 5 +++++ 2 files changed, 10 insertions(+) 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 7b9f5a5ccf..6755aacea0 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 ef6764f610..50a70dbadd 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