Skip to content

fix(java): don't recreate WASM instance on thread interruption#381

Merged
nicklasl merged 1 commit into
mainfrom
interrupt-fix
Apr 21, 2026
Merged

fix(java): don't recreate WASM instance on thread interruption#381
nicklasl merged 1 commit into
mainfrom
interrupt-fix

Conversation

@andreas-karlsson

Copy link
Copy Markdown
Collaborator

Summary

  • RecoveringResolver now distinguishes ChicoryInterruptedException from
    other ChicoryException types — interrupts are rethrown without triggering
    background WASM instance recreation, since the instance isn't actually broken.
  • PooledResolver.maintenance() no longer catches RuntimeException. Errors
    propagate to callers instead of being silently swallowed. The close() path
    retains its own catch to ensure all slots are cleaned up.
  • Scheduler lambdas in OpenFeatureLocalResolveProvider now have error handling
    so that a transient failure doesn't silently kill the state refresh loop or
    the assign log flush timer.

Test plan

  • New RecoveringResolverTest verifying that ChicoryException triggers
    recreation but ChicoryInterruptedException does not
  • Existing integration tests pass

🤖 Generated with Claude Code

@nicklasl
nicklasl merged commit 4b0d22d into main Apr 21, 2026
2 checks passed
@nicklasl
nicklasl deleted the interrupt-fix branch April 21, 2026 14:06
@github-actions github-actions Bot mentioned this pull request Apr 21, 2026
@github-actions github-actions Bot mentioned this pull request Apr 29, 2026
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.

2 participants