This is a good idea. Could you please run it by ASF legal just so we have all our bases covered?
> > On Nov 7, 2022, at 3:10 PM, David Capwell <dcapw...@apple.com> wrote: > > I was thinking that it would be good to add SpotBugs > (https://spotbugs.github.io) into our build to help find bugs earlier in the > life cycle. SpotBugs is LGPL but as it is used only in the build and not to > within this project, then this should be fine with Apache. > > The motivation for adding this was from CASSANDRA-17178; the Simulator has > issues with Serializable classes missing serialVersionUID (as we deal with > ClassLoaders; this field is strongly recommend in general for all > Serializable classes), but this project can add more value as there are a > large collection of potential bugs to look out for; below are a few examples > found. > > * Number.valueOf vs Number.parse<size>. In many parts of the code we do > valueOf which returns a boxed value; we then unbox for the usage; this adds > more garbage that isn’t needed > * Using Number.compareTo rather than primitive compare functions (causing > boxing) > * Ignoring return value for functions that don’t have a side effect. This > happens in a few cases where we are building a StringBuilder where we call > .toString but ignore the string… then call it later on > * use of putIfAbsent without looking at the return. This was found in > CacheService where we add the SSTable reader to the cache and assume we win > the race and start using it… rather than using the object that won the race