amondel2 opened a new pull request, #428: URL: https://github.com/apache/grails-intellij-plugin/pull/428
IntelliJ's cooperative cancellation depends on ProcessCanceledException propagating, but it is a RuntimeException — so the broad catch blocks guarding optional code paths were absorbing it, logging a cancelled read or resolve as a genuine failure and answering with a degraded result instead of unwinding. This adds ControlFlowGuard, which re-throws control-flow exceptions unchanged, including when one arrives wrapped in an InvocationTargetException from a reflective call, and applies it at the five sites that could otherwise swallow one: the Grails console (both the command-failure and normal-exit paths), the named-argument reference provider, and the application-provider scan. The same change hardens the two places where a partial failure was fatal rather than degradable — a single throwing applicationProvider extension no longer aborts Grails project detection for the whole project, since each provider is now isolated and the remaining ones are still tried, and the console's myExecuting release moved into a finally so a throw from its onDone callback can no longer leave the console permanently busy with every later command queued behind nothing. Both fixes are independent of the content-module architecture and are covered by 30 new tests. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
