[ 
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)

Reply via email to