From 712c0dd3eda345ccce302f09547fa59098e6ab2e Mon Sep 17 00:00:00 2001
From: alaskowski <alaskowski@ethz.ch>
Date: Mon, 7 Aug 2023 13:32:13 +0200
Subject: [PATCH] SSDM-55: fixed NewProperty data deserialization

---
 .../generic/shared/dto/NewProperty.java       | 23 ++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewProperty.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewProperty.java
index eb47482e852..6f66a297de1 100644
--- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewProperty.java
+++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/NewProperty.java
@@ -58,7 +58,7 @@ public class NewProperty implements Serializable
 
     public String getValue()
     {
-        return (String) value;
+        return getPropertyAsString(value);
     }
 
     @BeanProperty(label = "value", optional = false)
@@ -98,4 +98,25 @@ public class NewProperty implements Serializable
         return false;
     }
 
+    private String getPropertyAsString(Serializable propertyValue) {
+        if(propertyValue == null) {
+            return null;
+        } else {
+            if(propertyValue.getClass().isArray()) {
+                Serializable[] values = (Serializable[]) propertyValue;
+                StringBuilder builder = new StringBuilder("[");
+                for(Serializable value : values) {
+                    if(builder.length() > 1) {
+                        builder.append(", ");
+                    }
+                    builder.append(value);
+                }
+                builder.append("]");
+                return builder.toString();
+            } else {
+                return (String) propertyValue;
+            }
+        }
+    }
+
 }
-- 
GitLab