OpenAPITools / OpenAPITools/openapi-generator-cli

[BUG] JAVA_OPTS is incorrectly evaluated

Offen
#1,213 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@kay-schecker arbeitet bereits daran.

Seit 02.6.2026.

bug
Vorherrschende Sprache
TypeScript
Sterne
2k
Forks
208
Ø Merge
7 Std. 12 Min.
Gemergte PRs (30 T.)
6

Beschreibung

🐛 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
$

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.