fix(sandbox): fail-fast op SDKman- en JAVA_HOME-fouten in Maven run.sh#39
Merged
Conversation
Twee aanpassingen aan de JVM-detectie in claude-sandbox/host-agents/maven/run.sh die werden afgesplitst uit de PR #38-review (out-of-scope daar): 1. SDKman-init: exit-status expliciet capturen. Eerder werd `set +euo pipefail` actief gelaten over de hele `source ... || echo`-regel, waardoor de meeste fouten binnen sdkman-init.sh stil verdwenen en de `|| echo`-fallback onbereikbaar was voor partial-init-scenario's. Nu vangen we $? netjes op en loggen de exit-code als er iets fout ging. 2. Ontbrekende JAVA_HOME na SDKman-pad: van waarschuwing naar harde exit 1. Eerder ging het script vrolijk door zonder JVM en kreeg de gebruiker pas verderop in Maven of de agent een onbegrijpelijke fout. Consistent met het arg-required-beleid uit PR #38: een ontbrekende randvoorwaarde melden we hier, niet pas in een vendored tool. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Review op de eerste versie van deze PR signaleerde drie zaken:
1. Hard exit op enkel een lege JAVA_HOME was een regressie voor stock
Debian/Ubuntu/Fedora/Arch/Homebrew, waar `mvn` zonder geëxporteerde
JAVA_HOME werkt via de Apache-wrapper (resolved `java` op PATH + readlink).
Check nu beide: alleen exit 1 als JAVA_HOME leeg is én `command -v java`
niets vindt. Foutmelding dekt nu beide paden ("geen JAVA_HOME gezet en
geen 'java' op PATH gevonden.").
2. Comment bij de SDKman-init noemde `set +e` waar de code `set +euo pipefail`
doet en suggereerde dat `set +e` $? swallowed; herformuleerd naar de
feitelijke reden (status capturen vóór strict-mode-restore).
3. Foutmelding "SDKman heeft geen JVM geactiveerd" klopte niet als SDKman
helemaal niet geïnstalleerd was. Tekst nu neutraal.
Geverifieerd: JAVA_HOME leeg + geen java op PATH → exit 1; JAVA_HOME leeg +
java op PATH → doorgaan; JAVA_HOME gezet → doorgaan.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mreuvekamp
approved these changes
May 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adresseert twee out-of-scope bevindingen uit de PR #38-review over
claude-sandbox/host-agents/maven/run.sh:set +euo pipefail, sourcetesdkman-init.shen hing een|| echo "⚠️ …"aan de regel. Onderset +eretourneert de meeste sdkman-init-paden 0 ook bij interne problemen, dus de fallback-melding was effectief onbereikbaar voor partial-init-scenario's (kapot candidate-symlink, halve install). Nu vangen we$?expliciet op en loggen de exit-code als er iets misging.⚠️en doorgaan. Resultaat: een onbegrijpelijke fout verderop in Maven of de agent. Nuexit 1met een actiegerichte instructie, consistent met de fail-fast-policy uit PR fix(sandbox): pin pip deps by hash + vereis project-dir arg #38 (project-dir ontbreekt → exit 2).Details
main. Raakt geen andere bestanden danrun.sh. Geen conflict met PR fix(sandbox): pin pip deps by hash + vereis project-dir arg #38 verwacht (verschillende regels), maar als PR fix(sandbox): pin pip deps by hash + vereis project-dir arg #38 eerst landt rebase ik schoon.bash -nsyntax-check groen; shellcheck niet beschikbaar in deze omgeving.Test plan
JAVA_HOME=/pad/naar/jdk ./run.sh /pad/naar/maven-projectstart normaal (geen warning, geen exit 1).ERROR: JAVA_HOME is niet gezet …en exit 1.JAVA_HOMEzet: script gaat zonder warning door.sdkman-init.shaanwezig maar candidate-symlink corrupt): warning verschijnt met expliciete exit-code, en bij ontbrekendeJAVA_HOMEdaarna alsnog exit 1.🤖 Generated with Claude Code