[ 
https://issues.apache.org/jira/browse/CASSANDRA-18239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17728018#comment-17728018
 ] 

Ekaterina Dimitrova commented on CASSANDRA-18239:
-------------------------------------------------

{quote}some draft for using error-prone in the build
{quote}
That looks good, but unfortunately, to take advantage of the pattern we are 
interested in to replace eclipse-warnings, we need to start adding 
@MustBeClosed for the methods that produce resources that must be closed.

I suspect this will regress quickly as we will be human-dependent; people will 
start forgetting to use the annotation. 

So to summarize:
 * SpotBugs is not ready for newer JDK versions
 * ErrorProne would involve manual work, and it will be human dependent
 * sonar was mentioned not to be an option for direct replacement of eclipse 
warnings

With that said, I should go back to CASSANDRA-18190 and review all the 100+ new 
warnings we have with eclipse-warnings after upgrading it for newer JDK 
versions...

> Replace eclipse warnings based static code analysis with something better 
> (Sonar)
> ---------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-18239
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18239
>             Project: Cassandra
>          Issue Type: Task
>          Components: Build
>            Reporter: Jacek Lewandowski
>            Priority: Normal
>
> Eclipse warnings is used for static code analysis. However, it does not fit 
> well into Cassandra code and practically we end up explicitly adding 
> suppressions in many places just to satisfy that tool rather than fix the 
> real issues.
> This is an incomplete list of reasons to remove it:
> - not closed resources are detected incorrectly
> - does not recognize custom utility methods used to close the resources, 
> which use use heavily in the code, like {{Throwables.close}}, 
> {{FileUtils.close}}, {{closeQuietly}}...
> - because of the above, we cannot make important things like {{Ref}} to 
> implement {{Closeable}} as it would make the tool to explode with tons of 
> warnings
> - it complains about correct generics - something like "method X is not 
> applicable for ..." when the code compiles successfully is not acceptable
> - it is old and not maintained
> There are better tools like IntelliJ inspections for example, which can also 
> be run in headless mode



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to