Pascal Schumacher
2015-02-22 13:24:27 UTC
Hi all,
I added findbugs to the groovy build and the generated report contains
some warnings that seem worth looking at, e.g.:
* Sequence of calls to java.util.concurrent.ConcurrentHashMap may not
be atomic in
org.codehaus.groovy.runtime.ConversionHandler.invoke(Object, Method,
Object[])
* Inconsistent synchronization of
org.codehaus.groovy.runtime.metaclass.ConcurrentReaderHashMap.table;
locked 69% of time
* Inconsistent synchronization of
org.codehaus.groovy.runtime.metaclass.ThreadManagedMetaBeanProperty.initialValueCreator;
locked 66% of time
* Inconsistent synchronization of
org.codehaus.groovy.transform.tailrec.VariableExpressionReplacer.transformer;
locked 50% of time
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.classMetaClass in
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.resetCachedMetaClasses()
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.instanceExclude
in
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getInstance(int)
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.instanceInclude
in
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getInstance(int)
* groovy.lang.ExpandoMetaClass.performOperationOnMetaClass(ExpandoMetaClass$Callable)
does not release lock on all exception paths
Maybe these are false positives, but it would be nice if somebody more
knowledgeable could take a look.
The full report with much more details (line numbers, etc.) can be
created by running "gradlew findbugsMain".
Regards,
Pascal
I added findbugs to the groovy build and the generated report contains
some warnings that seem worth looking at, e.g.:
* Sequence of calls to java.util.concurrent.ConcurrentHashMap may not
be atomic in
org.codehaus.groovy.runtime.ConversionHandler.invoke(Object, Method,
Object[])
* Inconsistent synchronization of
org.codehaus.groovy.runtime.metaclass.ConcurrentReaderHashMap.table;
locked 69% of time
* Inconsistent synchronization of
org.codehaus.groovy.runtime.metaclass.ThreadManagedMetaBeanProperty.initialValueCreator;
locked 66% of time
* Inconsistent synchronization of
org.codehaus.groovy.transform.tailrec.VariableExpressionReplacer.transformer;
locked 50% of time
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.classMetaClass in
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.resetCachedMetaClasses()
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.instanceExclude
in
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getInstance(int)
* Incorrect lazy initialization of static field
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.instanceInclude
in
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getInstance(int)
* groovy.lang.ExpandoMetaClass.performOperationOnMetaClass(ExpandoMetaClass$Callable)
does not release lock on all exception paths
Maybe these are false positives, but it would be nice if somebody more
knowledgeable could take a look.
The full report with much more details (line numbers, etc.) can be
created by running "gradlew findbugsMain".
Regards,
Pascal