Content of file spotbugsXml.xml

<?xml version="1.0" encoding="utf-8"?>
<BugCollection sequence='0' release='' analysisTimestamp='1682312502863' version='4.5.0' timestamp='1682311918970'><Project projectName='Mistral Examples HistogramViewer'><Jar>/var/jenkins_home/jobs/Mistral_Metrics/workspace/modules/Examples/HistogramViewerExample/target/classes</Jar><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/it/tidalwave/image/image-core/1.0-ALPHA-8-SNAPSHOT/image-core-1.0-ALPHA-8-SNAPSHOT.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/it/tidalwave/thesefoolishthings/it-tidalwave-util/3.2-ALPHA-13/it-tidalwave-util-3.2-ALPHA-13.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/com/drewnoakes/metadata-extractor/2.18.0/metadata-extractor-2.18.0.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/com/adobe/xmp/xmpcore/6.1.11/xmpcore-6.1.11.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/it/tidalwave/image/image-operations/1.0-ALPHA-8-SNAPSHOT/image-operations-1.0-ALPHA-8-SNAPSHOT.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/it/tidalwave/image/image-contributions/1.0-ALPHA-8-SNAPSHOT/image-contributions-1.0-ALPHA-8-SNAPSHOT.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/it/tidalwave/image/image-renderer/1.0-ALPHA-8-SNAPSHOT/image-renderer-1.0-ALPHA-8-SNAPSHOT.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/org/swinglabs/swing-layout/1.0.3/swing-layout-1.0.3.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_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/Mistral_Metrics/workspace@tmp/repository/com/github/spotbugs/spotbugs-annotations/3.1.9/spotbugs-annotations-3.1.9.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar</AuxClasspathEntry><AuxClasspathEntry>/var/jenkins_home/jobs/Mistral_Metrics/workspace@tmp/repository/org/projectlombok/lombok/1.18.22/lombok-1.18.22.jar</AuxClasspathEntry><SrcDir>/var/jenkins_home/jobs/Mistral_Metrics/workspace/modules/Examples/HistogramViewerExample/src/main/java</SrcDir><WrkDir>/var/jenkins_home/jobs/Mistral_Metrics/workspace/modules/Examples/HistogramViewerExample/target</WrkDir></Project><BugInstance instanceOccurrenceNum='0' instanceHash='af479b8c4836076ffc30358e784aacf0' cweid='396' rank='20' abbrev='REC' category='STYLE' priority='3' 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.mistral.example.AbstractViewerPanel.loadImage(String)</LongMessage><Class classname='it.tidalwave.mistral.example.AbstractViewerPanel' primary='true'><SourceLine classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='53' end='164' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java'><Message>At AbstractViewerPanel.java:[lines 53-164]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.AbstractViewerPanel</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.AbstractViewerPanel' signature='(Ljava/lang/String;)V' name='loadImage' primary='true'><SourceLine endBytecode='205' classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='66' end='83' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.AbstractViewerPanel.loadImage(String)</Message></Method><SourceLine endBytecode='57' classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='78' end='78' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java' startBytecode='57' primary='true'><Message>At AbstractViewerPanel.java:[line 78]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='7f6f48299346df57d8712b4f51b711e7' 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.mistral.example.AbstractViewerPanel$1 could be refactored into a named _static_ inner class</LongMessage><Class role='CLASS_ANONYMOUS' classname='it.tidalwave.mistral.example.AbstractViewerPanel$1'><SourceLine classname='it.tidalwave.mistral.example.AbstractViewerPanel$1' start='97' end='109' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java'><Message>At AbstractViewerPanel.java:[lines 97-109]</Message></SourceLine><Message>Anonymous class it.tidalwave.mistral.example.AbstractViewerPanel$1</Message></Class><Class classname='it.tidalwave.mistral.example.AbstractViewerPanel' primary='true'><SourceLine classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='53' end='164' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java'><Message>At AbstractViewerPanel.java:[lines 53-164]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.AbstractViewerPanel</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.AbstractViewerPanel' signature='(Ljava/lang/Object;)V' name='loadImage' primary='true'><SourceLine endBytecode='208' classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='91' end='156' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.AbstractViewerPanel.loadImage(Object)</Message></Method><SourceLine endBytecode='48' classname='it.tidalwave.mistral.example.AbstractViewerPanel' start='96' end='96' sourcepath='it/tidalwave/mistral/example/AbstractViewerPanel.java' sourcefile='AbstractViewerPanel.java' startBytecode='48' primary='true'><Message>At AbstractViewerPanel.java:[line 96]</Message></SourceLine><LocalVariable role='LOCAL_VARIABLE_NAMED' pc='52' name='overlay' register='3'><Message>Local variable named overlay</Message></LocalVariable></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='9d2a96e1193cfd77a91788a4369db4f7' rank='20' abbrev='BC' category='STYLE' priority='3' type='BC_UNCONFIRMED_CAST' instanceOccurrenceMax='0'><ShortMessage>Unchecked/unconfirmed cast</ShortMessage><LongMessage>Unchecked/unconfirmed cast from java.awt.Graphics to java.awt.Graphics2D in it.tidalwave.mistral.example.histogramviewer.HistogramGrid.paint(Graphics, Rectangle)</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='39' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>At HistogramGrid.java:[lines 39-117]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramGrid</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' signature='(Ljava/awt/Graphics;Ljava/awt/Rectangle;)V' name='paint' primary='true'><SourceLine endBytecode='83' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='92' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.HistogramGrid.paint(Graphics, Rectangle)</Message></Method><Type role='TYPE_FOUND' descriptor='Ljava/awt/Graphics;'><SourceLine classname='java.awt.Graphics' start='118' end='1265' sourcepath='java/awt/Graphics.java' sourcefile='Graphics.java'><Message>At Graphics.java:[lines 118-1265]</Message></SourceLine><Message>Actual type java.awt.Graphics</Message></Type><Type role='TYPE_EXPECTED' descriptor='Ljava/awt/Graphics2D;'><SourceLine classname='java.awt.Graphics2D' start='421' end='506' sourcepath='java/awt/Graphics2D.java' sourcefile='Graphics2D.java'><Message>At Graphics2D.java:[lines 421-506]</Message></SourceLine><Message>Expected java.awt.Graphics2D</Message></Type><LocalVariable role='LOCAL_VARIABLE_VALUE_OF' pc='0' name='g' register='1'><Message>Value loaded from g</Message></LocalVariable><SourceLine endBytecode='1' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='92' end='92' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='1' primary='true'><Message>At HistogramGrid.java:[line 92]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='e9f2c871dae4f0b79d34a5ad8ad7537c' cweid='374' rank='18' abbrev='EI2' category='MALICIOUS_CODE' priority='2' type='EI_EXPOSE_REP2' instanceOccurrenceMax='0'><ShortMessage>May expose internal representation by incorporating reference to mutable object</ShortMessage><LongMessage>it.tidalwave.mistral.example.histogramviewer.HistogramGrid.sethistogramPlotter(XYPlotter) may expose internal representation by storing an externally mutable object into HistogramGrid.histogramPlotter</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='39' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>At HistogramGrid.java:[lines 39-117]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramGrid</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' signature='(Lit/tidalwave/mistral/example/histogramviewer/XYPlotter;)V' name='sethistogramPlotter' primary='true'><SourceLine endBytecode='61' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='54' end='55' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.HistogramGrid.sethistogramPlotter(XYPlotter)</Message></Method><Field isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' signature='Lit/tidalwave/mistral/example/histogramviewer/XYPlotter;' name='histogramPlotter' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>In HistogramGrid.java</Message></SourceLine><Message>Field it.tidalwave.mistral.example.histogramviewer.HistogramGrid.histogramPlotter</Message></Field><LocalVariable role='LOCAL_VARIABLE_NAMED' pc='2' name='histogramPlotter' register='1'><Message>Local variable named histogramPlotter</Message></LocalVariable><SourceLine endBytecode='2' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='54' end='54' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='2' primary='true'><Message>At HistogramGrid.java:[line 54]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='9e6d1dffa34bb41f8b80769206321f03' rank='20' abbrev='UwF' category='STYLE' priority='3' type='UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR' instanceOccurrenceMax='0'><ShortMessage>Field not initialized in constructor but dereferenced without null check</ShortMessage><LongMessage>HistogramGrid.histogramPlotter not initialized in constructor and dereferenced in it.tidalwave.mistral.example.histogramviewer.HistogramGrid.paint(Graphics, Rectangle)</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='39' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>At HistogramGrid.java:[lines 39-117]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramGrid</Message></Class><Field isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' signature='Lit/tidalwave/mistral/example/histogramviewer/XYPlotter;' name='histogramPlotter' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>In HistogramGrid.java</Message></SourceLine><Message>Field it.tidalwave.mistral.example.histogramviewer.HistogramGrid.histogramPlotter</Message></Field><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' signature='(Ljava/awt/Graphics;Ljava/awt/Rectangle;)V' name='paint' primary='true'><SourceLine endBytecode='378' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='92' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.HistogramGrid.paint(Graphics, Rectangle)</Message></Method><SourceLine endBytecode='58' classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='103' end='103' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java' startBytecode='58' primary='true'><Message>At HistogramGrid.java:[line 103]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='80e548617160f01ba16c944f37a073ab' 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 clear is called from constructor new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer().</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='43' end='182' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>At HistogramRenderer.java:[lines 43-182]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramRenderer</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='180' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='70' end='76' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer()</Message></Method><String value='clear'><Message>Value clear</Message></String><SourceLine endBytecode='91' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='75' end='75' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='91' primary='true'><Message>At HistogramRenderer.java:[line 75]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='849d5f3641d72c0f6249acc1de9f93c1' 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 getBackground is called from constructor new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer().</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='43' end='182' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>At HistogramRenderer.java:[lines 43-182]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramRenderer</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='180' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='70' end='76' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer()</Message></Method><String value='getBackground'><Message>Value getBackground</Message></String><SourceLine endBytecode='63' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='71' end='71' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='63' primary='true'><Message>At HistogramRenderer.java:[line 71]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='907864cbf7f30a6650f47073a06845d0' 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 getForeground is called from constructor new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer().</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='43' end='182' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>At HistogramRenderer.java:[lines 43-182]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramRenderer</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' signature='()V' name='&lt;init&gt;' primary='true'><SourceLine endBytecode='180' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='70' end='76' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='0'></SourceLine><Message>In method new it.tidalwave.mistral.example.histogramviewer.HistogramRenderer()</Message></Method><String value='getForeground'><Message>Value getForeground</Message></String><SourceLine endBytecode='63' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='71' end='71' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java' startBytecode='63' primary='true'><Message>At HistogramRenderer.java:[line 71]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='fda42bc78fced7237ee86099817fe8d2' rank='19' abbrev='Se' category='BAD_PRACTICE' priority='3' type='SE_BAD_FIELD' instanceOccurrenceMax='0'><ShortMessage>Non-transient non-serializable instance field in serializable class</ShortMessage><LongMessage>Class it.tidalwave.mistral.example.histogramviewer.HistogramRenderer defines non-transient non-serializable instance field grid</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' start='43' end='182' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>At HistogramRenderer.java:[lines 43-182]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.HistogramRenderer</Message></Class><Field isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' signature='Lit/tidalwave/mistral/example/histogramviewer/HistogramGrid;' name='grid' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>In HistogramRenderer.java</Message></SourceLine><Message>Field it.tidalwave.mistral.example.histogramviewer.HistogramRenderer.grid</Message></Field><Type role='TYPE_FOUND' descriptor='Lit/tidalwave/mistral/example/histogramviewer/HistogramGrid;'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.HistogramGrid' start='39' end='117' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' sourcefile='HistogramGrid.java'><Message>At HistogramGrid.java:[lines 39-117]</Message></SourceLine><Message>Actual type it.tidalwave.mistral.example.histogramviewer.HistogramGrid</Message></Type><SourceLine synthetic='true' classname='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer' sourcepath='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' sourcefile='HistogramRenderer.java'><Message>In HistogramRenderer.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='c5304806797bc55c96d900574d0b4c22' rank='19' abbrev='SW' category='BAD_PRACTICE' priority='3' type='SW_SWING_METHODS_INVOKED_IN_SWING_THREAD' instanceOccurrenceMax='0'><ShortMessage>Certain swing methods need to be invoked in Swing thread</ShortMessage><LongMessage>Call to swing method in it.tidalwave.mistral.example.histogramviewer.Main.main(String[]) needs to be performed in Swing event thread</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.Main' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.Main' start='49' end='137' sourcepath='it/tidalwave/mistral/example/histogramviewer/Main.java' sourcefile='Main.java'><Message>At Main.java:[lines 49-137]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.Main</Message></Class><Method isStatic='true' classname='it.tidalwave.mistral.example.histogramviewer.Main' signature='([Ljava/lang/String;)V' name='main' primary='true'><SourceLine endBytecode='604' classname='it.tidalwave.mistral.example.histogramviewer.Main' start='56' end='137' sourcepath='it/tidalwave/mistral/example/histogramviewer/Main.java' sourcefile='Main.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.Main.main(String[])</Message></Method><SourceLine endBytecode='155' classname='it.tidalwave.mistral.example.histogramviewer.Main' start='82' end='82' sourcepath='it/tidalwave/mistral/example/histogramviewer/Main.java' sourcefile='Main.java' startBytecode='155' primary='true'><Message>At Main.java:[line 82]</Message></SourceLine><SourceLine role='SOURCE_LINE_ANOTHER_INSTANCE' endBytecode='247' classname='it.tidalwave.mistral.example.histogramviewer.Main' start='121' end='121' sourcepath='it/tidalwave/mistral/example/histogramviewer/Main.java' sourcefile='Main.java' startBytecode='247'><Message>Another occurrence at Main.java:[line 121]</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='a51823607a11c396eff0b6c49d107156' cweid='476' rank='11' abbrev='NP' category='CORRECTNESS' priority='2' type='NP_NULL_ON_SOME_PATH_EXCEPTION' instanceOccurrenceMax='0'><ShortMessage>Possible null pointer dereference in method on exception path</ShortMessage><LongMessage>Possible null pointer dereference of g2 in it.tidalwave.mistral.example.histogramviewer.XYPlotter.paint(Graphics) on exception path</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='71' end='376' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java'><Message>At XYPlotter.java:[lines 71-376]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.XYPlotter</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' signature='(Ljava/awt/Graphics;)V' name='paint' primary='true'><SourceLine endBytecode='281' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='210' end='247' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.XYPlotter.paint(Graphics)</Message></Method><LocalVariable role='LOCAL_VARIABLE_VALUE_OF' pc='58' name='g2' register='2'><Message>Value loaded from g2</Message></LocalVariable><SourceLine role='SOURCE_LINE_DEREF' endBytecode='99' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='234' end='234' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='99' primary='true'><Message>Dereferenced at XYPlotter.java:[line 234]</Message></SourceLine><SourceLine role='SOURCE_LINE_NULL_VALUE' endBytecode='55' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='213' end='213' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='55'><Message>Null value at XYPlotter.java:[line 213]</Message></SourceLine><SourceLine role='SOURCE_LINE_KNOWN_NULL' endBytecode='61' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='217' end='217' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='61'><Message>Known null at XYPlotter.java:[line 217]</Message></SourceLine><Property name='edu.umd.cs.findbugs.detect.DoomedCodeWarningProperty.DOOMED_CODE' value='true'></Property><Property name='edu.umd.cs.findbugs.detect.NullDerefProperty.ALWAYS_ON_EXCEPTION_PATH' value='true'></Property><Property name='edu.umd.cs.findbugs.detect.NullDerefProperty.DEREFS_ARE_CLONED' value='true'></Property></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='c22a54dd628eeb1701e3ca1de56a2eb2' rank='19' abbrev='Se' category='BAD_PRACTICE' priority='3' type='SE_BAD_FIELD' instanceOccurrenceMax='0'><ShortMessage>Non-transient non-serializable instance field in serializable class</ShortMessage><LongMessage>Class it.tidalwave.mistral.example.histogramviewer.XYPlotter defines non-transient non-serializable instance field buffer</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='71' end='376' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java'><Message>At XYPlotter.java:[lines 71-376]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.XYPlotter</Message></Class><Field isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' signature='Ljava/awt/image/BufferedImage;' name='buffer' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java'><Message>In XYPlotter.java</Message></SourceLine><Message>Field it.tidalwave.mistral.example.histogramviewer.XYPlotter.buffer</Message></Field><Type role='TYPE_FOUND' descriptor='Ljava/awt/image/BufferedImage;'><SourceLine classname='java.awt.image.BufferedImage' start='71' end='1639' sourcepath='java/awt/image/BufferedImage.java' sourcefile='BufferedImage.java'><Message>At BufferedImage.java:[lines 71-1639]</Message></SourceLine><Message>Actual type java.awt.image.BufferedImage</Message></Type><SourceLine synthetic='true' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java'><Message>In XYPlotter.java</Message></SourceLine></BugInstance><BugInstance instanceOccurrenceNum='0' instanceHash='5a988fb672e0cbcb6188c75e8ca12966' 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.mistral.example.histogramviewer.XYPlotter.plot(Graphics)</LongMessage><Class classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' primary='true'><SourceLine classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='71' end='376' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java'><Message>At XYPlotter.java:[lines 71-376]</Message></SourceLine><Message>In class it.tidalwave.mistral.example.histogramviewer.XYPlotter</Message></Class><Method isStatic='false' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' signature='(Ljava/awt/Graphics;)V' name='plot' primary='true'><SourceLine endBytecode='1329' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='268' end='376' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='0'></SourceLine><Message>In method it.tidalwave.mistral.example.histogramviewer.XYPlotter.plot(Graphics)</Message></Method><SourceLine endBytecode='53' classname='it.tidalwave.mistral.example.histogramviewer.XYPlotter' start='278' end='278' sourcepath='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' sourcefile='XYPlotter.java' startBytecode='53' primary='true'><Message>At XYPlotter.java:[line 278]</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='CORRECTNESS'><Description>Correctness</Description></BugCategory><BugCategory category='STYLE'><Description>Dodgy code</Description></BugCategory><BugPattern abbrev='UwF' category='STYLE' type='UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR'><ShortDescription>Field not initialized in constructor but dereferenced without null check</ShortDescription><Details>

  &lt;p&gt; This field is never initialized within any constructor, and is therefore could be null after
the object is constructed. Elsewhere, it is loaded and dereferenced without a null check.
This could be a either an error or a questionable design, since
it means a null pointer exception will be generated if that field is dereferenced
before being initialized.
&lt;/p&gt;

    </Details></BugPattern><BugPattern cweid='374' abbrev='EI2' category='MALICIOUS_CODE' type='EI_EXPOSE_REP2'><ShortDescription>May expose internal representation by incorporating reference to mutable object</ShortDescription><Details>

  &lt;p&gt; This code stores a reference to an externally mutable object into the
  internal representation of the object.&amp;nbsp;
   If instances
   are accessed by untrusted code, and unchecked changes to
   the mutable object would compromise security or other
   important properties, you will need to do something different.
  Storing a copy of the object is better approach in many situations.&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 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='BC' category='STYLE' type='BC_UNCONFIRMED_CAST'><ShortDescription>Unchecked/unconfirmed cast</ShortDescription><Details>

&lt;p&gt;
This cast is unchecked, and not all instances of the type casted from can be cast to
the type it is being cast to. Check that your program logic ensures that this
cast will not fail.
&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='SW' category='BAD_PRACTICE' type='SW_SWING_METHODS_INVOKED_IN_SWING_THREAD'><ShortDescription>Certain swing methods need to be invoked in Swing thread</ShortDescription><Details>

&lt;p&gt;(&lt;a href="http://web.archive.org/web/20090526170426/http://java.sun.com/developer/JDCTechTips/2003/tt1208.html"&gt;From JDC Tech Tip&lt;/a&gt;): The Swing methods
show(), setVisible(), and pack() will create the associated peer for the frame.
With the creation of the peer, the system creates the event dispatch thread.
This makes things problematic because the event dispatch thread could be notifying
listeners while pack and validate are still processing. This situation could result in
two threads going through the Swing component-based GUI -- it's a serious flaw that
could result in deadlocks or other related threading issues. A pack call causes
components to be realized. As they are being realized (that is, not necessarily
visible), they could trigger listener notification on the event dispatch thread.&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='NP' category='CORRECTNESS' type='NP_NULL_ON_SOME_PATH_EXCEPTION'><ShortDescription>Possible null pointer dereference in method on exception path</ShortDescription><Details> &lt;p&gt; A reference value which is null on some exception control path is dereferenced here.&amp;nbsp; This may lead to a &lt;code&gt;NullPointerException&lt;/code&gt; when the code is executed.&amp;nbsp; Note that because SpotBugs currently does not prune infeasible exception paths, this may be a false warning.&lt;/p&gt; &lt;p&gt; Also note that SpotBugs considers the default case of a switch statement to be an exception path, since the default case is often infeasible.&lt;/p&gt; </Details></BugPattern><BugCode abbrev='REC'><Description>RuntimeException capture</Description></BugCode><BugCode abbrev='BC'><Description>Bad casts of object references</Description></BugCode><BugCode abbrev='Se'><Description>Incorrect definition of Serializable class</Description></BugCode><BugCode cweid='476' abbrev='NP'><Description>Null pointer dereference</Description></BugCode><BugCode abbrev='SW'><Description>Swing coding rules</Description></BugCode><BugCode abbrev='UwF'><Description>Unwritten field</Description></BugCode><BugCode abbrev='MC'><Description>Dangerous call to overridable method</Description></BugCode><BugCode abbrev='UCF'><Description>Useless control flow</Description></BugCode><BugCode abbrev='SIC'><Description>Inner class could be made static</Description></BugCode><BugCode abbrev='EI2'><Description>Storing reference to mutable object</Description></BugCode><Errors missingClasses='0' errors='0'></Errors><FindBugsSummary num_packages='2' total_classes='8' priority_2='2' priority_3='11' total_size='379' clock_seconds='13.88' referenced_classes='322' vm_version='11.0.18+10' total_bugs='13' java_version='11.0.18' gc_seconds='0.63' alloc_mbytes='512.00' cpu_seconds='9.87' peak_mbytes='185.21' timestamp='Mon, 24 Apr 2023 04:51:58 +0000'><FileStats path='it/tidalwave/mistral/example/AbstractViewerPanel.java' size='61' bugHash='10b4e01e118e42185b31120266b1d16d' bugCount='2'></FileStats><FileStats path='it/tidalwave/mistral/example/histogramviewer/HistogramGrid.java' size='33' bugHash='6edb471c52b3e9f4b219eba80faa08e0' bugCount='3'></FileStats><FileStats path='it/tidalwave/mistral/example/histogramviewer/HistogramRenderer.java' size='78' bugHash='33e1a7e9cfa123b8a3dac23eb95e8a47' bugCount='4'></FileStats><FileStats path='it/tidalwave/mistral/example/histogramviewer/Main.java' size='64' bugHash='e7ebf9b9ba8028b78bfa5ca8b26db298' bugCount='1'></FileStats><FileStats path='it/tidalwave/mistral/example/histogramviewer/XYPlotter.java' size='143' bugHash='1ccf7692f60938289f0abc7540e0a9bb' bugCount='3'></FileStats><PackageStats package='it.tidalwave.mistral.example' total_bugs='2' priority_3='2' total_size='61' total_types='2'><ClassStats bugs='2' size='50' priority_3='2' interface='false' sourceFile='AbstractViewerPanel.java' class='it.tidalwave.mistral.example.AbstractViewerPanel'></ClassStats><ClassStats bugs='0' size='11' interface='false' sourceFile='AbstractViewerPanel.java' class='it.tidalwave.mistral.example.AbstractViewerPanel$1'></ClassStats></PackageStats><PackageStats package='it.tidalwave.mistral.example.histogramviewer' total_bugs='11' priority_2='2' priority_3='9' total_size='318' total_types='6'><ClassStats bugs='3' size='33' priority_2='1' priority_3='2' interface='false' sourceFile='HistogramGrid.java' class='it.tidalwave.mistral.example.histogramviewer.HistogramGrid'></ClassStats><ClassStats bugs='4' size='78' priority_3='4' interface='false' sourceFile='HistogramRenderer.java' class='it.tidalwave.mistral.example.histogramviewer.HistogramRenderer'></ClassStats><ClassStats bugs='1' size='43' priority_3='1' interface='false' sourceFile='Main.java' class='it.tidalwave.mistral.example.histogramviewer.Main'></ClassStats><ClassStats bugs='0' size='21' interface='false' sourceFile='Main.java' class='it.tidalwave.mistral.example.histogramviewer.Main$1'></ClassStats><ClassStats bugs='3' size='131' priority_2='1' priority_3='2' interface='false' sourceFile='XYPlotter.java' class='it.tidalwave.mistral.example.histogramviewer.XYPlotter'></ClassStats><ClassStats bugs='0' size='12' interface='false' sourceFile='XYPlotter.java' class='it.tidalwave.mistral.example.histogramviewer.XYPlotter$DataBundle'></ClassStats></PackageStats><FindBugsProfile><ClassProfile avgMicrosecondsPerInvocation='1635' totalMilliseconds='2897' name='edu.umd.cs.findbugs.classfile.engine.ClassInfoAnalysisEngine' maxMicrosecondsPerInvocation='153959' standardDeviationMicrosecondsPerInvocation='6161' invocations='1772'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='3778' totalMilliseconds='1216' name='edu.umd.cs.findbugs.detect.FieldItemSummary' maxMicrosecondsPerInvocation='59266' standardDeviationMicrosecondsPerInvocation='8755' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='2359' totalMilliseconds='759' name='edu.umd.cs.findbugs.detect.FindNoSideEffectMethods' maxMicrosecondsPerInvocation='26697' standardDeviationMicrosecondsPerInvocation='5014' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='370' totalMilliseconds='659' name='edu.umd.cs.findbugs.classfile.engine.ClassDataAnalysisEngine' maxMicrosecondsPerInvocation='28206' standardDeviationMicrosecondsPerInvocation='1772' invocations='1779'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='902' totalMilliseconds='653' name='edu.umd.cs.findbugs.OpcodeStack$JumpInfoFactory' maxMicrosecondsPerInvocation='29151' standardDeviationMicrosecondsPerInvocation='2884' invocations='724'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1174' totalMilliseconds='378' name='edu.umd.cs.findbugs.detect.NoteDirectlyRelevantTypeQualifiers' maxMicrosecondsPerInvocation='28598' standardDeviationMicrosecondsPerInvocation='3466' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='212' totalMilliseconds='367' name='edu.umd.cs.findbugs.util.TopologicalSort' maxMicrosecondsPerInvocation='73470' standardDeviationMicrosecondsPerInvocation='2176' invocations='1724'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1102' totalMilliseconds='355' name='edu.umd.cs.findbugs.detect.FunctionsThatMightBeMistakenForProcedures' maxMicrosecondsPerInvocation='75614' standardDeviationMicrosecondsPerInvocation='5789' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='1014' totalMilliseconds='326' name='edu.umd.cs.findbugs.detect.CalledMethods' maxMicrosecondsPerInvocation='24886' standardDeviationMicrosecondsPerInvocation='3209' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='753' totalMilliseconds='306' name='edu.umd.cs.findbugs.classfile.engine.bcel.JavaClassAnalysisEngine' maxMicrosecondsPerInvocation='32832' standardDeviationMicrosecondsPerInvocation='2920' invocations='407'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='5828' totalMilliseconds='262' name='edu.umd.cs.findbugs.ba.npe.NullDerefAndRedundantComparisonFinder' maxMicrosecondsPerInvocation='112272' standardDeviationMicrosecondsPerInvocation='16992' invocations='45'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='5622' totalMilliseconds='258' name='edu.umd.cs.findbugs.classfile.engine.bcel.ValueNumberDataflowFactory' maxMicrosecondsPerInvocation='82470' standardDeviationMicrosecondsPerInvocation='15328' invocations='46'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='777' totalMilliseconds='250' name='edu.umd.cs.findbugs.detect.OverridingEqualsNotSymmetrical' maxMicrosecondsPerInvocation='69454' standardDeviationMicrosecondsPerInvocation='4673' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='756' totalMilliseconds='243' name='edu.umd.cs.findbugs.detect.BuildObligationPolicyDatabase' maxMicrosecondsPerInvocation='17369' standardDeviationMicrosecondsPerInvocation='2282' invocations='322'></ClassProfile><ClassProfile avgMicrosecondsPerInvocation='710' totalMilliseconds='228' name='edu.umd.cs.findbugs.detect.ExplicitSerialization' maxMicrosecondsPerInvocation='47622' standardDeviationMicrosecondsPerInvocation='3996' invocations='322'></ClassProfile></FindBugsProfile></FindBugsSummary><ClassFeatures></ClassFeatures><History></History></BugCollection>