This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new 17c57f142f fix(#4057): Convert double timestamp value from influx to 
long (#4058)
17c57f142f is described below

commit 17c57f142fb54a9f44a09298eff0692847ad75d4
Author: Philipp Zehnder <[email protected]>
AuthorDate: Fri Dec 19 08:02:31 2025 +0100

    fix(#4057): Convert double timestamp value from influx to long (#4058)
---
 .../dataexplorer/export/item/ItemGenerator.java    |  7 -------
 .../export/TestConfiguredOutputWriter.java         |  4 ++--
 .../dataexplorer/export/TestItemGenerator.java     |  2 +-
 .../influx/DataExplorerInfluxQueryExecutor.java    | 24 ++++++++++++++++------
 4 files changed, 21 insertions(+), 16 deletions(-)

diff --git 
a/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
 
b/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
index 8ce39f516f..c0daf5905d 100644
--- 
a/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
+++ 
b/streampipes-data-explorer-export/src/main/java/org/apache/streampipes/dataexplorer/export/item/ItemGenerator.java
@@ -38,9 +38,6 @@ public abstract class ItemGenerator {
 
     for (int i = 0; i < row.size(); i++) {
       Object value = row.get(i);
-      if (i == 0) {
-        value = getTimestampValue((Double) row.get(i));
-      }
       joiner.add(makeItemString(columns.get(i), value));
     }
 
@@ -52,8 +49,4 @@ public abstract class ItemGenerator {
 
   protected abstract String finalizeItem(String item);
 
-  private long getTimestampValue(Double value) {
-    return value.longValue();
-  }
-
 }
diff --git 
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
 
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
index ea921e844e..55baac6339 100644
--- 
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
+++ 
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestConfiguredOutputWriter.java
@@ -31,8 +31,8 @@ public abstract class TestConfiguredOutputWriter {
   @BeforeEach
   public void before() {
     this.rows = Arrays.asList(
-        Arrays.asList(1668578077051.0, "test", 1),
-        Arrays.asList(1668578127050.0, "test2", 2)
+        Arrays.asList(1668578077051L, "test", 1),
+        Arrays.asList(1668578127050L, "test2", 2)
     );
 
     this.columns = Arrays.asList("time", "string", "number");
diff --git 
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
 
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
index d5cdc01fb9..8877e6b703 100644
--- 
a/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
+++ 
b/streampipes-data-explorer-export/src/test/java/org/apache/streampipes/dataexplorer/export/TestItemGenerator.java
@@ -30,7 +30,7 @@ public abstract class TestItemGenerator {
 
   @BeforeEach
   public void before() {
-    this.row = Arrays.asList(1668578077051.0, "test", 1);
+    this.row = Arrays.asList(1668578077051L, "test", 1);
     this.columns = Arrays.asList("time", "string", "number");
   }
 }
diff --git 
a/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
 
b/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
index dee0b1cbdd..f4e1df6095 100644
--- 
a/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
+++ 
b/streampipes-data-explorer-influx/src/main/java/org/apache/streampipes/dataexplorer/influx/DataExplorerInfluxQueryExecutor.java
@@ -18,10 +18,10 @@
 
 package org.apache.streampipes.dataexplorer.influx;
 
+import org.apache.streampipes.dataexplorer.api.IDataLakeQueryBuilder;
 import org.apache.streampipes.dataexplorer.influx.client.InfluxClientProvider;
 import org.apache.streampipes.dataexplorer.param.DeleteQueryParams;
 import org.apache.streampipes.dataexplorer.param.SelectQueryParams;
-import org.apache.streampipes.dataexplorer.api.IDataLakeQueryBuilder;
 import org.apache.streampipes.dataexplorer.query.DataExplorerQueryExecutor;
 import org.apache.streampipes.model.datalake.DataLakeMeasure;
 import org.apache.streampipes.model.datalake.DataSeries;
@@ -52,13 +52,16 @@ public class DataExplorerInfluxQueryExecutor extends 
DataExplorerQueryExecutor<Q
 
     List<List<Object>> resultingValues = new ArrayList<>();
 
-    values.forEach(v -> {
+    values.forEach(row -> {
+
+      convertTimestampValueToLong(row);
+
       if (ignoreMissingValues) {
-        if (!v.contains(null)) {
-          resultingValues.add(v);
+        if (!row.contains(null)) {
+          resultingValues.add(row);
         }
       } else {
-        resultingValues.add(v);
+        resultingValues.add(row);
       }
 
     });
@@ -66,6 +69,15 @@ public class DataExplorerInfluxQueryExecutor extends 
DataExplorerQueryExecutor<Q
     return new DataSeries(resultingValues.size(), resultingValues, columns, 
series.getTags());
   }
 
+  /**
+   * The influx client always returns a double for timestamp values. This 
method converts them to long values.
+   */
+  private void convertTimestampValueToLong(List<Object> row) {
+    if (!row.isEmpty()) {
+      row.set(0, ((Number) row.get(0)).longValue());
+    }
+  }
+
   protected SpQueryResult postQuery(QueryResult queryResult,
                                     Optional<String> forIdOpt,
                                     boolean ignoreMissingValues) throws 
RuntimeException {
@@ -78,7 +90,7 @@ public class DataExplorerInfluxQueryExecutor extends 
DataExplorerQueryExecutor<Q
         result.setHeaders(series.getHeaders());
         result.addDataResult(series);
         List<Object> lastValue = rs.getValues().get(rs.getValues().size() - 1);
-        lastTimestamp.set(Math.max(lastTimestamp.get(), ((Double) 
lastValue.get(0)).longValue()));
+        lastTimestamp.set(Math.max(lastTimestamp.get(), (long) 
lastValue.get(0)));
       });
 
       
result.setTotal(result.getAllDataSeries().stream().mapToInt(DataSeries::getTotal).sum());

Reply via email to