From f14b302489dc47427a3ad324ff5d0b8f69f9bb32 Mon Sep 17 00:00:00 2001 From: XingY Date: Wed, 25 Mar 2026 09:30:19 -0700 Subject: [PATCH] GitHub Issue 950: cross folder export/import roundtripping problems for MVTC with commas and quotes --- .../src/org/labkey/experiment/ExpDataIterators.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/experiment/src/org/labkey/experiment/ExpDataIterators.java b/experiment/src/org/labkey/experiment/ExpDataIterators.java index b14dacc468e..07d5d275ebe 100644 --- a/experiment/src/org/labkey/experiment/ExpDataIterators.java +++ b/experiment/src/org/labkey/experiment/ExpDataIterators.java @@ -42,6 +42,7 @@ import org.labkey.api.data.ExpDataFileConverter; import org.labkey.api.data.ImportAliasable; import org.labkey.api.data.JdbcType; +import org.labkey.api.data.MultiChoice; import org.labkey.api.data.NameGenerator; import org.labkey.api.data.RemapCache; import org.labkey.api.data.SimpleFilter; @@ -116,6 +117,7 @@ import org.labkey.api.util.DateUtil; import org.labkey.api.util.FileUtil; import org.labkey.api.util.GUID; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.util.Pair; import org.labkey.api.util.StringUtilsLabKey; import org.labkey.api.util.logging.LogHelper; @@ -3237,6 +3239,13 @@ private Object getSerializingObject(Object data) return DateUtil.formatIsoDateLongTime(d, true); if (data instanceof String s) return _tsvWriter.quoteValue(s.trim()); + if (data instanceof MultiChoice.Array array) + { + // GitHub Issue 950: cross folder export/import roundtripping problems for MVTC with commas and quotes + String displayVal = PageFlowUtil.joinValuesToStringForExport(array); + return _tsvWriter.quoteValue(displayVal.trim()); + } + return data; }