Elkhan Dadashov created FLINK-32126: ---------------------------------------
Summary: When program arg contains two single quotes org.apache.flink.configuration.StructuredOptionsSplitter.consumeInQuotes fails Key: FLINK-32126 URL: https://issues.apache.org/jira/browse/FLINK-32126 Project: Flink Issue Type: Bug Components: API / Core Affects Versions: 1.17.0 Environment: Flink 1.17 Reporter: Elkhan Dadashov When the program argument contains two single quotes, then it fails : ``` for key '$internal.application.program-args'.\n\tat org.apache.flink.configuration.Configuration.getOptional(Configuration.java:720)\n\tat org.apache.flink.configuration.Configuration.get(Configuration.java:704)\n\tat org.apache.flink.configuration.ConfigUtils.decodeListFromConfig(ConfigUtils.java:126)\n\tat org.apache.flink.client.deployment.application.ApplicationConfiguration.fromConfiguration(ApplicationConfiguration.java:80)\n\tat org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.getPackagedProgram(KubernetesApplicationClusterEntrypoint.java:93)\n\tat org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.main(KubernetesApplicationClusterEntrypoint.java:70)\n Caused by: java.lang.IllegalArgumentException: Could not split string. Quoting was not closed properly.\n\tat org.apache.flink.configuration.StructuredOptionsSplitter.consumeInQuotes(StructuredOptionsSplitter.java:163)\n\tat org.apache.flink.configuration.StructuredOptionsSplitter.tokenize(StructuredOptionsSplitter.java:129)\n\tat org.apache.flink.configuration.StructuredOptionsSplitter.splitEscaped(StructuredOptionsSplitter.java:52)\n\tat org.apache.flink.configuration.ConfigurationUtils.convertToList(ConfigurationUtils.java:347)\n\tat org.apache.flink.configuration.Configuration.lambda$getOptional$2(Configuration.java:714)\n\tat java.base/java.util.Optional.map(Optional.java:265)\n\tat org.apache.flink.configuration.Configuration.getOptional(Configuration.java:714) ``` Double single quotes are used in faker connector extensively, and if FlinkSQL script is passed as main argument, then it fails with the above exception. This is just to show the use case of two single quotes usage in practice. ``` CREATE TEMPORARY TABLE IF NOT EXISTS xyz_table ( env STRING, dt DATE ) WITH ( 'connector' = 'faker' , 'rows-per-second' = '20' , 'fields.env.expression' = '#\{Options.option ''VAL'',''LIVE'')}' , 'fields.dt.expression' = '#\{date.past ''48'',''HOURS''}', 'source.parallelism' = '3' ); ``` -- This message was sent by Atlassian Jira (v8.20.10#820010)