Skip to content

Curly braces cannot be given in a child process jvm arg if you also need to supply an escaped comma #1441

Description

@Vampire

Besides that the escaping of commas for child process jvm args using curly braces is not documented anywhere but in the source code, there is one case that currently does not work.

If you for example need to supply -DsomeValue=,{, this is currently not possible due to the current comma-handling code.
If you supply it like that, you end up with the two arguments -DsomeValue=, and {.
If you supply it like -DsomeValue={,}{, you end up with the one argument -DsomeValue=,, because if one escaped comma was found, all curly braces are stripped away.

Curly braces should only be stripped away if they actually did escape a comma and other curly braces should be preserved, also if they are supplied as pair like -DsomeValue={,}{} or -DsomeValue={,}{foo} which should be interpreted as -DsomeValue=,{} and -DsomeValue=,{foo}.

The only questionable case is, what happens if you have curly braces within curly braces like -DsomeValue={{,}} or {-DsomeValue={,}}.
I'm not sure whether it would be better to interpret this as

  • -DsomeValue=, and -DsomeValue=,, or
  • -DsomeValue={,} and {-DsomeValue=,}, or maybe
  • -DsomeValue={,} in both cases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions