Skip to content

(via ryandens): Use getOrElse(emptyMap()) for agentOptions to avoid IllegalStateExceptio - #391

Merged
macroscopeapp[bot] merged 3 commits into
worktree-javaagent-options-issue-50from
macroscope/worktree-javaagent-options-issue-50
Jul 23, 2026
Merged

(via ryandens): Use getOrElse(emptyMap()) for agentOptions to avoid IllegalStateExceptio#391
macroscopeapp[bot] merged 3 commits into
worktree-javaagent-options-issue-50from
macroscope/worktree-javaagent-options-issue-50

Conversation

@macroscopeapp

@macroscopeapp macroscopeapp Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes an IllegalStateException that occurs when agentOptions is not explicitly configured in the Jib extension.

Changes

  • Updated JavaagentJibExtension.kt to use getOrElse(emptyMap()) instead of get() when accessing agentOptions
  • When agentOptions is not configured, the code now gracefully defaults to an empty map rather than throwing an exception

Problem

Previously, calling extraConfig.get().agentOptions.get() would throw an IllegalStateException if the user had not set any agent options in their configuration. This made agentOptions effectively required even though it should be optional.

Solution

Using getOrElse(emptyMap()) provides a safe default value, making agentOptions truly optional as intended.

Note

Macroscope: Fix It For Me

  • This PR originated from this comment in Add ability to pass options to javaagents (#50) #379.
  • Since auto-merge is on, Macroscope will merge this PR after waiting for checks to pass.
  • If you'd rather not wait, you can always merge this yourself but no further action from you is currently needed.
  • You can also @mention Macroscope in this PR to request further changes.

Activity

Currently: Auto-merged de8ee7d

Previously
  • Waiting on checks
  • Pushed ce934b7
  • Action failed: Validate
  • Waiting on checks
  • Pushed c882d5a
  • Working on next commit...
  • Waiting on checks
  • Pushed 089c78f

Note

Fix IllegalStateException by keying agent options on canonical file path

  • Fixes a runtime IllegalStateException in JavaagentJibExtension by replacing Provider.get() with Provider.getOrElse(emptyMap()) when no agentOptions are configured.
  • Changes AgentOptionsResolver.optionsByFileName to optionsByFilePath, keying the options map by each artifact's canonical file path instead of its file name. All consumers (JavaForkOptionsConfigurer, JavaagentAwareStartScriptGenerator, Jib plugin, run/test/distribution plugins) are updated to match.
  • Behavioral Change: agent option lookups in JVM fork args and generated start scripts now use canonical paths; configs that relied on file-name keying will need to be re-evaluated if duplicate file names exist across different directories.

Macroscope summarized ce934b7.

@macroscopeapp
macroscopeapp Bot merged commit de8ee7d into worktree-javaagent-options-issue-50 Jul 23, 2026
4 checks passed
@macroscopeapp
macroscopeapp Bot deleted the macroscope/worktree-javaagent-options-issue-50 branch July 23, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant