Skip to content

Content of file spotbugsXml.xml

<?xml version="1.0" encoding="utf-8"?>
<BugCollection sequence='0' release='' analysisTimestamp='1683004670693' version='4.7.3' timestamp='1683003481978'><Project projectName='TheseFoolishThings :: Utilities'><Jar>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace/modules/Utilities/target/classes</Jar><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/org/slf4j/slf4j-api/2.0.7/slf4j-api-2.0.7.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/javax/inject/javax.inject/1/javax.inject-1.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/jakarta/inject/jakarta.inject-api/2.0.0/jakarta.inject-api-2.0.0.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/com/github/spotbugs/spotbugs-annotations/3.1.9/spotbugs-annotations-3.1.9.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace@tmp/repository/org/projectlombok/lombok/1.18.24/lombok-1.18.24.jar</AuxClasspathEntry><SrcDir>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace/modules/Utilities/src/main/java</SrcDir><WrkDir>/var/jenkins_home/jobs/TheseFoolishThings_Metrics/workspace/modules/Utilities/target</WrkDir></Project><BugInstance instanceOccurrenceNum='0' instanceHash='5d870cc1b5cd713568d6636ef559aae2' rank='20' abbrev='MC' category='MALICIOUS_CODE' priority='3' type='MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR' instanceOccurrenceMax='0'><ShortMessage>An overridable method is called from a constructor</ShortMessage><LongMessage>Overridable method createRoleFactory is called from constructor new it.tidalwave.role.impl.AsDelegate().</LongMessage><Class classname='it.tidalwave.role.impl.AsDelegate' primary='true'><SourceLine classname='it.tidalwave.role.impl.AsDelegate' start='60' end='209' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java'><Message>At AsDelegate.java:[lines 60-209]</Message></SourceLine><Message>In class it.tidalwave.role.impl.AsDelegate</Message></Class><Method isStatic='false' classname='it.tidalwave.role.impl.AsDelegate' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='91' classname='it.tidalwave.role.impl.AsDelegate' start='69' end='72' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.role.impl.AsDelegate()</Message></Method><String value='createRoleFactory'><Message>Value createRoleFactory</Message></String><SourceLine endBytecode='22' classname='it.tidalwave.role.impl.AsDelegate' start='71' end='71' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java' startBytecode='22' primary='true'><Message>At AsDelegate.java:[line 71]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='f6f3cc9c2a6211efe0f77ce30776fb4d' rank='20' abbrev='MC' category='MALICIOUS_CODE' priority='3' type='MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR' instanceOccurrenceMax='0'><ShortMessage>An overridable method is called from a constructor</ShortMessage><LongMessage>Overridable method createRoleFactory is called from constructor new it.tidalwave.role.impl.AsDelegate(Object, Collection).</LongMessage><Class classname='it.tidalwave.role.impl.AsDelegate' primary='true'><SourceLine classname='it.tidalwave.role.impl.AsDelegate' start='60' end='209' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java'><Message>At AsDelegate.java:[lines 60-209]</Message></SourceLine><Message>In class it.tidalwave.role.impl.AsDelegate</Message></Class><Method isStatic='false' classname='it.tidalwave.role.impl.AsDelegate' signature='(Ljava/lang/Object;Ljava/util/Collection;)V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='95' classname='it.tidalwave.role.impl.AsDelegate' start='114' end='115' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.role.impl.AsDelegate(Object, Collection)</Message></Method><String value='createRoleFactory'><Message>Value createRoleFactory</Message></String><SourceLine endBytecode='1' classname='it.tidalwave.role.impl.AsDelegate' start='114' end='114' sourcepath='it/tidalwave/role/impl/AsDelegate.java' sourcefile='AsDelegate.java' startBytecode='1' primary='true'><Message>At AsDelegate.java:[line 114]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='b2c3aa96765d6f3081cf9ed54dee449c' rank='20' abbrev='SIC' category='PERFORMANCE' priority='3' type='SIC_INNER_SHOULD_BE_STATIC_ANON' instanceOccurrenceMax='0'><ShortMessage>Could be refactored into a named static inner class</ShortMessage><LongMessage>The class it.tidalwave.role.impl.DefaultContextManager$1 could be refactored into a named _static_ inner class</LongMessage><Class role='CLASS_ANONYMOUS' classname='it.tidalwave.role.impl.DefaultContextManager$1'><SourceLine classname='it.tidalwave.role.impl.DefaultContextManager$1' start='57' end='61' sourcepath='it/tidalwave/role/impl/DefaultContextManager.java' sourcefile='DefaultContextManager.java'><Message>At DefaultContextManager.java:[lines 57-61]</Message></SourceLine><Message>Anonymous class it.tidalwave.role.impl.DefaultContextManager$1</Message></Class><Class classname='it.tidalwave.role.impl.DefaultContextManager' primary='true'><SourceLine classname='it.tidalwave.role.impl.DefaultContextManager' start='45' end='183' sourcepath='it/tidalwave/role/impl/DefaultContextManager.java' sourcefile='DefaultContextManager.java'><Message>At DefaultContextManager.java:[lines 45-183]</Message></SourceLine><Message>In class it.tidalwave.role.impl.DefaultContextManager</Message></Class><Method isStatic='false' classname='it.tidalwave.role.impl.DefaultContextManager' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='170' classname='it.tidalwave.role.impl.DefaultContextManager' start='71' end='83' sourcepath='it/tidalwave/role/impl/DefaultContextManager.java' sourcefile='DefaultContextManager.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.role.impl.DefaultContextManager()</Message></Method><SourceLine endBytecode='24' classname='it.tidalwave.role.impl.DefaultContextManager' start='56' end='56' sourcepath='it/tidalwave/role/impl/DefaultContextManager.java' sourcefile='DefaultContextManager.java' startBytecode='24' primary='true'><Message>At DefaultContextManager.java:[line 56]</Message></SourceLine><Field isStatic='false' classname='it.tidalwave.role.impl.DefaultContextManager' signature='Ljava/lang/ThreadLocal;' name='localContexts' primary='true'><SourceLine classname='it.tidalwave.role.impl.DefaultContextManager' sourcepath='it/tidalwave/role/impl/DefaultContextManager.java' sourcefile='DefaultContextManager.java'><Message>In DefaultContextManager.java</Message></SourceLine><Message>Field it.tidalwave.role.impl.DefaultContextManager.localContexts</Message></Field></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='1808ed7b2ded2037f426d6180915ab8d' rank='20' abbrev='FS' category='BAD_PRACTICE' priority='2' type='VA_FORMAT_STRING_USES_NEWLINE' instanceOccurrenceMax='0'><ShortMessage>Format string should use %n rather than \n</ShortMessage><LongMessage>Format string should use %n rather than \n in it.tidalwave.role.impl.ServiceLoaderLocator.findService(Class)</LongMessage><Class classname='it.tidalwave.role.impl.ServiceLoaderLocator' primary='true'><SourceLine classname='it.tidalwave.role.impl.ServiceLoaderLocator' start='47' end='110' sourcepath='it/tidalwave/role/impl/ServiceLoaderLocator.java' sourcefile='ServiceLoaderLocator.java'><Message>At ServiceLoaderLocator.java:[lines 47-110]</Message></SourceLine><Message>In class it.tidalwave.role.impl.ServiceLoaderLocator</Message></Class><Method isStatic='true' classname='it.tidalwave.role.impl.ServiceLoaderLocator' signature='(Ljava/lang/Class;)Ljava/lang/Object;' name='findService' primary='true'><SourceLine endBytecode='496' classname='it.tidalwave.role.impl.ServiceLoaderLocator' start='62' end='98' sourcepath='it/tidalwave/role/impl/ServiceLoaderLocator.java' sourcefile='ServiceLoaderLocator.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.role.impl.ServiceLoaderLocator.findService(Class)</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.io.PrintStream' signature='(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;' name='printf'><SourceLine endBytecode='68' classname='java.io.PrintStream' start='949' end='949' sourcepath='java/io/PrintStream.java' sourcefile='PrintStream.java' startBytecode='0'></SourceLine><Message>Called method java.io.PrintStream.printf(String, Object[])</Message></Method><String role='STRING_FORMAT_STRING' value='%s instantiated from META-INF/services: %s\n'><Message>Format string "%s instantiated from META-INF/services: %s\n"</Message></String><SourceLine endBytecode='212' classname='it.tidalwave.role.impl.ServiceLoaderLocator' start='95' end='95' sourcepath='it/tidalwave/role/impl/ServiceLoaderLocator.java' sourcefile='ServiceLoaderLocator.java' startBytecode='212' primary='true'><Message>At ServiceLoaderLocator.java:[line 95]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='77d808d30e81a0e03d34e00d01193a5b' rank='20' abbrev='DP' category='MALICIOUS_CODE' priority='3' type='DP_DO_INSIDE_DO_PRIVILEGED' instanceOccurrenceMax='0'><ShortMessage>Method invoked that should be only be invoked inside a doPrivileged block</ShortMessage><LongMessage>Invocation of reflect.Field.setAccessible(boolean), which should be invoked from within a doPrivileged block, in it.tidalwave.util.ReflectionUtils.injectDependencies(Object, Map)</LongMessage><Class classname='it.tidalwave.util.ReflectionUtils' primary='true'><SourceLine classname='it.tidalwave.util.ReflectionUtils' start='55' end='233' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java'><Message>At ReflectionUtils.java:[lines 55-233]</Message></SourceLine><Message>In class it.tidalwave.util.ReflectionUtils</Message></Class><Method isStatic='true' classname='it.tidalwave.util.ReflectionUtils' signature='(Ljava/lang/Object;Ljava/util/Map;)V' name='injectDependencies' primary='true'><SourceLine endBytecode='351' classname='it.tidalwave.util.ReflectionUtils' start='174' end='198' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.ReflectionUtils.injectDependencies(Object, Map)</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.lang.reflect.Field' signature='(Z)V' name='setAccessible'><SourceLine endBytecode='93' classname='java.lang.reflect.Field' start='169' end='172' sourcepath='java/lang/reflect/Field.java' sourcefile='Field.java' startBytecode='0'></SourceLine><Message>Called method reflect.Field.setAccessible(boolean)</Message></Method><SourceLine endBytecode='49' classname='it.tidalwave.util.ReflectionUtils' start='179' end='179' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java' startBytecode='49' primary='true'><Message>At ReflectionUtils.java:[line 179]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='10b6c30d77fba5e675929d6fadf1a5d' cweid='476' rank='13' abbrev='NP' category='STYLE' priority='2' type='NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE' instanceOccurrenceMax='0'><ShortMessage>Possible null pointer dereference due to return value of called method</ShortMessage><LongMessage>Possible null pointer dereference in it.tidalwave.util.ReflectionUtils.getTypeArguments(Class, Class) due to return value of called method</LongMessage><Class classname='it.tidalwave.util.ReflectionUtils' primary='true'><SourceLine classname='it.tidalwave.util.ReflectionUtils' start='55' end='233' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java'><Message>At ReflectionUtils.java:[lines 55-233]</Message></SourceLine><Message>In class it.tidalwave.util.ReflectionUtils</Message></Class><Method isStatic='true' classname='it.tidalwave.util.ReflectionUtils' signature='(Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;' name='getTypeArguments' primary='true'><SourceLine endBytecode='704' classname='it.tidalwave.util.ReflectionUtils' start='72' end='128' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.ReflectionUtils.getTypeArguments(Class, Class)</Message></Method><LocalVariable role='LOCAL_VARIABLE_UNKNOWN' pc='15' name='?' register='-1'><Message>Local variable stored in JVM register ?</Message></LocalVariable><SourceLine role='SOURCE_LINE_DEREF' endBytecode='15' classname='it.tidalwave.util.ReflectionUtils' start='76' end='76' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java' startBytecode='15' primary='true'><Message>Dereferenced at ReflectionUtils.java:[line 76]</Message></SourceLine><SourceLine role='SOURCE_LINE_KNOWN_NULL' endBytecode='11' classname='it.tidalwave.util.ReflectionUtils' start='76' end='76' sourcepath='it/tidalwave/util/ReflectionUtils.java' sourcefile='ReflectionUtils.java' startBytecode='11'><Message>Known null at ReflectionUtils.java:[line 76]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='7be4ca9057d0e00346e79a3f88d4648d' cweid='396' rank='17' abbrev='REC' category='STYLE' priority='2' type='REC_CATCH_EXCEPTION' instanceOccurrenceMax='0'><ShortMessage>Exception is caught when Exception is not thrown</ShortMessage><LongMessage>Exception is caught when Exception is not thrown in it.tidalwave.util.ShortNames.shortId(Object)</LongMessage><Class classname='it.tidalwave.util.ShortNames' primary='true'><SourceLine classname='it.tidalwave.util.ShortNames' start='44' end='197' sourcepath='it/tidalwave/util/ShortNames.java' sourcefile='ShortNames.java'><Message>At ShortNames.java:[lines 44-197]</Message></SourceLine><Message>In class it.tidalwave.util.ShortNames</Message></Class><Method isStatic='true' classname='it.tidalwave.util.ShortNames' signature='(Ljava/lang/Object;)Ljava/lang/String;' name='shortId' primary='true'><SourceLine endBytecode='271' classname='it.tidalwave.util.ShortNames' start='142' end='160' sourcepath='it/tidalwave/util/ShortNames.java' sourcefile='ShortNames.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.ShortNames.shortId(Object)</Message></Method><SourceLine endBytecode='97' classname='it.tidalwave.util.ShortNames' start='155' end='155' sourcepath='it/tidalwave/util/ShortNames.java' sourcefile='ShortNames.java' startBytecode='97' primary='true'><Message>At ShortNames.java:[line 155]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='7fca9fcbc49ac7127f3739fd533f3aa4' cweid='440' rank='14' abbrev='DMI' category='BAD_PRACTICE' priority='1' type='DMI_RANDOM_USED_ONLY_ONCE' instanceOccurrenceMax='0'><ShortMessage>Random object created and used only once</ShortMessage><LongMessage>Random object created and used only once in it.tidalwave.util.StreamUtils.randomLocalDateTimeStream(long, LocalDateTime, LocalDateTime)</LongMessage><Class classname='it.tidalwave.util.StreamUtils' primary='true'><SourceLine classname='it.tidalwave.util.StreamUtils' start='53' end='142' sourcepath='it/tidalwave/util/StreamUtils.java' sourcefile='StreamUtils.java'><Message>At StreamUtils.java:[lines 53-142]</Message></SourceLine><Message>In class it.tidalwave.util.StreamUtils</Message></Class><Method isStatic='true' classname='it.tidalwave.util.StreamUtils' signature='(JLjava/time/LocalDateTime;Ljava/time/LocalDateTime;)Ljava/util/stream/Stream;' name='randomLocalDateTimeStream' primary='true'><SourceLine endBytecode='128' classname='it.tidalwave.util.StreamUtils' start='139' end='140' sourcepath='it/tidalwave/util/StreamUtils.java' sourcefile='StreamUtils.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.StreamUtils.randomLocalDateTimeStream(long, LocalDateTime, LocalDateTime)</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.util.Random' signature='(JJ)Ljava/util/stream/LongStream;' name='longs'><SourceLine endBytecode='121' classname='java.util.Random' start='863' end='865' sourcepath='java/util/Random.java' sourcefile='Random.java' startBytecode='0'></SourceLine><Message>Called method java.util.Random.longs(long, long)</Message></Method><SourceLine endBytecode='25' classname='it.tidalwave.util.StreamUtils' start='141' end='141' sourcepath='it/tidalwave/util/StreamUtils.java' sourcefile='StreamUtils.java' startBytecode='25' primary='true'><Message>At StreamUtils.java:[line 141]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='63bc3860945c376aeb5dd62f353873c6' rank='20' abbrev='Dm' category='I18N' priority='3' type='DM_CONVERT_CASE' instanceOccurrenceMax='0'><ShortMessage>Consider using Locale parameterized version of invoked method</ShortMessage><LongMessage>Use of non-localized String.toUpperCase() or String.toLowerCase() in new it.tidalwave.util.impl.DefaultPreferencesHandler()</LongMessage><Class classname='it.tidalwave.util.impl.DefaultPreferencesHandler' primary='true'><SourceLine classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='48' end='125' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java'><Message>At DefaultPreferencesHandler.java:[lines 48-125]</Message></SourceLine><Message>In class it.tidalwave.util.impl.DefaultPreferencesHandler</Message></Class><Method isStatic='false' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='573' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='61' end='103' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.util.impl.DefaultPreferencesHandler()</Message></Method><SourceLine endBytecode='34' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='67' end='67' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='34' primary='true'><Message>At DefaultPreferencesHandler.java:[line 67]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='b0fae63d5097a179c790dd83f24c81c1' rank='20' abbrev='FS' category='BAD_PRACTICE' priority='2' type='VA_FORMAT_STRING_USES_NEWLINE' instanceOccurrenceMax='0'><ShortMessage>Format string should use %n rather than \n</ShortMessage><LongMessage>Format string should use %n rather than \n in new it.tidalwave.util.impl.DefaultPreferencesHandler()</LongMessage><Class classname='it.tidalwave.util.impl.DefaultPreferencesHandler' primary='true'><SourceLine classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='48' end='125' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java'><Message>At DefaultPreferencesHandler.java:[lines 48-125]</Message></SourceLine><Message>In class it.tidalwave.util.impl.DefaultPreferencesHandler</Message></Class><Method isStatic='false' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='573' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='61' end='103' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.util.impl.DefaultPreferencesHandler()</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.io.PrintStream' signature='(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;' name='printf'><SourceLine endBytecode='68' classname='java.io.PrintStream' start='949' end='949' sourcepath='java/io/PrintStream.java' sourcefile='PrintStream.java' startBytecode='0'></SourceLine><Message>Called method java.io.PrintStream.printf(String, Object[])</Message></Method><String role='STRING_FORMAT_STRING' value='App folder: %s\n'><Message>Format string "App folder: %s\n"</Message></String><SourceLine endBytecode='291' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='95' end='95' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='291' primary='true'><Message>At DefaultPreferencesHandler.java:[line 95]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='4a8025d870b311a2d7060fd305f32c1d' rank='20' abbrev='FS' category='BAD_PRACTICE' priority='2' type='VA_FORMAT_STRING_USES_NEWLINE' instanceOccurrenceMax='0'><ShortMessage>Format string should use %n rather than \n</ShortMessage><LongMessage>Format string should use %n rather than \n in new it.tidalwave.util.impl.DefaultPreferencesHandler()</LongMessage><Class classname='it.tidalwave.util.impl.DefaultPreferencesHandler' primary='true'><SourceLine classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='48' end='125' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java'><Message>At DefaultPreferencesHandler.java:[lines 48-125]</Message></SourceLine><Message>In class it.tidalwave.util.impl.DefaultPreferencesHandler</Message></Class><Method isStatic='false' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='573' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='61' end='103' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.util.impl.DefaultPreferencesHandler()</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.io.PrintStream' signature='(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;' name='printf'><SourceLine endBytecode='68' classname='java.io.PrintStream' start='949' end='949' sourcepath='java/io/PrintStream.java' sourcefile='PrintStream.java' startBytecode='0'></SourceLine><Message>Called method java.io.PrintStream.printf(String, Object[])</Message></Method><String role='STRING_FORMAT_STRING' value='Logging folder: %s\n'><Message>Format string "Logging folder: %s\n"</Message></String><SourceLine endBytecode='311' classname='it.tidalwave.util.impl.DefaultPreferencesHandler' start='96' end='96' sourcepath='it/tidalwave/util/impl/DefaultPreferencesHandler.java' sourcefile='DefaultPreferencesHandler.java' startBytecode='311' primary='true'><Message>At DefaultPreferencesHandler.java:[line 96]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='fa2ffc2350e5e3e7dc76ba596541a746' rank='16' abbrev='Se' category='BAD_PRACTICE' priority='2' type='SE_TRANSIENT_FIELD_NOT_RESTORED' instanceOccurrenceMax='0'><ShortMessage>Transient field that isn't set by deserialization.</ShortMessage><LongMessage>The field it.tidalwave.util.impl.finder.MappingFinder.delegate is transient but isn't set by deserialization</LongMessage><Class classname='it.tidalwave.util.impl.finder.MappingFinder' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.MappingFinder' start='57' end='73' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>At MappingFinder.java:[lines 57-73]</Message></SourceLine><Message>In class it.tidalwave.util.impl.finder.MappingFinder</Message></Class><Field isStatic='false' classname='it.tidalwave.util.impl.finder.MappingFinder' signature='Lit/tidalwave/util/Finder;' name='delegate' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.MappingFinder' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>In MappingFinder.java</Message></SourceLine><Message>Field it.tidalwave.util.impl.finder.MappingFinder.delegate</Message></Field><SourceLine synthetic='true' classname='it.tidalwave.util.impl.finder.MappingFinder' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>In MappingFinder.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='2ee9b4e52312d8a5f7e746397b358738' rank='19' abbrev='Se' category='BAD_PRACTICE' priority='3' type='SE_TRANSIENT_FIELD_NOT_RESTORED' instanceOccurrenceMax='0'><ShortMessage>Transient field that isn't set by deserialization.</ShortMessage><LongMessage>The field it.tidalwave.util.impl.finder.MappingFinder.decorator is transient but isn't set by deserialization</LongMessage><Class classname='it.tidalwave.util.impl.finder.MappingFinder' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.MappingFinder' start='57' end='73' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>At MappingFinder.java:[lines 57-73]</Message></SourceLine><Message>In class it.tidalwave.util.impl.finder.MappingFinder</Message></Class><Field isStatic='false' classname='it.tidalwave.util.impl.finder.MappingFinder' signature='Ljava/util/function/Function;' name='decorator' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.MappingFinder' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>In MappingFinder.java</Message></SourceLine><Message>Field it.tidalwave.util.impl.finder.MappingFinder.decorator</Message></Field><SourceLine synthetic='true' classname='it.tidalwave.util.impl.finder.MappingFinder' sourcepath='it/tidalwave/util/impl/finder/MappingFinder.java' sourcefile='MappingFinder.java'><Message>In MappingFinder.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='78620ceffac5909bda9cff745c7c2707' rank='16' abbrev='Se' category='BAD_PRACTICE' priority='2' type='SE_BAD_FIELD' instanceOccurrenceMax='0'><ShortMessage>Non-transient non-serializable instance field in serializable class</ShortMessage><LongMessage>Class it.tidalwave.util.impl.finder.ProviderFinder defines non-transient non-serializable instance field supplier</LongMessage><Class classname='it.tidalwave.util.impl.finder.ProviderFinder' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.ProviderFinder' start='56' end='70' sourcepath='it/tidalwave/util/impl/finder/ProviderFinder.java' sourcefile='ProviderFinder.java'><Message>At ProviderFinder.java:[lines 56-70]</Message></SourceLine><Message>In class it.tidalwave.util.impl.finder.ProviderFinder</Message></Class><Field isStatic='false' classname='it.tidalwave.util.impl.finder.ProviderFinder' signature='Ljava/util/function/BiFunction;' name='supplier' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.ProviderFinder' sourcepath='it/tidalwave/util/impl/finder/ProviderFinder.java' sourcefile='ProviderFinder.java'><Message>In ProviderFinder.java</Message></SourceLine><Message>Field it.tidalwave.util.impl.finder.ProviderFinder.supplier</Message></Field><Type role='TYPE_FOUND' descriptor='Ljava/util/function/BiFunction;' typeParameters='&lt;java.lang.Integer,java.lang.Integer,? extends java.util.Collection&lt;? extends T&gt;&gt;'><SourceLine classname='java.util.function.BiFunction' start='69' end='70' sourcepath='java/util/function/BiFunction.java' sourcefile='BiFunction.java'><Message>At BiFunction.java:[lines 69-70]</Message></SourceLine><Message>Actual type java.util.function.BiFunction&lt;java.lang.Integer,java.lang.Integer,? extends java.util.Collection&lt;? extends T&gt;&gt;</Message></Type><SourceLine synthetic='true' classname='it.tidalwave.util.impl.finder.ProviderFinder' sourcepath='it/tidalwave/util/impl/finder/ProviderFinder.java' sourcefile='ProviderFinder.java'><Message>In ProviderFinder.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='d7ee15815c14bcc4a339b6f44da62359' rank='16' abbrev='Se' category='BAD_PRACTICE' priority='2' type='SE_BAD_FIELD' instanceOccurrenceMax='0'><ShortMessage>Non-transient non-serializable instance field in serializable class</ShortMessage><LongMessage>Class it.tidalwave.util.impl.finder.SupplierFinder defines non-transient non-serializable instance field supplier</LongMessage><Class classname='it.tidalwave.util.impl.finder.SupplierFinder' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.SupplierFinder' start='54' end='68' sourcepath='it/tidalwave/util/impl/finder/SupplierFinder.java' sourcefile='SupplierFinder.java'><Message>At SupplierFinder.java:[lines 54-68]</Message></SourceLine><Message>In class it.tidalwave.util.impl.finder.SupplierFinder</Message></Class><Field isStatic='false' classname='it.tidalwave.util.impl.finder.SupplierFinder' signature='Ljava/util/function/Supplier;' name='supplier' primary='true'><SourceLine classname='it.tidalwave.util.impl.finder.SupplierFinder' sourcepath='it/tidalwave/util/impl/finder/SupplierFinder.java' sourcefile='SupplierFinder.java'><Message>In SupplierFinder.java</Message></SourceLine><Message>Field it.tidalwave.util.impl.finder.SupplierFinder.supplier</Message></Field><Type role='TYPE_FOUND' descriptor='Ljava/util/function/Supplier;' typeParameters='&lt;? extends java.util.Collection&lt;? extends T&gt;&gt;'><SourceLine classname='java.util.function.Supplier' sourcepath='java/util/function/Supplier.java' sourcefile='Supplier.java'><Message>In Supplier.java</Message></SourceLine><Message>Actual type java.util.function.Supplier&lt;? extends java.util.Collection&lt;? extends T&gt;&gt;</Message></Type><SourceLine synthetic='true' classname='it.tidalwave.util.impl.finder.SupplierFinder' sourcepath='it/tidalwave/util/impl/finder/SupplierFinder.java' sourcefile='SupplierFinder.java'><Message>In SupplierFinder.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='22a61a349131452fc20a230179a88cee' rank='20' abbrev='Dm' category='I18N' priority='3' type='DM_CONVERT_CASE' instanceOccurrenceMax='0'><ShortMessage>Consider using Locale parameterized version of invoked method</ShortMessage><LongMessage>Use of non-localized String.toUpperCase() or String.toLowerCase() in it.tidalwave.util.spi.DefaultProcessExecutor.isWindows()</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='60' end='483' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 60-483]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor</Message></Class><Method isStatic='true' classname='it.tidalwave.util.spi.DefaultProcessExecutor' signature='()Z' name='isWindows' primary='true'><SourceLine endBytecode='37' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='483' end='483' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor.isWindows()</Message></Method><SourceLine endBytecode='5' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='483' end='483' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='5' primary='true'><Message>At DefaultProcessExecutor.java:[line 483]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='546fcec2f3fc51e896f3a93765e3b9a9' rank='19' abbrev='Dm' category='I18N' priority='1' type='DM_DEFAULT_ENCODING' instanceOccurrenceMax='0'><ShortMessage>Reliance on default encoding</ShortMessage><LongMessage>Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor.start(): new java.io.PrintWriter(OutputStream, boolean)</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='60' end='483' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 60-483]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor' signature='()Lit/tidalwave/util/spi/DefaultProcessExecutor;' name='start' primary='true'><SourceLine endBytecode='368' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='413' end='430' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor.start()</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.io.PrintWriter' signature='(Ljava/io/OutputStream;Z)V' name='&lt;init&gt;'><SourceLine endBytecode='75' classname='java.io.PrintWriter' start='145' end='146' sourcepath='java/io/PrintWriter.java' sourcefile='PrintWriter.java' startBytecode='0'></SourceLine><Message>Called method new java.io.PrintWriter(OutputStream, boolean)</Message></Method><SourceLine endBytecode='203' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='428' end='428' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='203' primary='true'><Message>At DefaultProcessExecutor.java:[line 428]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='cf72bf19c353afd0d889c0f512a33b98' rank='20' abbrev='UCF' category='STYLE' priority='3' type='UCF_USELESS_CONTROL_FLOW' instanceOccurrenceMax='0'><ShortMessage>Useless control flow</ShortMessage><LongMessage>Useless control flow in it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion()</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='60' end='483' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 60-483]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor' signature='()Lit/tidalwave/util/spi/DefaultProcessExecutor;' name='waitForCompletion' primary='true'><SourceLine endBytecode='66' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='455' end='460' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor.waitForCompletion()</Message></Method><SourceLine endBytecode='7' classname='it.tidalwave.util.spi.DefaultProcessExecutor' start='455' end='455' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='7' primary='true'><Message>At DefaultProcessExecutor.java:[line 455]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='282979a34723be2e2509ea3ef5ab71c6' rank='19' abbrev='Dm' category='I18N' priority='1' type='DM_DEFAULT_ENCODING' instanceOccurrenceMax='0'><ShortMessage>Reliance on default encoding</ShortMessage><LongMessage>Found reliance on default encoding in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read(): new java.io.InputStreamReader(InputStream)</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='69' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 69-325]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='()V' name='read' primary='true'><SourceLine endBytecode='497' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='279' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read()</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.io.InputStreamReader' signature='(Ljava/io/InputStream;)V' name='&lt;init&gt;'><SourceLine endBytecode='85' classname='java.io.InputStreamReader' start='72' end='75' sourcepath='java/io/InputStreamReader.java' sourcefile='InputStreamReader.java' startBytecode='0'></SourceLine><Message>Called method new java.io.InputStreamReader(InputStream)</Message></Method><SourceLine endBytecode='8' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='279' end='279' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='8' primary='true'><Message>At DefaultProcessExecutor.java:[line 279]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='a4ff01756de9ea4b0bf187d6935c6579' rank='14' abbrev='NN' category='MT_CORRECTNESS' priority='2' type='NN_NAKED_NOTIFY' instanceOccurrenceMax='0'><ShortMessage>Naked notify</ShortMessage><LongMessage>Naked notify in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read()</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='69' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 69-325]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='()V' name='read' primary='true'><SourceLine endBytecode='497' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='279' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.read()</Message></Method><SourceLine endBytecode='152' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='319' end='319' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='152' primary='true'><Message>At DefaultProcessExecutor.java:[line 319]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='f53c819baaf66f7ccd0135a0b88105ee' cweid='253' rank='19' abbrev='RV' category='BAD_PRACTICE' priority='3' type='RV_RETURN_VALUE_IGNORED_BAD_PRACTICE' instanceOccurrenceMax='0'><ShortMessage>Method ignores exceptional return value</ShortMessage><LongMessage>Exceptional return value of java.util.concurrent.ExecutorService.submit(Runnable) ignored in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.start()</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='69' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 69-325]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='()Lit/tidalwave/util/ProcessExecutor$ConsoleOutput;' name='start' primary='true'><SourceLine endBytecode='141' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='151' end='159' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.start()</Message></Method><Method isStatic='false' role='METHOD_CALLED' classname='java.util.concurrent.ExecutorService' signature='(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;' name='submit'><SourceLine classname='java.util.concurrent.ExecutorService' sourcepath='java/util/concurrent/ExecutorService.java' sourcefile='ExecutorService.java'></SourceLine><Message>Called method java.util.concurrent.ExecutorService.submit(Runnable)</Message></Method><SourceLine endBytecode='46' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='157' end='157' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='46' primary='true'><Message>At DefaultProcessExecutor.java:[line 157]</Message></SourceLine><SourceLine role='SOURCE_LINE_ANOTHER_INSTANCE' endBytecode='63' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='158' end='158' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='63'><Message>Another occurrence at DefaultProcessExecutor.java:[line 158]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='45757508fede6ce813179388b36a1e30' rank='17' abbrev='UW' category='MT_CORRECTNESS' priority='3' type='UW_UNCOND_WAIT' instanceOccurrenceMax='0'><ShortMessage>Unconditional wait</ShortMessage><LongMessage>Unconditional wait in it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String)</LongMessage><Class classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='69' end='325' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 69-325]</Message></SourceLine><Message>In class it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='(Ljava/lang/String;)Lit/tidalwave/util/ProcessExecutor$ConsoleOutput;' name='waitFor' primary='true'><SourceLine endBytecode='252' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='239' end='257' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.waitFor(String)</Message></Method><SourceLine endBytecode='62' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='252' end='252' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='62' primary='true'><Message>At DefaultProcessExecutor.java:[line 252]</Message></SourceLine></BugInstance><BugCategory category='BAD_PRACTICE'><Description>Bad practice</Description></BugCategory><BugCategory category='MALICIOUS_CODE'><Description>Malicious code vulnerability</Description></BugCategory><BugCategory category='PERFORMANCE'><Description>Performance</Description></BugCategory><BugCategory category='STYLE'><Description>Dodgy code</Description></BugCategory><BugCategory category='MT_CORRECTNESS'><Description>Multithreaded correctness</Description></BugCategory><BugCategory category='I18N'><Description>Internationalization</Description></BugCategory><BugPattern abbrev='DP' category='MALICIOUS_CODE' type='DP_DO_INSIDE_DO_PRIVILEGED'><ShortDescription>Method invoked that should be only be invoked inside a doPrivileged block</ShortDescription><Details>

  &lt;p&gt; This code invokes a method that requires a security permission check.
  If this code will be granted security permissions, but might be invoked by code that does not
  have security permissions, then the invocation needs to occur inside a doPrivileged block.&lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='NP' category='STYLE' type='NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE'><ShortDescription>Possible null pointer dereference due to return value of called method</ShortDescription><Details>
      
&lt;p&gt; The return value from a method is dereferenced without a null check,
and the return value of that method is one that should generally be checked
for null.  This may lead to a &lt;code&gt;NullPointerException&lt;/code&gt; when the code is executed.
&lt;/p&gt;
      
   </Details></BugPattern><BugPattern cweid='396' abbrev='REC' category='STYLE' type='REC_CATCH_EXCEPTION'><ShortDescription>Exception is caught when Exception is not thrown</ShortDescription><Details>
  
  &lt;p&gt;
  This method uses a try-catch block that catches Exception objects, but Exception is not
  thrown within the try block, and RuntimeException is not explicitly caught.  It is a common bug pattern to
  say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception
  each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well,
  masking potential bugs.
  &lt;/p&gt;
  &lt;p&gt;A better approach is to either explicitly catch the specific exceptions that are thrown,
  or to explicitly catch RuntimeException exception, rethrow it, and then catch all non-Runtime Exceptions, as shown below:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;try {
    ...
} catch (RuntimeException e) {
    throw e;
} catch (Exception e) {
    ... deal with all non-runtime exceptions ...
}
&lt;/code&gt;&lt;/pre&gt;
  
     </Details></BugPattern><BugPattern abbrev='FS' category='BAD_PRACTICE' type='VA_FORMAT_STRING_USES_NEWLINE'><ShortDescription>Format string should use %n rather than \n</ShortDescription><Details>

&lt;p&gt;
This format string includes a newline character (\n). In format strings, it is generally
 preferable to use %n, which will produce the platform-specific line separator.
&lt;/p&gt;

     </Details></BugPattern><BugPattern abbrev='DMI' category='BAD_PRACTICE' type='DMI_RANDOM_USED_ONLY_ONCE'><ShortDescription>Random object created and used only once</ShortDescription><Details>

&lt;p&gt; This code creates a java.util.Random object, uses it to generate one random number, and then discards
the Random object. This produces mediocre quality random numbers and is inefficient.
If possible, rewrite the code so that the Random object is created once and saved, and each time a new random number
is required invoke a method on the existing Random object to obtain it.
&lt;/p&gt;

&lt;p&gt;If it is important that the generated Random numbers not be guessable, you &lt;em&gt;must&lt;/em&gt; not create a new Random for each random
number; the values are too easily guessable. You should strongly consider using a java.security.SecureRandom instead
(and avoid allocating a new SecureRandom for each random number needed).
&lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='SIC' category='PERFORMANCE' type='SIC_INNER_SHOULD_BE_STATIC_ANON'><ShortDescription>Could be refactored into a named static inner class</ShortDescription><Details>

  &lt;p&gt; This class is an inner class, but does not use its embedded reference
  to the object which created it.&amp;nbsp; This reference makes the instances
  of the class larger, and may keep the reference to the creator object
  alive longer than necessary.&amp;nbsp; If possible, the class should be
  made into a &lt;em&gt;static&lt;/em&gt; inner class. Since anonymous inner
classes cannot be marked as static, doing this will require refactoring
the inner class so that it is a named inner class.&lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='MC' category='MALICIOUS_CODE' type='MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR'><ShortDescription>An overridable method is called from a constructor</ShortDescription><Details>
      &lt;p&gt;
      Calling an overridable method during in a constructor may result in the use of uninitialized data. It may also
      leak the this reference of the partially constructed object. Only static, final or private methods should be
      invoked from a constructor.&lt;/p&gt;
      &lt;p&gt;
      See SEI CERT rule &lt;a href="https://wiki.sei.cmu.edu/confluence/display/java/MET05-J.+Ensure+that+constructors+do+not+call+overridable+methods"&gt;MET05-J. Ensure that constructors do not call overridable methods&lt;/a&gt;.
      &lt;/p&gt;
    </Details></BugPattern><BugPattern abbrev='Dm' category='I18N' type='DM_DEFAULT_ENCODING'><ShortDescription>Reliance on default encoding</ShortDescription><Details>

&lt;p&gt; Found a call to a method which will perform a byte to String (or String to byte) conversion,
and will assume that the default platform encoding is suitable. This will cause the application
behavior to vary between platforms. Use an alternative API and specify a charset name or Charset
object explicitly.&lt;/p&gt;

      </Details></BugPattern><BugPattern abbrev='Se' category='BAD_PRACTICE' type='SE_TRANSIENT_FIELD_NOT_RESTORED'><ShortDescription>Transient field that isn't set by deserialization.</ShortDescription><Details>

  &lt;p&gt; This class contains a field that is updated at multiple places in the class, thus it seems to be part of the state of the class. However, since the field is marked as transient and not set in readObject or readResolve, it will contain the default value in any
deserialized instance of the class.
&lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='Se' category='BAD_PRACTICE' type='SE_BAD_FIELD'><ShortDescription>Non-transient non-serializable instance field in serializable class</ShortDescription><Details>

&lt;p&gt; This Serializable class defines a non-primitive instance field which is neither transient,
Serializable, or &lt;code&gt;java.lang.Object&lt;/code&gt;, and does not appear to implement
the &lt;code&gt;Externalizable&lt;/code&gt; interface or the
&lt;code&gt;readObject()&lt;/code&gt; and &lt;code&gt;writeObject()&lt;/code&gt; methods.&amp;nbsp;
Objects of this class will not be deserialized correctly if a non-Serializable
object is stored in this field.&lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='UW' category='MT_CORRECTNESS' type='UW_UNCOND_WAIT'><ShortDescription>Unconditional wait</ShortDescription><Details>

  &lt;p&gt; This method contains a call to &lt;code&gt;java.lang.Object.wait()&lt;/code&gt; which
    is not guarded by conditional control flow. The code should
    verify that condition it intends to wait for is not already satisfied
    before calling wait; any previous notifications will be ignored.
  &lt;/p&gt;

    </Details></BugPattern><BugPattern abbrev='UCF' category='STYLE' type='UCF_USELESS_CONTROL_FLOW'><ShortDescription>Useless control flow</ShortDescription><Details>

&lt;p&gt; This method contains a useless control flow statement, where
control flow continues onto the same place regardless of whether or not
the branch is taken. For example,
this is caused by having an empty statement
block for an &lt;code&gt;if&lt;/code&gt; statement:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;if (argv.length == 0) {
    // TODO: handle this case
handle this case
} &lt;/code&gt;&lt;/pre&gt; </Details></BugPattern><BugPattern abbrev='Dm' category='I18N' type='DM_CONVERT_CASE'><ShortDescription>Consider using Locale parameterized version of invoked method</ShortDescription><Details> &lt;p&gt; A String is being converted to upper or lowercase, using the platform's default encoding. This may result in improper conversions when used with international characters. Use the &lt;/p&gt; &lt;ul&gt; &lt;li&gt;String.toUpperCase( Locale l )&lt;/li&gt; &lt;li&gt;String.toLowerCase( Locale l )&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;versions instead.&lt;/p&gt; </Details></BugPattern><BugPattern abbrev='NN' category='MT_CORRECTNESS' type='NN_NAKED_NOTIFY'><ShortDescription>Naked notify</ShortDescription><Details> &lt;p&gt; A call to &lt;code&gt;notify()&lt;/code&gt; or &lt;code&gt;notifyAll()&lt;/code&gt; was made without any (apparent) accompanying modification to mutable object state.&amp;nbsp; In general, calling a notify method on a monitor is done because some condition another thread is waiting for has become true.&amp;nbsp; However, for the condition to be meaningful, it must involve a heap object that is visible to both threads.&lt;/p&gt; &lt;p&gt; This bug does not necessarily indicate an error, since the change to mutable object state may have taken place in a method which then called the method containing the notification.&lt;/p&gt; </Details></BugPattern><BugPattern cweid='253' abbrev='RV' category='BAD_PRACTICE' type='RV_RETURN_VALUE_IGNORED_BAD_PRACTICE'><ShortDescription>Method ignores exceptional return value</ShortDescription><Details> &lt;p&gt; This method returns a value that is not checked. The return value should be checked since it can indicate an unusual or unexpected function execution. For example, the &lt;code&gt;File.delete()&lt;/code&gt; method returns false if the file could not be successfully deleted (rather than throwing an Exception). If you don't check the result, you won't notice if the method invocation signals unexpected behavior by returning an atypical return value. &lt;/p&gt; </Details></BugPattern><BugCode abbrev='NN'><Description>Naked notify</Description></BugCode><BugCode cweid='440' abbrev='DMI'><Description>Dubious method invocation</Description></BugCode><BugCode cweid='476' abbrev='NP'><Description>Null pointer dereference</Description></BugCode><BugCode abbrev='UW'><Description>Unconditional wait</Description></BugCode><BugCode cweid='440' abbrev='RV'><Description>Bad use of return value from method</Description></BugCode><BugCode abbrev='Dm'><Description>Dubious method used</Description></BugCode><BugCode abbrev='SIC'><Description>Inner class could be made static</Description></BugCode><BugCode abbrev='DP'><Description>Use doPrivileged</Description></BugCode><BugCode abbrev='FS'><Description>Format string problem</Description></BugCode><BugCode abbrev='REC'><Description>RuntimeException capture</Description></BugCode><BugCode abbrev='Se'><Description>Incorrect definition of Serializable class</Description></BugCode><BugCode abbrev='MC'><Description>Dangerous call to overridable method</Description></BugCode><BugCode abbrev='UCF'><Description>Useless control flow</Description></BugCode><Errors missingClasses='0' errors='0'></Errors><FindBugsSummary num_packages='12' total_classes='112' priority_1='3' priority_2='9' priority_3='10' total_size='2019' clock_seconds='10.15' referenced_classes='414' vm_version='11.0.18+10' total_bugs='22' java_version='11.0.18' gc_seconds='0.38' alloc_mbytes='512.00' cpu_seconds='12.56' peak_mbytes='189.05' timestamp='Tue, 2 May 2023 04:58:01 +0000'><FileStats path='it/tidalwave/dci/annotation/DciContext.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/dci/annotation/DciRole.java' size='6' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/AsDelegate.java' size='51' bugHash='fc6f9dd632b390be9f1706ca6a7f53f8' bugCount='2'></FileStats><FileStats path='it/tidalwave/role/impl/ContextSnapshot.java' size='19' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultContextManager.java' size='56' bugHash='b9db73a26cbb895e50247cc07425fc95' bugCount='1'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultContextManagerProvider.java' size='5' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultOwnerRoleFactory.java' size='28' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultOwnerRoleFactoryProvider.java' size='5' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultSystemRoleFactory.java' size='3' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/DefaultSystemRoleFactoryProvider.java' size='5' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/MultiMap.java' size='20' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/OwnerAndRole.java' size='22' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/impl/ServiceLoaderLocator.java' size='35' bugHash='e767980ceca4f63190ea9a54ef280dcc' bugCount='1'></FileStats><FileStats path='it/tidalwave/role/spi/ContextManagerProvider.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/OwnerRoleFactory.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/OwnerRoleFactoryProvider.java' size='11' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/SystemRoleFactory.java' size='23' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/SystemRoleFactoryProvider.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/SystemRoleFactorySupport.java' size='116' bugCount='0'></FileStats><FileStats path='it/tidalwave/role/spi/annotation/DefaultProvider.java' size='1' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/As.java' size='29' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/AsException.java' size='8' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/AsExtensions.java' size='17' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/BundleUtilities.java' size='10' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Callback.java' size='6' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/CollectionUtils.java' size='41' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ConcurrentHashMapWithOptionals.java' size='9' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ContextManager.java' size='70' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/DuplicateException.java' size='8' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Finder.java' size='93' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/FunctionalCheckedExceptionWrappers.java' size='53' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Id.java' size='19' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/IdFactory.java' size='21' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Initializer.java' size='10' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Key.java' size='41' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/LazySupplier.java' size='26' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/LocalizedDateTimeFormatters.java' size='7' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/NamedCallback.java' size='13' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/NotFoundException.java' size='30' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Pair.java' size='80' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Parameters.java' size='28' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/PreferencesHandler.java' size='29' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ProcessExecutor.java' size='19' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ReflectionUtils.java' size='67' bugHash='b7971425f2d4fa5cd88058827338a66b' bugCount='2'></FileStats><FileStats path='it/tidalwave/util/RoleFactory.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ShortNames.java' size='54' bugHash='c1a50cba2f0d4409775bd8509f8451dc' bugCount='1'></FileStats><FileStats path='it/tidalwave/util/SimpleTask.java' size='3' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/StreamUtils.java' size='34' bugHash='627a488c2b90d1aeeb228d092731ace0' bugCount='1'></FileStats><FileStats path='it/tidalwave/util/StringValue.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Task.java' size='41' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/TimeProvider.java' size='24' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Triple.java' size='26' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/TypeSafeMap.java' size='18' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/TypeSafeMultiMap.java' size='14' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/annotation/VisibleForTesting.java' size='1' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/DefaultPreferencesHandler.java' size='45' bugHash='cac66e75ce4262450611695858cc26e3' bugCount='3'></FileStats><FileStats path='it/tidalwave/util/impl/TypeSafeHashMap.java' size='40' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/TypeSafeHashMultiMap.java' size='44' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/finder/ArrayListFinder.java' size='14' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/finder/MappingFinder.java' size='17' bugHash='24dd14522be7ac289dc083952c3c86ea' bugCount='2'></FileStats><FileStats path='it/tidalwave/util/impl/finder/ProviderFinder.java' size='14' bugHash='3fc42a52302587d3a841331fcad29775' bugCount='1'></FileStats><FileStats path='it/tidalwave/util/impl/finder/SupplierFinder.java' size='14' bugHash='d03a5aaf2c272039683b607a6fc30849' bugCount='1'></FileStats><FileStats path='it/tidalwave/util/spi/ArrayListCollectorSupport.java' size='12' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/DefaultProcessExecutor.java' size='175' bugHash='898844c5659f8bba7fed0d339bd00ed1' bugCount='7'></FileStats><FileStats path='it/tidalwave/util/spi/ExtendedFinderSupport.java' size='6' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/FinderWithId.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/FinderWithIdMapSupport.java' size='18' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/FinderWithIdSupport.java' size='25' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/HierarchicFinderSupport.java' size='109' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/SimpleFinderSupport.java' size='10' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/thread/ThreadAssertions.java' size='15' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/thread/ThreadType.java' size='11' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/thread/annotation/ThreadConfined.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ui/LockableView.java' size='3' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ui/UserNotification.java' size='20' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ui/UserNotificationWithFeedback.java' size='56' bugCount='0'></FileStats><PackageStats package='it.tidalwave.dci.annotation' total_bugs='0' total_size='8' total_types='3'><ClassStats bugs='0' size='2' interface='true' sourceFile='DciContext.java' class='it.tidalwave.dci.annotation.DciContext'></ClassStats><ClassStats bugs='0' size='3' interface='true' sourceFile='DciRole.java' class='it.tidalwave.dci.annotation.DciRole'></ClassStats><ClassStats bugs='0' size='3' interface='false' sourceFile='DciRole.java' class='it.tidalwave.dci.annotation.DciRole$NoContext'></ClassStats></PackageStats><PackageStats package='it.tidalwave.role.impl' total_bugs='4' priority_2='1' priority_3='3' total_size='249' total_types='13'><ClassStats bugs='2' size='51' priority_3='2' interface='false' sourceFile='AsDelegate.java' class='it.tidalwave.role.impl.AsDelegate'></ClassStats><ClassStats bugs='0' size='19' interface='false' sourceFile='ContextSnapshot.java' class='it.tidalwave.role.impl.ContextSnapshot'></ClassStats><ClassStats bugs='1' size='49' priority_3='1' interface='false' sourceFile='DefaultContextManager.java' class='it.tidalwave.role.impl.DefaultContextManager'></ClassStats><ClassStats bugs='0' size='7' interface='false' sourceFile='DefaultContextManager.java' class='it.tidalwave.role.impl.DefaultContextManager$1'></ClassStats><ClassStats bugs='0' size='5' interface='false' sourceFile='DefaultContextManagerProvider.java' class='it.tidalwave.role.impl.DefaultContextManagerProvider'></ClassStats><ClassStats bugs='0' size='20' interface='false' sourceFile='DefaultOwnerRoleFactory.java' class='it.tidalwave.role.impl.DefaultOwnerRoleFactory'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='DefaultOwnerRoleFactory.java' class='it.tidalwave.role.impl.DefaultOwnerRoleFactory$1'></ClassStats><ClassStats bugs='0' size='5' interface='false' sourceFile='DefaultOwnerRoleFactoryProvider.java' class='it.tidalwave.role.impl.DefaultOwnerRoleFactoryProvider'></ClassStats><ClassStats bugs='0' size='3' interface='false' sourceFile='DefaultSystemRoleFactory.java' class='it.tidalwave.role.impl.DefaultSystemRoleFactory'></ClassStats><ClassStats bugs='0' size='5' interface='false' sourceFile='DefaultSystemRoleFactoryProvider.java' class='it.tidalwave.role.impl.DefaultSystemRoleFactoryProvider'></ClassStats><ClassStats bugs='0' size='20' interface='false' sourceFile='MultiMap.java' class='it.tidalwave.role.impl.MultiMap'></ClassStats><ClassStats bugs='0' size='22' interface='false' sourceFile='OwnerAndRole.java' class='it.tidalwave.role.impl.OwnerAndRole'></ClassStats><ClassStats bugs='1' size='35' priority_2='1' interface='false' sourceFile='ServiceLoaderLocator.java' class='it.tidalwave.role.impl.ServiceLoaderLocator'></ClassStats></PackageStats><PackageStats package='it.tidalwave.role.spi' total_bugs='0' total_size='156' total_types='8'><ClassStats bugs='0' size='2' interface='true' sourceFile='ContextManagerProvider.java' class='it.tidalwave.role.spi.ContextManagerProvider'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='OwnerRoleFactory.java' class='it.tidalwave.role.spi.OwnerRoleFactory'></ClassStats><ClassStats bugs='0' size='4' interface='true' sourceFile='OwnerRoleFactoryProvider.java' class='it.tidalwave.role.spi.OwnerRoleFactoryProvider'></ClassStats><ClassStats bugs='0' size='7' interface='false' sourceFile='OwnerRoleFactoryProvider.java' class='it.tidalwave.role.spi.OwnerRoleFactoryProvider$Inner'></ClassStats><ClassStats bugs='0' size='12' interface='true' sourceFile='SystemRoleFactory.java' class='it.tidalwave.role.spi.SystemRoleFactory'></ClassStats><ClassStats bugs='0' size='11' interface='false' sourceFile='SystemRoleFactory.java' class='it.tidalwave.role.spi.SystemRoleFactory$Inner'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='SystemRoleFactoryProvider.java' class='it.tidalwave.role.spi.SystemRoleFactoryProvider'></ClassStats><ClassStats bugs='0' size='116' interface='false' sourceFile='SystemRoleFactorySupport.java' class='it.tidalwave.role.spi.SystemRoleFactorySupport'></ClassStats></PackageStats><PackageStats package='it.tidalwave.role.spi.annotation' total_bugs='0' total_size='1' total_types='1'><ClassStats bugs='0' size='1' interface='true' sourceFile='DefaultProvider.java' class='it.tidalwave.role.spi.annotation.DefaultProvider'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util' priority_1='1' total_bugs='4' priority_2='2' priority_3='1' total_size='952' total_types='59'><ClassStats bugs='0' size='20' interface='true' sourceFile='As.java' class='it.tidalwave.util.As'></ClassStats><ClassStats bugs='0' size='9' interface='false' sourceFile='As.java' class='it.tidalwave.util.As$Type'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='AsException.java' class='it.tidalwave.util.AsException'></ClassStats><ClassStats bugs='0' size='17' interface='false' sourceFile='AsExtensions.java' class='it.tidalwave.util.AsExtensions'></ClassStats><ClassStats bugs='0' size='10' interface='false' sourceFile='BundleUtilities.java' class='it.tidalwave.util.BundleUtilities'></ClassStats><ClassStats bugs='0' size='6' interface='true' sourceFile='Callback.java' class='it.tidalwave.util.Callback'></ClassStats><ClassStats bugs='0' size='41' interface='false' sourceFile='CollectionUtils.java' class='it.tidalwave.util.CollectionUtils'></ClassStats><ClassStats bugs='0' size='9' interface='false' sourceFile='ConcurrentHashMapWithOptionals.java' class='it.tidalwave.util.ConcurrentHashMapWithOptionals'></ClassStats><ClassStats bugs='0' size='41' interface='true' sourceFile='ContextManager.java' class='it.tidalwave.util.ContextManager'></ClassStats><ClassStats bugs='0' size='14' interface='false' sourceFile='ContextManager.java' class='it.tidalwave.util.ContextManager$Binder'></ClassStats><ClassStats bugs='0' size='11' interface='false' sourceFile='ContextManager.java' class='it.tidalwave.util.ContextManager$Inner'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='ContextManager.java' class='it.tidalwave.util.ContextManager$RunnableWithException'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='ContextManager.java' class='it.tidalwave.util.ContextManager$SupplierWithException'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='DuplicateException.java' class='it.tidalwave.util.DuplicateException'></ClassStats><ClassStats bugs='0' size='48' interface='true' sourceFile='Finder.java' class='it.tidalwave.util.Finder'></ClassStats><ClassStats bugs='0' size='9' interface='true' sourceFile='Finder.java' class='it.tidalwave.util.Finder$InMemorySortCriterion'></ClassStats><ClassStats bugs='0' size='14' interface='false' sourceFile='Finder.java' class='it.tidalwave.util.Finder$InMemorySortCriterion$DefaultInMemorySortCriterion'></ClassStats><ClassStats bugs='0' size='9' interface='true' sourceFile='Finder.java' class='it.tidalwave.util.Finder$SortCriterion'></ClassStats><ClassStats bugs='0' size='13' interface='false' sourceFile='Finder.java' class='it.tidalwave.util.Finder$SortDirection'></ClassStats><ClassStats bugs='0' size='43' interface='false' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers$ConsumerWithException'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers$FunctionWithException'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers$PredicateWithException'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers$RunnableWithException'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FunctionalCheckedExceptionWrappers.java' class='it.tidalwave.util.FunctionalCheckedExceptionWrappers$SupplierWithException'></ClassStats><ClassStats bugs='0' size='19' interface='false' sourceFile='Id.java' class='it.tidalwave.util.Id'></ClassStats><ClassStats bugs='0' size='15' interface='true' sourceFile='IdFactory.java' class='it.tidalwave.util.IdFactory'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='IdFactory.java' class='it.tidalwave.util.IdFactory$Private'></ClassStats><ClassStats bugs='0' size='4' interface='true' sourceFile='Initializer.java' class='it.tidalwave.util.Initializer'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='Initializer.java' class='it.tidalwave.util.Initializer$EmptyInitializer'></ClassStats><ClassStats bugs='0' size='41' interface='false' sourceFile='Key.java' class='it.tidalwave.util.Key'></ClassStats><ClassStats bugs='0' size='26' interface='false' sourceFile='LazySupplier.java' class='it.tidalwave.util.LazySupplier'></ClassStats><ClassStats bugs='0' size='7' interface='false' sourceFile='LocalizedDateTimeFormatters.java' class='it.tidalwave.util.LocalizedDateTimeFormatters'></ClassStats><ClassStats bugs='0' size='13' interface='false' sourceFile='NamedCallback.java' class='it.tidalwave.util.NamedCallback'></ClassStats><ClassStats bugs='0' size='30' interface='false' sourceFile='NotFoundException.java' class='it.tidalwave.util.NotFoundException'></ClassStats><ClassStats bugs='0' size='71' interface='false' sourceFile='Pair.java' class='it.tidalwave.util.Pair'></ClassStats><ClassStats bugs='0' size='9' interface='false' sourceFile='Pair.java' class='it.tidalwave.util.Pair$Factory'></ClassStats><ClassStats bugs='0' size='28' interface='false' sourceFile='Parameters.java' class='it.tidalwave.util.Parameters'></ClassStats><ClassStats bugs='0' size='23' interface='true' sourceFile='PreferencesHandler.java' class='it.tidalwave.util.PreferencesHandler'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='PreferencesHandler.java' class='it.tidalwave.util.PreferencesHandler$Inner'></ClassStats><ClassStats bugs='0' size='9' interface='true' sourceFile='ProcessExecutor.java' class='it.tidalwave.util.ProcessExecutor'></ClassStats><ClassStats bugs='0' size='8' interface='true' sourceFile='ProcessExecutor.java' class='it.tidalwave.util.ProcessExecutor$ConsoleOutput'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='ProcessExecutor.java' class='it.tidalwave.util.ProcessExecutor$ConsoleOutput$Listener'></ClassStats><ClassStats bugs='2' size='67' priority_2='1' priority_3='1' interface='false' sourceFile='ReflectionUtils.java' class='it.tidalwave.util.ReflectionUtils'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='RoleFactory.java' class='it.tidalwave.util.RoleFactory'></ClassStats><ClassStats bugs='1' size='54' priority_2='1' interface='false' sourceFile='ShortNames.java' class='it.tidalwave.util.ShortNames'></ClassStats><ClassStats bugs='0' size='3' interface='false' sourceFile='SimpleTask.java' class='it.tidalwave.util.SimpleTask'></ClassStats><ClassStats bugs='1' size='23' priority_1='1' interface='false' sourceFile='StreamUtils.java' class='it.tidalwave.util.StreamUtils'></ClassStats><ClassStats bugs='0' size='11' interface='false' sourceFile='StreamUtils.java' class='it.tidalwave.util.StreamUtils$1'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='StringValue.java' class='it.tidalwave.util.StringValue'></ClassStats><ClassStats bugs='0' size='19' interface='false' sourceFile='Task.java' class='it.tidalwave.util.Task'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='Task.java' class='it.tidalwave.util.Task$1'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='Task.java' class='it.tidalwave.util.Task$2'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='Task.java' class='it.tidalwave.util.Task$3'></ClassStats><ClassStats bugs='0' size='19' interface='true' sourceFile='TimeProvider.java' class='it.tidalwave.util.TimeProvider'></ClassStats><ClassStats bugs='0' size='5' interface='false' sourceFile='TimeProvider.java' class='it.tidalwave.util.TimeProvider$DefaultTimeProvider'></ClassStats><ClassStats bugs='0' size='26' interface='false' sourceFile='Triple.java' class='it.tidalwave.util.Triple'></ClassStats><ClassStats bugs='0' size='18' interface='true' sourceFile='TypeSafeMap.java' class='it.tidalwave.util.TypeSafeMap'></ClassStats><ClassStats bugs='0' size='14' interface='true' sourceFile='TypeSafeMultiMap.java' class='it.tidalwave.util.TypeSafeMultiMap'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.annotation' total_bugs='0' total_size='1' total_types='1'><ClassStats bugs='0' size='1' interface='true' sourceFile='VisibleForTesting.java' class='it.tidalwave.util.annotation.VisibleForTesting'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.impl' total_bugs='3' priority_2='2' priority_3='1' total_size='129' total_types='3'><ClassStats bugs='3' size='45' priority_2='2' priority_3='1' interface='false' sourceFile='DefaultPreferencesHandler.java' class='it.tidalwave.util.impl.DefaultPreferencesHandler'></ClassStats><ClassStats bugs='0' size='40' interface='false' sourceFile='TypeSafeHashMap.java' class='it.tidalwave.util.impl.TypeSafeHashMap'></ClassStats><ClassStats bugs='0' size='44' interface='false' sourceFile='TypeSafeHashMultiMap.java' class='it.tidalwave.util.impl.TypeSafeHashMultiMap'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.impl.finder' total_bugs='4' priority_2='3' priority_3='1' total_size='59' total_types='4'><ClassStats bugs='0' size='14' interface='false' sourceFile='ArrayListFinder.java' class='it.tidalwave.util.impl.finder.ArrayListFinder'></ClassStats><ClassStats bugs='2' size='17' priority_2='1' priority_3='1' interface='false' sourceFile='MappingFinder.java' class='it.tidalwave.util.impl.finder.MappingFinder'></ClassStats><ClassStats bugs='1' size='14' priority_2='1' interface='false' sourceFile='ProviderFinder.java' class='it.tidalwave.util.impl.finder.ProviderFinder'></ClassStats><ClassStats bugs='1' size='14' priority_2='1' interface='false' sourceFile='SupplierFinder.java' class='it.tidalwave.util.impl.finder.SupplierFinder'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.spi' priority_1='2' total_bugs='7' priority_2='1' priority_3='4' total_size='357' total_types='12'><ClassStats bugs='0' size='12' interface='false' sourceFile='ArrayListCollectorSupport.java' class='it.tidalwave.util.spi.ArrayListCollectorSupport'></ClassStats><ClassStats bugs='3' size='60' priority_1='1' priority_3='2' interface='false' sourceFile='DefaultProcessExecutor.java' class='it.tidalwave.util.spi.DefaultProcessExecutor'></ClassStats><ClassStats bugs='4' size='92' priority_1='1' priority_2='1' priority_3='2' interface='false' sourceFile='DefaultProcessExecutor.java' class='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput'></ClassStats><ClassStats bugs='0' size='10' interface='false' sourceFile='DefaultProcessExecutor.java' class='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput$1'></ClassStats><ClassStats bugs='0' size='13' interface='false' sourceFile='DefaultProcessExecutor.java' class='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput$2'></ClassStats><ClassStats bugs='0' size='6' interface='true' sourceFile='ExtendedFinderSupport.java' class='it.tidalwave.util.spi.ExtendedFinderSupport'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='FinderWithId.java' class='it.tidalwave.util.spi.FinderWithId'></ClassStats><ClassStats bugs='0' size='18' interface='false' sourceFile='FinderWithIdMapSupport.java' class='it.tidalwave.util.spi.FinderWithIdMapSupport'></ClassStats><ClassStats bugs='0' size='25' interface='false' sourceFile='FinderWithIdSupport.java' class='it.tidalwave.util.spi.FinderWithIdSupport'></ClassStats><ClassStats bugs='0' size='101' interface='false' sourceFile='HierarchicFinderSupport.java' class='it.tidalwave.util.spi.HierarchicFinderSupport'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='HierarchicFinderSupport.java' class='it.tidalwave.util.spi.HierarchicFinderSupport$Sorter'></ClassStats><ClassStats bugs='0' size='10' interface='false' sourceFile='SimpleFinderSupport.java' class='it.tidalwave.util.spi.SimpleFinderSupport'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.thread' total_bugs='0' total_size='26' total_types='3'><ClassStats bugs='0' size='11' interface='false' sourceFile='ThreadAssertions.java' class='it.tidalwave.util.thread.ThreadAssertions'></ClassStats><ClassStats bugs='0' size='4' interface='false' sourceFile='ThreadAssertions.java' class='it.tidalwave.util.thread.ThreadAssertions$1'></ClassStats><ClassStats bugs='0' size='11' interface='false' sourceFile='ThreadType.java' class='it.tidalwave.util.thread.ThreadType'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.thread.annotation' total_bugs='0' total_size='2' total_types='1'><ClassStats bugs='0' size='2' interface='true' sourceFile='ThreadConfined.java' class='it.tidalwave.util.thread.annotation.ThreadConfined'></ClassStats></PackageStats><PackageStats package='it.tidalwave.util.ui' total_bugs='0' total_size='79' total_types='4'><ClassStats bugs='0' size='3' interface='true' sourceFile='LockableView.java' class='it.tidalwave.util.ui.LockableView'></ClassStats><ClassStats bugs='0' size='20' interface='false' sourceFile='UserNotification.java' class='it.tidalwave.util.ui.UserNotification'></ClassStats><ClassStats bugs='0' size='35' interface='false' sourceFile='UserNotificationWithFeedback.java' class='it.tidalwave.util.ui.UserNotificationWithFeedback'></ClassStats><ClassStats bugs='0' size='21' interface='false' sourceFile='UserNotificationWithFeedback.java' class='it.tidalwave.util.ui.UserNotificationWithFeedback$Feedback'></ClassStats></PackageStats><FindBugsProfile><ClassProfile avgMicrosecondsPerInvocation='891' totalMilliseconds='1222' name='edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine' maxMicrosecondsPerInvocation='48163' standardDeviationMicrosecondsPerInvocation='3033' invocations='1371'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1255' totalMilliseconds='519' name='edu.umd.cs.findbugs.detect.FieldItemSummary' maxMicrosecondsPerInvocation='59443' standardDeviationMicrosecondsPerInvocation='4418' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='283' totalMilliseconds='348' name='edu.umd.cs.findbugs.OpcodeStack$JumpInfoFactory' maxMicrosecondsPerInvocation='24172' standardDeviationMicrosecondsPerInvocation='1411' invocations='1227'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='824' totalMilliseconds='341' name='edu.umd.cs.findbugs.detect.FindNoSideEffectMethods' maxMicrosecondsPerInvocation='23892' standardDeviationMicrosecondsPerInvocation='2497' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='622' totalMilliseconds='331' name='edu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinder' maxMicrosecondsPerInvocation='26746' standardDeviationMicrosecondsPerInvocation='2153' invocations='533'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='512' totalMilliseconds='287' name='edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory' maxMicrosecondsPerInvocation='25333' standardDeviationMicrosecondsPerInvocation='2018' invocations='560'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='500' totalMilliseconds='280' name='edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory' maxMicrosecondsPerInvocation='24150' standardDeviationMicrosecondsPerInvocation='2104' invocations='561'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='198' totalMilliseconds='275' name='edu.umd.cs.findbugs.classfile.engine.ClassDataAnalysisEngine' maxMicrosecondsPerInvocation='50932' standardDeviationMicrosecondsPerInvocation='1543' invocations='1386'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='476' totalMilliseconds='262' name='edu.umd.cs.findbugs.classfile.engine.bcel.IsNullValueDataflowFactory' maxMicrosecondsPerInvocation='35285' standardDeviationMicrosecondsPerInvocation='2095' invocations='551'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='451' totalMilliseconds='248' name='edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory' maxMicrosecondsPerInvocation='16992' standardDeviationMicrosecondsPerInvocation='1797' invocations='551'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='451' totalMilliseconds='223' name='edu.umd.cs.findbugs.classfile.engine.bcel.JavaClassAnalysisEngine' maxMicrosecondsPerInvocation='44248' standardDeviationMicrosecondsPerInvocation='2610' invocations='495'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='497' totalMilliseconds='205' name='edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers' maxMicrosecondsPerInvocation='16307' standardDeviationMicrosecondsPerInvocation='1769' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='350' totalMilliseconds='190' name='edu.umd.cs.findbugs.classfile.engine.bcel.UnconditionalValueDerefDataflowFactory' maxMicrosecondsPerInvocation='16315' standardDeviationMicrosecondsPerInvocation='1295' invocations='543'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='444' totalMilliseconds='184' name='edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase' maxMicrosecondsPerInvocation='24475' standardDeviationMicrosecondsPerInvocation='2105' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='405' totalMilliseconds='167' name='edu.umd.cs.findbugs.detect.FunctionsThatMightBeMistakenForProcedures' maxMicrosecondsPerInvocation='20936' standardDeviationMicrosecondsPerInvocation='1893' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='321' totalMilliseconds='158' name='edu.umd.cs.findbugs.detect.FindRefComparison$SpecialTypeAnalysis' maxMicrosecondsPerInvocation='21588' standardDeviationMicrosecondsPerInvocation='1405' invocations='492'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='240' totalMilliseconds='152' name='edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory' maxMicrosecondsPerInvocation='56069' standardDeviationMicrosecondsPerInvocation='2431' invocations='636'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1356' totalMilliseconds='151' name='edu.umd.cs.findbugs.detect.CheckTypeQualifiers' maxMicrosecondsPerInvocation='48959' standardDeviationMicrosecondsPerInvocation='5530' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='96' totalMilliseconds='126' name='edu.umd.cs.findbugs.util.TopologicalSort' maxMicrosecondsPerInvocation='23564' standardDeviationMicrosecondsPerInvocation='811' invocations='1312'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='301' totalMilliseconds='124' name='edu.umd.cs.findbugs.detect.CalledMethods' maxMicrosecondsPerInvocation='14533' standardDeviationMicrosecondsPerInvocation='1353' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='255' totalMilliseconds='105' name='edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical' maxMicrosecondsPerInvocation='18701' standardDeviationMicrosecondsPerInvocation='1428' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='156' totalMilliseconds='86' name='edu.umd.cs.findbugs.classfile.engine.bcel.ConstantDataflowFactory' maxMicrosecondsPerInvocation='16185' standardDeviationMicrosecondsPerInvocation='1074' invocations='551'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='207' totalMilliseconds='85' name='edu.umd.cs.findbugs.detect.BuildStringPassthruGraph' maxMicrosecondsPerInvocation='17586' standardDeviationMicrosecondsPerInvocation='1242' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='754' totalMilliseconds='84' name='edu.umd.cs.findbugs.detect.UnreadFields' maxMicrosecondsPerInvocation='12274' standardDeviationMicrosecondsPerInvocation='2301' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='725' totalMilliseconds='81' name='edu.umd.cs.findbugs.detect.CheckRelaxingNullnessAnnotation' maxMicrosecondsPerInvocation='12055' standardDeviationMicrosecondsPerInvocation='2062' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='173' totalMilliseconds='71' name='edu.umd.cs.findbugs.detect.ReflectiveClasses' maxMicrosecondsPerInvocation='12255' standardDeviationMicrosecondsPerInvocation='812' invocations='414'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='621' totalMilliseconds='69' name='edu.umd.cs.findbugs.detect.LoadOfKnownNullValue' maxMicrosecondsPerInvocation='18068' standardDeviationMicrosecondsPerInvocation='2175' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='576' totalMilliseconds='64' name='edu.umd.cs.findbugs.detect.FindInconsistentSync2' maxMicrosecondsPerInvocation='10260' standardDeviationMicrosecondsPerInvocation='1748' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='545' totalMilliseconds='61' name='edu.umd.cs.findbugs.detect.FindDeadLocalStores' maxMicrosecondsPerInvocation='16116' standardDeviationMicrosecondsPerInvocation='2262' invocations='112'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='117' totalMilliseconds='58' name='edu.umd.cs.findbugs.classfile.engine.bcel.LiveLocalStoreDataflowFactory' maxMicrosecondsPerInvocation='13968' standardDeviationMicrosecondsPerInvocation='930' invocations='497'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='453' totalMilliseconds='50' name='edu.umd.cs.findbugs.detect.DumbMethods' maxMicrosecondsPerInvocation='16659' standardDeviationMicrosecondsPerInvocation='1776' invocations='112'></ClassProfile></FindBugsProfile></FindBugsSummary><ClassFeatures></ClassFeatures><History></History></BugCollection>