Summary
SQL language injection for JdbcTemplate-like calls reads stale/outdated PSI, producing several related exceptions. ~22 events across 4 Sentry issues.
Where
SqlNativeSpringQueryLanguageInjector.isJdbcTemplateLike — SqlNativeSpringQueryLanguageInjector.kt:83 (:36)
SqlNativeSpringQueryLanguageInjector.isNotSqlString — SqlNativeSpringQueryLanguageInjector.kt:74
Exceptions seen
RuntimeExceptionWithAttachments: file text mismatch
Throwable: Stub index points to a file ...
Exception: Outdated stub in index ...
Throwable: psiElement is not instance of requiredClass
Sentry
Suggested direction (hypothesis)
Re-resolve against current PSI/stub inside a read action; avoid caching PSI across document changes; guard isJdbcTemplateLike / isNotSqlString against stale stub access.
Filed from Sentry (project 4 / spring-plugin), last 30 days. Auto-triaged.
Summary
SQL language injection for JdbcTemplate-like calls reads stale/outdated PSI, producing several related exceptions. ~22 events across 4 Sentry issues.
Where
SqlNativeSpringQueryLanguageInjector.isJdbcTemplateLike—SqlNativeSpringQueryLanguageInjector.kt:83(:36)SqlNativeSpringQueryLanguageInjector.isNotSqlString—SqlNativeSpringQueryLanguageInjector.kt:74Exceptions seen
RuntimeExceptionWithAttachments: file text mismatchThrowable: Stub index points to a file ...Exception: Outdated stub in index ...Throwable: psiElement is not instance of requiredClassSentry
Suggested direction (hypothesis)
Re-resolve against current PSI/stub inside a read action; avoid caching PSI across document changes; guard
isJdbcTemplateLike/isNotSqlStringagainst stale stub access.Filed from Sentry (project 4 / spring-plugin), last 30 days. Auto-triaged.