OpenAPITools / OpenAPITools/openapi-generator-cli

[BUG] JAVA_OPTS is incorrectly evaluated

Open
#1,213 0 comments 0 reactions 1 assignee View on GitHub

@kay-schecker is already working on this.

Since Jun 2, 2026.

bug
Dominant language
TypeScript
Stars
2k
Forks
208
Avg merge
7h 12m
Merged PRs (30d)
6

Description

🐛 Bug Report:

Describe the bug

The content of the environment variable JAVA_OPTS is evaluated. In case it contains a | character, then the next part of it is interpreted as a new command.

I'm in a corporate network that is secured by a proxy. My JAVA_OPTS environment variable defines the settings so that Java can use the proxy:

$ env | grep JAVA_OPTS
JAVA_OPTS=-Dhttp.proxyHost=localhost -Dhttp.proxyPort=9000 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=9000 -Dhttp.nonProxyHosts=127.*|localhost|*.local
$

The http.nonProxyHosts contains the | character as described by Java. The normal Java applications accept this environment variable correctly.

Steps to Reproduce

Steps to reproduce the behavior:

  1. Go to en empty directory.
  2. Install the cli:
    npm install -g @openapitools/openapi-generator-cli
  3. Call the generator without a | in the JAVA_OPTS:
    JAVA_OPTS="-Dhttp.nonProxyHosts=localhost" openapi-generator-cli help
  4. Call the generator with a | in the JAVA_OPTS:
    JAVA_OPTS="-Dhttp.nonProxyHosts=127.*|localhost" openapi-generator-cli help
Actuall response

The command from point 4. returns the error message:

Error: 'localhost' is not recognized as an internal or external command,
operable program or batch file.

    at C:\Users\S230984\AppData\Local\nvm\v22.22.3\node_modules\@openapitools\openapi-generator-cli\main.js:2:51423
    at ChildProcess.exithandler (node:child_process:424:5)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1101:16)
    at ChildProcess._handle.onexit (node:internal/child_process:304:5)

Node.js v22.22.3
Expected behavior

The command from point 3. returns a correct help response. The command from point 4. should return the same response.

Screenshots

N/A

Operation System (please complete the following information):
  • OS: Windows with a git-bash
  • Version 11
Package System (please complete the following information):
  • Version: Node.js 22
Additional context

I expect that the problem is that the java command with paramaters is evaluated too much. There are somewhere quotes missing. During the evaluation, the | character is then interpreted by the shell as a command pipe end the next part is expected to be a command (which it isn't). Additional quotes inside my environment variable is not needed. The normal shell doesn't automatically evaluate the content as a pipe. The following command (without additional quotes) returns the correct output:

$ echo $JAVA_OPTS
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=9000 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=9000 -Dhttp.nonProxyHosts=127.*|localhost|*.local
$

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.