<BugCollection sequence='0' release='' analysisTimestamp='1618382495619' version='3.1.11' timestamp='1618381784174'><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/1.7.30/slf4j-api-1.7.30.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.18/lombok-1.18.18.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='799a0da694fd7b76d6611cda5e02b026' 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.util.spi.AsDelegateProvider$EmptyAsDelegateProvider$1 could be refactored into a named _static_ inner class</LongMessage><Class role='CLASS_ANONYMOUS' classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider$1'><SourceLine classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider$1' start='142' end='146' sourcepath='it/tidalwave/util/spi/AsDelegateProvider.java' sourcefile='AsDelegateProvider.java'><Message>At AsDelegateProvider.java:[lines 142-146]</Message></SourceLine><Message>Anonymous class it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider$1</Message></Class><Class classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider' primary='true'><SourceLine classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider' start='136' end='141' sourcepath='it/tidalwave/util/spi/AsDelegateProvider.java' sourcefile='AsDelegateProvider.java'><Message>At AsDelegateProvider.java:[lines 136-141]</Message></SourceLine><Message>In class it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider</Message></Class><Method isStatic='false' classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider' signature='(Ljava/lang/Object;)Lit/tidalwave/util/spi/AsDelegate;' name='createAsDelegate' primary='true'><SourceLine endBytecode='60' classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider' start='141' end='141' sourcepath='it/tidalwave/util/spi/AsDelegateProvider.java' sourcefile='AsDelegateProvider.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider.createAsDelegate(Object)</Message></Method><SourceLine endBytecode='5' classname='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider' start='141' end='141' sourcepath='it/tidalwave/util/spi/AsDelegateProvider.java' sourcefile='AsDelegateProvider.java' startBytecode='5' primary='true'><Message>At AsDelegateProvider.java:[line 141]</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='63' end='485' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 63-485]</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='485' end='485' 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='485' end='485' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='5' primary='true'><Message>At DefaultProcessExecutor.java:[line 485]</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='63' end='485' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 63-485]</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='415' end='432' 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='<init>'><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='430' end='430' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='203' primary='true'><Message>At DefaultProcessExecutor.java:[line 430]</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='63' end='485' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 63-485]</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='457' end='462' 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='457' end='457' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='7' primary='true'><Message>At DefaultProcessExecutor.java:[line 457]</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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='534' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='282' end='327' 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='<init>'><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='282' end='282' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='8' primary='true'><Message>At DefaultProcessExecutor.java:[line 282]</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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='534' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='282' end='327' 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='156' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='321' end='321' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='156' primary='true'><Message>At DefaultProcessExecutor.java:[line 321]</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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='154' end='162' 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='160' end='160' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='46' primary='true'><Message>At DefaultProcessExecutor.java:[line 160]</Message></SourceLine><SourceLine role='SOURCE_LINE_ANOTHER_INSTANCE' endBytecode='63' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='161' end='161' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='63'><Message>Another occurrence at DefaultProcessExecutor.java:[line 161]</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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='265' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='242' end='260' 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='75' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='255' end='255' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='75' primary='true'><Message>At DefaultProcessExecutor.java:[line 255]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='7dd36ac3b2d18d0f8ce1e363d50ebef1' rank='14' abbrev='VO' category='MT_CORRECTNESS' priority='2' type='VO_VOLATILE_INCREMENT' instanceOccurrenceMax='1'><ShortMessage>An increment to a volatile field isn't atomic</ShortMessage><LongMessage>Increment of volatile field it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.li 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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='534' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='282' end='327' 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><Field isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='I' name='li' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>In DefaultProcessExecutor.java</Message></SourceLine><Message>Field it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.li</Message></Field><SourceLine endBytecode='59' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='302' end='302' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='59' primary='true'><Message>At DefaultProcessExecutor.java:[line 302]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='1' instanceHash='7dd36ac3b2d18d0f8ce1e363d50ebef1' rank='14' abbrev='VO' category='MT_CORRECTNESS' priority='2' type='VO_VOLATILE_INCREMENT' instanceOccurrenceMax='1'><ShortMessage>An increment to a volatile field isn't atomic</ShortMessage><LongMessage>Increment of volatile field it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.li 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='72' end='327' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>At DefaultProcessExecutor.java:[lines 72-327]</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='534' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='282' end='327' 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><Field isStatic='false' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' signature='I' name='li' primary='true'><SourceLine classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java'><Message>In DefaultProcessExecutor.java</Message></SourceLine><Message>Field it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput.li</Message></Field><SourceLine endBytecode='147' classname='it.tidalwave.util.spi.DefaultProcessExecutor$DefaultConsoleOutput' start='316' end='316' sourcepath='it/tidalwave/util/spi/DefaultProcessExecutor.java' sourcefile='DefaultProcessExecutor.java' startBytecode='147' primary='true'><Message>At DefaultProcessExecutor.java:[line 316]</Message></SourceLine></BugInstance><BugCategory category='BAD_PRACTICE'><Description>Bad practice</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='VO' category='MT_CORRECTNESS' type='VO_VOLATILE_INCREMENT'><ShortDescription>An increment to a volatile field isn't atomic</ShortDescription><Details>
<p>This code increments a volatile field. Increments of volatile fields aren't
atomic. If more than one thread is incrementing the field at the same time,
increments could be lost.
</p>
</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>
<p> This class is an inner class, but does not use its embedded reference
to the object which created it.&nbsp; This reference makes the instances
of the class larger, and may keep the reference to the creator object
alive longer than necessary.&nbsp; If possible, the class should be
made into a <em>static</em> 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.</p>
</Details></BugPattern><BugPattern abbrev='Dm' category='I18N' type='DM_DEFAULT_ENCODING'><ShortDescription>Reliance on default encoding</ShortDescription><Details>
<p> 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 behaviour to vary between platforms. Use an alternative API and specify a charset name or Charset object explicitly. </p>
</Details></BugPattern><BugPattern abbrev='UW' category='MT_CORRECTNESS' type='UW_UNCOND_WAIT'><ShortDescription>Unconditional wait</ShortDescription><Details>
<p> This method contains a call to <code>java.lang.Object.wait()</code> which
is not guarded by conditional control flow.&nbsp; The code should
verify that condition it intends to wait for is not already satisfied
before calling wait; any previous notifications will be ignored.
</p>
</Details></BugPattern><BugPattern abbrev='UCF' category='STYLE' type='UCF_USELESS_CONTROL_FLOW'><ShortDescription>Useless control flow</ShortDescription><Details>
<p> 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 <code>if</code> statement:</p>
<pre><code>if (argv.length == 0) {
// TODO: handle this case
handle this case
}
</code></pre>
</Details></BugPattern><BugPattern abbrev='Dm' category='I18N' type='DM_CONVERT_CASE'><ShortDescription>Consider using Locale parameterized version of invoked method</ShortDescription><Details>
<p> 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 </p>
<ul>
<li>String.toUpperCase( Locale l )</li>
<li>String.toLowerCase( Locale l )</li>
</ul>
<p>versions instead.</p>
</Details></BugPattern><BugPattern abbrev='NN' category='MT_CORRECTNESS' type='NN_NAKED_NOTIFY'><ShortDescription>Naked notify</ShortDescription><Details>
<p> A call to <code>notify()</code> or <code>notifyAll()</code>
was made without any (apparent) accompanying
modification to mutable object state.&nbsp; In general, calling a notify
method on a monitor is done because some condition another thread is
waiting for has become true.&nbsp; However, for the condition to be meaningful,
it must involve a heap object that is visible to both threads.</p>
<p> 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.</p>
</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>
<p> 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 <code>File.delete()</code> 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.
</p>
</Details></BugPattern><BugCode abbrev='NN'><Description>Naked notify</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='UCF'><Description>Useless control flow</Description></BugCode><BugCode abbrev='VO'><Description>Use of volatile</Description></BugCode><BugCode abbrev='SIC'><Description>Inner class could be made static</Description></BugCode><Errors missingClasses='0' errors='0'></Errors><FindBugsSummary num_packages='7' total_classes='73' priority_1='2' priority_2='3' priority_3='5' total_size='1192' clock_seconds='15.25' referenced_classes='293' vm_version='11.0.10+9' total_bugs='10' java_version='11.0.10' gc_seconds='0.50' alloc_mbytes='512.00' cpu_seconds='12.73' peak_mbytes='167.13' timestamp='Wed, 14 Apr 2021 06:29:44 +0000'><FileStats path='it/tidalwave/util/As.java' size='23' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/AsException.java' size='8' 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/ConcurrentHashMapWithOptionals.java' size='9' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/DuplicateException.java' size='8' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Finder.java' size='76' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/FunctionalCheckedExceptionWrappers.java' size='43' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Id.java' size='19' 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/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='63' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/Parameters.java' size='28' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ProcessExecutor.java' size='19' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/ReflectionUtils.java' size='39' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/RoleFactory.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/SimpleTask.java' size='3' bugCount='0'></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/TypeSafeMap.java' size='22' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/TypeSafeMultiMap.java' size='18' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/annotation/VisibleForTesting.java' size='1' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/ArrayListFinder.java' size='14' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/impl/TypeHolder.java' size='3' bugCount='0'></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/spi/ArrayListCollectorSupport.java' size='12' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/AsDelegate.java' size='2' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/AsDelegateProvider.java' size='38' bugHash='40e633c0e53ee6f5334cab559188ebac' bugCount='1'></FileStats><FileStats path='it/tidalwave/util/spi/AsSupport.java' size='49' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/DefaultProcessExecutor.java' size='184' bugHash='523fc2a71b2e574beb595aa9204904e8' bugCount='9'></FileStats><FileStats path='it/tidalwave/util/spi/ExtendedFinderSupport.java' size='6' bugCount='0'></FileStats><FileStats path='it/tidalwave/util/spi/FinderSupport.java' size='113' 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='61' bugCount='0'></FileStats><PackageStats package='it.tidalwave.util' total_bugs='0' total_size='564' total_types='44'><ClassStats bugs='0' size='9' interface='true' sourceFile='As.java' class='it.tidalwave.util.As'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='As.java' class='it.tidalwave.util.As$Defaults'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='As.java' class='it.tidalwave.util.As$Defaults$1'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='As.java' class='it.tidalwave.util.As$NotFoundBehaviour'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='AsException.java' class='it.tidalwave.util.AsException'></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='9' interface='false' sourceFile='ConcurrentHashMapWithOptionals.java' class='it.tidalwave.util.ConcurrentHashMapWithOptionals'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='DuplicateException.java' class='it.tidalwave.util.DuplicateException'></ClassStats><ClassStats bugs='0' size='31' 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='35' 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$SupplierWithException'></ClassStats><ClassStats bugs='0' size='19' interface='false' sourceFile='Id.java' class='it.tidalwave.util.Id'></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='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='54' 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='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='0' size='39' 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='0' size='3' interface='false' sourceFile='SimpleTask.java' class='it.tidalwave.util.SimpleTask'></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='22' interface='true' sourceFile='TypeSafeMap.java' class='it.tidalwave.util.TypeSafeMap'></ClassStats><ClassStats bugs='0' size='18' 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='0' total_size='101' total_types='4'><ClassStats bugs='0' size='14' interface='false' sourceFile='ArrayListFinder.java' class='it.tidalwave.util.impl.ArrayListFinder'></ClassStats><ClassStats bugs='0' size='3' interface='false' sourceFile='TypeHolder.java' class='it.tidalwave.util.impl.TypeHolder'></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.spi' priority_1='2' total_bugs='10' priority_2='3' priority_3='5' total_size='414' total_types='15'><ClassStats bugs='0' size='12' interface='false' sourceFile='ArrayListCollectorSupport.java' class='it.tidalwave.util.spi.ArrayListCollectorSupport'></ClassStats><ClassStats bugs='0' size='2' interface='true' sourceFile='AsDelegate.java' class='it.tidalwave.util.spi.AsDelegate'></ClassStats><ClassStats bugs='0' size='7' interface='true' sourceFile='AsDelegateProvider.java' class='it.tidalwave.util.spi.AsDelegateProvider'></ClassStats><ClassStats bugs='1' size='5' priority_3='1' interface='false' sourceFile='AsDelegateProvider.java' class='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider'></ClassStats><ClassStats bugs='0' size='6' interface='false' sourceFile='AsDelegateProvider.java' class='it.tidalwave.util.spi.AsDelegateProvider$EmptyAsDelegateProvider$1'></ClassStats><ClassStats bugs='0' size='20' interface='false' sourceFile='AsDelegateProvider.java' class='it.tidalwave.util.spi.AsDelegateProvider$Locator'></ClassStats><ClassStats bugs='0' size='49' interface='false' sourceFile='AsSupport.java' class='it.tidalwave.util.spi.AsSupport'></ClassStats><ClassStats bugs='3' size='64' priority_1='1' priority_3='2' interface='false' sourceFile='DefaultProcessExecutor.java' class='it.tidalwave.util.spi.DefaultProcessExecutor'></ClassStats><ClassStats bugs='6' size='97' priority_1='1' priority_2='3' 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='105' interface='false' sourceFile='FinderSupport.java' class='it.tidalwave.util.spi.FinderSupport'></ClassStats><ClassStats bugs='0' size='8' interface='false' sourceFile='FinderSupport.java' class='it.tidalwave.util.spi.FinderSupport$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='84' total_types='5'><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='1' interface='false' sourceFile='UserNotificationWithFeedback.java' class='it.tidalwave.util.ui.UserNotificationWithFeedback$1'></ClassStats><ClassStats bugs='0' size='25' interface='false' sourceFile='UserNotificationWithFeedback.java' class='it.tidalwave.util.ui.UserNotificationWithFeedback$Feedback'></ClassStats></PackageStats><FindBugsProfile><ClassProfile avgMicrosecondsPerInvocation='1993' totalMilliseconds='2332' name='edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine' maxMicrosecondsPerInvocation='58057' standardDeviationMicrosecondsPerInvocation='5504' invocations='1170'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='2572' totalMilliseconds='753' name='edu.umd.cs.findbugs.detect.FieldItemSummary' maxMicrosecondsPerInvocation='49873' standardDeviationMicrosecondsPerInvocation='6476' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='2244' totalMilliseconds='657' name='edu.umd.cs.findbugs.detect.FindNoSideEffectMethods' maxMicrosecondsPerInvocation='98643' standardDeviationMicrosecondsPerInvocation='7297' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='470' totalMilliseconds='555' name='edu.umd.cs.findbugs.classfile.engine.ClassDataAnalysisEngine' maxMicrosecondsPerInvocation='21851' standardDeviationMicrosecondsPerInvocation='2088' invocations='1180'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='591' totalMilliseconds='553' name='edu.umd.cs.findbugs.OpcodeStack$JumpInfoFactory' maxMicrosecondsPerInvocation='26665' standardDeviationMicrosecondsPerInvocation='2150' invocations='935'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1426' totalMilliseconds='417' name='edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers' maxMicrosecondsPerInvocation='43283' standardDeviationMicrosecondsPerInvocation='4483' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1197' totalMilliseconds='401' name='edu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinder' maxMicrosecondsPerInvocation='25059' standardDeviationMicrosecondsPerInvocation='3340' invocations='335'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1055' totalMilliseconds='370' name='edu.umd.cs.findbugs.classfile.engine.bcel.IsNullValueDataflowFactory' maxMicrosecondsPerInvocation='63209' standardDeviationMicrosecondsPerInvocation='4250' invocations='351'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='956' totalMilliseconds='339' name='edu.umd.cs.findbugs.classfile.engine.bcel.TypeDataflowFactory' maxMicrosecondsPerInvocation='33598' standardDeviationMicrosecondsPerInvocation='3112' invocations='355'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1153' totalMilliseconds='338' name='edu.umd.cs.findbugs.detect.FunctionsThatMightBeMistakenForProcedures' maxMicrosecondsPerInvocation='86331' standardDeviationMicrosecondsPerInvocation='5869' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='955' totalMilliseconds='329' name='edu.umd.cs.findbugs.classfile.engine.bcel.UnconditionalValueDerefDataflowFactory' maxMicrosecondsPerInvocation='31152' standardDeviationMicrosecondsPerInvocation='3375' invocations='345'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='909' totalMilliseconds='322' name='edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory' maxMicrosecondsPerInvocation='32918' standardDeviationMicrosecondsPerInvocation='3519' invocations='355'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='871' totalMilliseconds='305' name='edu.umd.cs.findbugs.classfile.engine.bcel.CFGFactory' maxMicrosecondsPerInvocation='39517' standardDeviationMicrosecondsPerInvocation='3011' invocations='351'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='836' totalMilliseconds='297' name='edu.umd.cs.findbugs.classfile.engine.bcel.JavaClassAnalysisEngine' maxMicrosecondsPerInvocation='61003' standardDeviationMicrosecondsPerInvocation='4139' invocations='356'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='3922' totalMilliseconds='286' name='edu.umd.cs.findbugs.detect.CheckTypeQualifiers' maxMicrosecondsPerInvocation='185710' standardDeviationMicrosecondsPerInvocation='21937' invocations='73'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='886' totalMilliseconds='259' name='edu.umd.cs.findbugs.detect.EqualsOperandShouldHaveClassCompatibleWithThis' maxMicrosecondsPerInvocation='86155' standardDeviationMicrosecondsPerInvocation='7093' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='600' totalMilliseconds='249' name='edu.umd.cs.findbugs.classfile.engine.bcel.MethodGenFactory' maxMicrosecondsPerInvocation='88481' standardDeviationMicrosecondsPerInvocation='4855' invocations='415'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='208' totalMilliseconds='231' name='edu.umd.cs.findbugs.util.TopologicalSort' maxMicrosecondsPerInvocation='22181' standardDeviationMicrosecondsPerInvocation='1296' invocations='1114'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='703' totalMilliseconds='206' name='edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical' maxMicrosecondsPerInvocation='32258' standardDeviationMicrosecondsPerInvocation='3109' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='686' totalMilliseconds='201' name='edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase' maxMicrosecondsPerInvocation='21114' standardDeviationMicrosecondsPerInvocation='2614' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='636' totalMilliseconds='190' name='edu.umd.cs.findbugs.detect.FindRefComparison$SpecialTypeAnalysis' maxMicrosecondsPerInvocation='21723' standardDeviationMicrosecondsPerInvocation='2480' invocations='300'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='627' totalMilliseconds='183' name='edu.umd.cs.findbugs.detect.CalledMethods' maxMicrosecondsPerInvocation='18108' standardDeviationMicrosecondsPerInvocation='2267' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='369' totalMilliseconds='108' name='edu.umd.cs.findbugs.detect.ExplicitSerialization' maxMicrosecondsPerInvocation='28211' standardDeviationMicrosecondsPerInvocation='2435' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='342' totalMilliseconds='100' name='edu.umd.cs.findbugs.detect.NoteSuppressedWarnings' maxMicrosecondsPerInvocation='26828' standardDeviationMicrosecondsPerInvocation='2055' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='332' totalMilliseconds='97' name='edu.umd.cs.findbugs.detect.ReflectiveClasses' maxMicrosecondsPerInvocation='13940' standardDeviationMicrosecondsPerInvocation='1334' invocations='293'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1303' totalMilliseconds='95' name='edu.umd.cs.findbugs.detect.FindOpenStream' maxMicrosecondsPerInvocation='43508' standardDeviationMicrosecondsPerInvocation='5869' invocations='73'></ClassProfile></FindBugsProfile></FindBugsSummary><ClassFeatures></ClassFeatures><History></History></BugCollection>