Got so excited that I forgot to say which of the two options exactly  I
meant - running the analysis only on changed files after the initial full
pass is done sounds like a good improvement to me

On Fri, 16 Jun 2023 at 7:43, Ekaterina Dimitrova <e.dimitr...@gmail.com>
wrote:

> I think this is a great idea and it will probably reduce the time to run
> it. Thank you!
>
> On Fri, 16 Jun 2023 at 7:40, Jacek Lewandowski <
> lewandowski.ja...@gmail.com> wrote:
>
>> Additional question is whether we want to run the checks against the
>> whole project or just against the file changes between the feature branch
>> and the target release branch?
>>
>>
>> - - -- --- ----- -------- -------------
>> Jacek Lewandowski
>>
>>
>> pt., 16 cze 2023 o 13:09 Aleksey Yeshchenko <alek...@apple.com>
>> napisał(a):
>>
>>> Sounds like a clear improvement to me. Only once this check flagged a
>>> legitimate issue I missed, if I’m remembering correctly. All other
>>> instances have just been annoyances, forcing to add a redundant suppressed
>>> annotation.
>>>
>>> On 15 Jun 2023, at 19:01, Ekaterina Dimitrova <e.dimitr...@gmail.com>
>>> wrote:
>>>
>>> Hi everyone,
>>> Happy Thursday!
>>> Some time ago, Jacek raised the point that ant eclipse-warnings is 
>>> generating too many false positives and not really working as expected. 
>>> (CASSANDRA-18239)
>>>
>>> Reminder: ant eclipse-warnings is a task we run with the goal to check 
>>> Cassandra code - static analysis to warn on unsafe use of Autocloseable 
>>> instances; checks against two related particular compiler options
>>>
>>> While trying to upgrade ECJ compiler that we use for this task 
>>> (CASSANDRA-18190) so we can switch the task from running it with JDK8 to 
>>> JDK11 in preparation for dropping JDK8, I hit the following issues:
>>> - the latest version of ECJ is throwing more than 300 Potential Resource 
>>> Leak warnings. I looked at 10-15, and they were all false positives.
>>> - Even if we file a bug report to the Eclipse community, JDK11 is about to 
>>> be removed with the next version of the compiler
>>>
>>> So I shared this information with Jacek. He came up with a different 
>>> solution:
>>> It seems we already pull through Guava CheckerFramework with an MIT 
>>> license, which appears to be acceptable according to this link -  
>>> https://www.apache.org/legal/resolved.html#category-a
>>> He already has an initial integration with Cassandra which shows the 
>>> following:
>>> - CheckerFramework does not understand the @SuppressWarnings("resource") 
>>> (there is a different one to be used), so it is immediately visible how it 
>>> does not report all those false positives that eclipse-warnings does. On 
>>> the flip side, I got the feedback that what it has witnessed so far is 
>>> something we should investigate.
>>> - Also, there are additional annotations like @Owning that let you fix many 
>>> problems at once because the tool understands that the ownership of the 
>>> resources was passed to another entity; It also enables you to do something 
>>> impossible with eclipse-warnings - you can tell the tool that there is 
>>> another method that needs to be called to release the resources, like 
>>> release, free, disconnect, etc.
>>> - the tool works with JDK8, JDK11, JDK17, and JDK20, so we can backport it 
>>> even to older branches (while at the same time keeping eclipse-warnings 
>>> there)
>>> - though it runs 8 minutes so, we should not run it with every test, some 
>>> reorganization around ant tasks will be covered as even for 
>>> eclipse-warnings it was weird to call it on every single test run locally 
>>> by default
>>>
>>>
>>> If there are no concerns, we will continue replacing ant eclipse-warnings 
>>> with the CheckerFramework as part of CASSANDRA-18239 and CASSANDRA-18190 in 
>>> trunk.
>>>
>>> Best regards,
>>>
>>> Ekaterina
>>>
>>>
>>>

Reply via email to