Add 'VNA04-J. Ensure that calls to chained methods are atomic' detector with test cases #2986
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Method chaining allows multiple method calls on the same object in a single statement by having methods return the this reference. This lets the next method call be made on the return value of the previous one. While individual methods can be atomic, the chain itself is not. Therefore, callers must ensure proper locking to guarantee the entire chain of invocations is atomic, as relying on independently atomic methods is not sufficient.
See https://wiki.sei.cmu.edu/confluence/display/java/VNA04-J.+Ensure+that+calls+to+chained+methods+are+atomic