From 452695bac329379a35eb0fa5195dfd2628c9b79c Mon Sep 17 00:00:00 2001
From: alaskowski <alaskowski@ethz.ch>
Date: Wed, 12 Jul 2023 13:37:22 +0200
Subject: [PATCH] SSDM-55: Adding multivalued property handling for Samples,
 changed how array values are detected.

---
 api-openbis-javascript/src/v3/as/dto/sample/Sample.js | 2 +-
 api-openbis-javascript/src/v3/util/Json.js            | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/api-openbis-javascript/src/v3/as/dto/sample/Sample.js b/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
index 23852de463d..795675bec4d 100644
--- a/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
+++ b/api-openbis-javascript/src/v3/as/dto/sample/Sample.js
@@ -561,7 +561,7 @@ define([ "stjs", "util/Exceptions", "as/dto/common/Relationship" ], function(stj
 		experiment : "Experiment",
 		properties : {
 			name : "Map",
-			arguments : [ "String", "String" ]
+			arguments : [ "String", "Serializable" ]
 		},
 		materialProperties : {
 			name : "Map",
diff --git a/api-openbis-javascript/src/v3/util/Json.js b/api-openbis-javascript/src/v3/util/Json.js
index 556741631d5..595179d1388 100644
--- a/api-openbis-javascript/src/v3/util/Json.js
+++ b/api-openbis-javascript/src/v3/util/Json.js
@@ -144,8 +144,9 @@ define([ 'jquery', 'underscore' ], function(jquery, _) {
 	}
 
 	var fromJsonObjectWithTypeOrArrayOrMap = function(jsonType, jsonObject, objectMap, modulesMap) {
-		if (jsonObject instanceof Array) {
-			if (jsonType && _.isString(jsonType) && jsonObject.length == 2) {
+		if (Array.isArray(jsonObject)) {
+		    // properties are <String, Serializable>
+			if (jsonType && _.isString(jsonType) && jsonObject.length == 2 && jsonType != 'Serializable') {
 				return jsonObject[1];
 			} else {
 				var array = [];
-- 
GitLab