From 59a9ca1687ae24cb8e9123f6a20e6112741ad52f Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Tue, 24 Feb 2026 10:54:24 -0800 Subject: [PATCH] use shared convert code --- .../query/ExperimentsTable.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/OConnorExperiments/src/org/labkey/oconnorexperiments/query/ExperimentsTable.java b/OConnorExperiments/src/org/labkey/oconnorexperiments/query/ExperimentsTable.java index c48094aa..caf29180 100644 --- a/OConnorExperiments/src/org/labkey/oconnorexperiments/query/ExperimentsTable.java +++ b/OConnorExperiments/src/org/labkey/oconnorexperiments/query/ExperimentsTable.java @@ -15,9 +15,9 @@ */ package org.labkey.oconnorexperiments.query; +import org.apache.commons.beanutils.ConvertUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.json.JSONArray; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.collections.RowMapFactory; import org.labkey.api.data.ColumnInfo; @@ -29,6 +29,7 @@ import org.labkey.api.data.Filter; import org.labkey.api.data.JdbcType; import org.labkey.api.data.LookupColumn; +import org.labkey.api.data.MultiChoice; import org.labkey.api.data.MultiValuedForeignKey; import org.labkey.api.data.SchemaTableInfo; import org.labkey.api.data.SimpleFilter; @@ -317,16 +318,10 @@ private void insertParentExperiments(User user, List> rows, List> parentExperimentRows = new ArrayList<>(); String c = (String)row.get("container"); Object v = row.get("ParentExperiments"); - String[] parentExperiments = null; - if (v instanceof String[]) - parentExperiments = (String[])v; - else if (v instanceof JSONArray ja) - { - ArrayList s = new ArrayList<>(); - for (Object o : ja.toList()) - s.add(o.toString()); - parentExperiments = s.toArray(new String[0]); - } + + // use a bit of shared code for this conversion + MultiChoice.Array arr = (MultiChoice.Array)ConvertUtils.convert(v, MultiChoice.Array.class); + String[] parentExperiments = null == arr || arr.isEmpty() ? null : arr.getStringArray(); Container innerContainer = ContainerManager.getForId(c); if (innerContainer == null)