Skip to content

Conversation

@Nicenonecb
Copy link

What

  • Make beacon shell session cache concurrent and single-creation
  • Avoid double-starting shell controls
  • Reuse AppBeaconCache in ShellStartExchangeImpl and simplify stop logic

Why

  • Prevent duplicate shell session creation under concurrent requests
  • Avoid redundant start() calls on existing sessions
  • Improve stability for MCP/HTTP access paths

Changes

  • Use ConcurrentHashMap + computeIfAbsent keyed by entry UUID
  • Initialize control once (setNonInteractive + start) in cache creation path
  • ShellStartExchangeImpl now reuses AppBeaconCache.getOrStart
  • ShellStopExchangeImpl removes by UUID

Testing

  • Not run (requires local XPipe installation + JDK 25)

@crschnick
Copy link
Member

Thanks for the PR, I will look into it when I find some time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants