From 6095d2df75b9bfd55f77bc11cb60715352c6e2d0 Mon Sep 17 00:00:00 2001 From: Beppe Catanese <1771700+gcatanese@users.noreply.github.com> Date: Thu, 16 Feb 2023 11:36:47 +0100 Subject: [PATCH] Support CommaSeparatedTuples including commas (#14535) * Test parsing CSV values including commas * Remove commented line --- .../org/openapitools/codegen/cmd/utils/OptionUtilsTest.java | 4 ++++ .../main/java/org/openapitools/codegen/utils/OptionUtils.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java index 37c4039423b..cda2bccc831 100644 --- a/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java +++ b/modules/openapi-generator-cli/src/test/java/org/openapitools/codegen/cmd/utils/OptionUtilsTest.java @@ -52,6 +52,10 @@ public class OptionUtilsTest { doTupleListTest("a=1,=,c=3", asList(Pair.of("a", "1"), Pair.of("c", "3"))); doTupleListTest("", emptyPairList()); doTupleListTest(null, emptyPairList()); + doTupleListTest("a=1,b=2,c=\"3,4,5\"", + asList(Pair.of("a", "1"), Pair.of("b", "2"), + Pair.of("c", "\"3,4,5\""))); + } private static void doTupleListTest(String input, List> expectedResults) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java index ee25cdadea1..3059db818e8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/OptionUtils.java @@ -51,7 +51,8 @@ public class OptionUtils { List results = new ArrayList(); if(input != null && !input.isEmpty()) { - for (String value : input.split(",")) { + String[] tokens = input.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1); + for (String value : tokens) { if(isNotEmpty(value)) results.add(value); }