[infinispan-dev] FindBugs on infinispan

Alan Field afield at redhat.com
Fri Mar 20 09:03:13 EDT 2015


I really like the idea of "forcing a trend of improvement"! :-) I agree with Radim that getting the improvement in the code is the hard part. Running static analysis tools on the files you are modifying is a great way to tackle the problem in a manageable fashion. Looking at all of the output across a project is daunting! I've also always thought source code formatting arguments were a waste of time, so I have always thought that the source code should be formatted by a tool when checked into the repo. That way individuals can apply whatever formatting they prefer in their IDEs, but the source code in the repo is stored in a specific way.

Thanks,
Alan

----- Original Message -----
> From: "Sanne Grinovero" <sanne at infinispan.org>
> To: "infinispan -Dev List" <infinispan-dev at lists.jboss.org>
> Sent: Friday, March 20, 2015 7:57:14 AM
> Subject: Re: [infinispan-dev] FindBugs on infinispan
> 
> Same for Eclipse. I run it occasionally, but only the modules I'm working on.
> If everyone could do the same, that helps ;-)
> 
> There is an option to get Maven to fail the build on specific
> selectable categories; I've played with that in the past but I had the
> impression that the annoyance level and maintenance overhead was a bit
> too high compared to the benefits.
> 
> With Jenkins you can plot graphs, to make sure you have a general
> trend of such problems to get lower over time.. and if I remember
> correctly there also should be a way to have it reject a PR if the
> threshold of code quality degradation is too high.
> We do the same for CheckStyle on Hibernate ORM: not forcing an
> absolute zero of violations (there's too much to fix!) but forcing a
> trend of improvement.
> 
> See: http://ci.hibernate.org/view/ORM/job/hibernate-orm-4.3-h2/
> 
> -- Sanne
> 
> On 20 March 2015 at 11:39, Pedro Ruivo <pedro at infinispan.org> wrote:
> > Hi,
> >
> > There is a findbugs pluging for IntelliJ.
> >
> > I run it against the classes I modified in the PR and solve the existing
> > problems and avoid creating new ones.
> >
> > Pedro
> >
> > On 03/19/2015 04:16 PM, Jakub Markos wrote:
> >> Hi,
> >>
> >> out of curiosity, I ran FindBugs [1] (java static analysis tool) on
> >> infinispan. Attached are 2 output files (compressed, because the mailing
> >> list accepts only <0.5MB attachments):
> >> 1. for the release-jars-analysis.html, only the 3 main jars from
> >> 7.2.0.Alpha1 were analyzed
> >> 2. for the project-jars-analysis.html, I took all jars that were present
> >> in the infinispan project directory after a build (except the test jars)
> >> - this one has therefore more findings
> >>
> >> In both cases, FindBugs complained that it couldn't find some imported
> >> classes, so the analysis may not be 100% complete.
> >>
> >> I didn't look through the actual results much, but for example it detected
> >> an infinite loop at [2], or a self-assignment at [3].
> >>
> >> If you want to run it yourself, you can use [4]. There is also a GUI, but
> >> I wasn't able to save the results into a html, and a maven
> >> plugin [5], but it only creates the results in an xml format for each
> >> module separately, so it's not very useful.
> >>
> >> Jakub
> >>
> >> [1] http://findbugs.sourceforge.net/
> >> [2]
> >> https://github.com/infinispan/infinispan/blob/841c789a866745b8d48475f98acd51fa74b16f13/core/src/main/java/org/infinispan/context/impl/ImmutableContext.java#L95
> >> [3]
> >> https://github.com/infinispan/infinispan/blob/841c789a866745b8d48475f98acd51fa74b16f13/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/impl/transport/tcp/TcpTransportFactory.java#L90
> >> [4] bin/findbugs -maxHeap 4000 -effort:max -textui -progress -release
> >> infinispan -html -output infinispan-findbugs-analysis -onlyAnalyze
> >> org.infinispan.-
> >> infinispan-7.2.0.Alpha1-all/infinispan-embedded-7.2.0.Alpha1.jar
> >> infinispan-7.2.0.Alpha1-all/infinispan-embedded-query-7.2.0.Alpha1.jar
> >> infinispan-7.2.0.Alpha1-all/infinispan-remote-7.2.0.Alpha1.jar
> >> [5] http://mojo.codehaus.org/findbugs-maven-plugin/
> >>
> >>
> >>
> >> _______________________________________________
> >> infinispan-dev mailing list
> >> infinispan-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> >>
> > _______________________________________________
> > infinispan-dev mailing list
> > infinispan-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 


More information about the infinispan-dev mailing list