spring-projects / spring-projects/spring-tools
Warning when annotated methods are self-invocated from within its own class
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 983
- Forks
- 240
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 7
Description
Expected Behavior
Given the example
1 @Transactional
2 public void foo() {
3 ...
4 }
5
6 public void bar() {
7 this.foo();
8 }
when calling bar(), foo() will not be executed in a transaction, because AOP only works with calls from outside the class AFAIK. The same applies probably for other annotations like @Cacheable.
I would expect from my IDE to be warned or at least informed about this situation. So in the line 7 I would expect a marker.
Current Behavior
No hints at all. You need to know what is going on.
Context
The situation is simply error-prone for inexperienced devs. A simple info or warning marker could help resolving the risk.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests. Start by locating the IDE inspections for Java and Spring annotations, then trace how calls such as this.foo() are analyzed. Done means reliably identifying self-invocation of annotated methods, presenting an informational or warning marker at the call site, and covering the behavior with tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring
- Domain
- developer-experience, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100