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

riemer pushed a commit to branch fix-completeness-validation
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit cb3e295e82ffd2985966b5c79468ccc291f112ea
Author: Dominik Riemer <[email protected]>
AuthorDate: Tue Nov 19 13:59:35 2024 +0100

    fix: Fix pipeline element validation for collections
---
 .../internal/jvm/datalake/DataLakeDimensionProvider.java      | 11 +++++++----
 .../manager/matching/v2/pipeline/CheckCompletedVisitor.java   |  8 +++++++-
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeDimensionProvider.java
 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeDimensionProvider.java
index 17ed2b9c87..aaa444db3e 100644
--- 
a/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeDimensionProvider.java
+++ 
b/streampipes-extensions/streampipes-sinks-internal-jvm/src/main/java/org/apache/streampipes/sinks/internal/jvm/datalake/DataLakeDimensionProvider.java
@@ -55,10 +55,13 @@ public class DataLakeDimensionProvider {
   private void addFieldIfNotExists(EventPropertyPrimitive field,
                                    List<Option> options) {
     if (options.stream().noneMatch(o -> 
o.getName().equals(field.getRuntimeName()))) {
-      options.add(new Option(
-          field.getRuntimeName(),
-          PropertyScope.valueOf(field.getPropertyScope()) == 
PropertyScope.DIMENSION_PROPERTY)
-      );
+      if (field.getPropertyScope() != null) {
+        options.add(new Option(
+                field.getRuntimeName(),
+                PropertyScope.valueOf(field.getPropertyScope()) == 
PropertyScope.DIMENSION_PROPERTY
+            )
+        );
+      }
     }
   }
 
diff --git 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/v2/pipeline/CheckCompletedVisitor.java
 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/v2/pipeline/CheckCompletedVisitor.java
index fadbd19ecb..63440e7ca5 100644
--- 
a/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/v2/pipeline/CheckCompletedVisitor.java
+++ 
b/streampipes-pipeline-management/src/main/java/org/apache/streampipes/manager/matching/v2/pipeline/CheckCompletedVisitor.java
@@ -21,6 +21,7 @@ package org.apache.streampipes.manager.matching.v2.pipeline;
 import org.apache.streampipes.model.pipeline.PipelineElementValidationInfo;
 import org.apache.streampipes.model.staticproperty.AnyStaticProperty;
 import org.apache.streampipes.model.staticproperty.CodeInputStaticProperty;
+import org.apache.streampipes.model.staticproperty.CollectionStaticProperty;
 import org.apache.streampipes.model.staticproperty.ColorPickerStaticProperty;
 import 
org.apache.streampipes.model.staticproperty.DefaultStaticPropertyVisitor;
 import org.apache.streampipes.model.staticproperty.FileStaticProperty;
@@ -66,6 +67,11 @@ public class CheckCompletedVisitor extends 
DefaultStaticPropertyVisitor {
     validateNull(codeInputStaticProperty, codeInputStaticProperty.getValue());
   }
 
+  @Override
+  public void visit(CollectionStaticProperty collectionStaticProperty) {
+    collectionStaticProperty.getMembers().forEach(sp -> sp.accept(this));
+  }
+
   @Override
   public void visit(ColorPickerStaticProperty colorPickerStaticProperty) {
     validateNull(colorPickerStaticProperty, 
colorPickerStaticProperty.getSelectedColor());
@@ -206,7 +212,7 @@ public class CheckCompletedVisitor extends 
DefaultStaticPropertyVisitor {
     validationInfos.add(
         PipelineElementValidationInfo.error(
             String.format(
-                "Configuration option \"%s\" as no value although it is marked 
as required",
+                "Configuration option \"%s\" has no value although it is 
marked as required",
                 sp.getInternalName()
             )
         )

Reply via email to