[
https://issues.apache.org/jira/browse/FLINK-32126?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martijn Visser updated FLINK-32126:
-----------------------------------
Component/s: Runtime / Configuration
(was: API / Core)
> 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: Runtime / Configuration
> Affects Versions: 1.17.0
> Environment: Flink 1.17
> Reporter: Elkhan Dadashov
> Priority: Major
>
> 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)