SpotBugs Report

Project Information

Project: JFreeChart

SpotBugs version: 4.8.3

Code analyzed:



Metrics

64673 lines of code analyzed, in 661 classes, in 40 packages.

Metric Total Density*
High Priority Warnings 122 1.89
Medium Priority Warnings 625 9.66
Total Warnings 747 11.55

(* Defects per Thousand lines of non-commenting source statements)



Contents

Summary

Warning Type Number
Bad practice Warnings 262
Correctness Warnings 11
Internationalization Warnings 1
Malicious code vulnerability Warnings 359
Multithreaded correctness Warnings 11
Performance Warnings 78
Dodgy code Warnings 25
Total 747

Warnings

Click on a warning row to see full context information.

Bad practice Warnings

Code Warning
CN org.jfree.chart.labels.AbstractPieItemLabelGenerator defines clone() but doesn't implement Cloneable
CN org.jfree.chart.urls.CustomPieURLGenerator.clone() does not call super.clone()
CN org.jfree.data.time.TimePeriodValues.clone() does not call super.clone()
CT Exception thrown in class org.jfree.chart.ChartPanel at new org.jfree.chart.ChartPanel(JFreeChart, int, int, int, int, int, int, boolean, boolean, boolean, boolean, boolean, boolean) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ChartPanel at new org.jfree.chart.ChartPanel(JFreeChart, int, int, int, int, int, int, boolean, boolean, boolean, boolean, boolean, boolean, boolean) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.PolarChartPanel at new org.jfree.chart.PolarChartPanel(JFreeChart) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.PolarChartPanel at new org.jfree.chart.PolarChartPanel(JFreeChart, boolean) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.annotations.XYPolygonAnnotation at new org.jfree.chart.annotations.XYPolygonAnnotation(double[], Stroke, Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.annotations.XYPolygonAnnotation at new org.jfree.chart.annotations.XYPolygonAnnotation(double[], Stroke, Paint, Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.axis.CompassFormat at new org.jfree.chart.axis.CompassFormat(String, String, String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.axis.CompassFormat at new org.jfree.chart.axis.CompassFormat(String[]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.axis.DateTickUnit at new org.jfree.chart.axis.DateTickUnit(DateTickUnitType, int, DateFormat) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.axis.DateTickUnit at new org.jfree.chart.axis.DateTickUnit(DateTickUnitType, int, DateTickUnitType, int, DateFormat) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.date.SpreadsheetDate at new org.jfree.chart.date.SpreadsheetDate(int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.date.SpreadsheetDate at new org.jfree.chart.date.SpreadsheetDate(int, int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.labels.HighLowItemLabelGenerator at new org.jfree.chart.labels.HighLowItemLabelGenerator() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.labels.HighLowItemLabelGenerator at new org.jfree.chart.labels.HighLowItemLabelGenerator(DateFormat, NumberFormat) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.labels.StandardCrosshairLabelGenerator at new org.jfree.chart.labels.StandardCrosshairLabelGenerator() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.labels.StandardCrosshairLabelGenerator at new org.jfree.chart.labels.StandardCrosshairLabelGenerator(String, NumberFormat) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.CategoryPlot at new org.jfree.chart.plot.CategoryPlot() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.CategoryPlot at new org.jfree.chart.plot.CategoryPlot(CategoryDataset, CategoryAxis, ValueAxis, CategoryItemRenderer) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.CompassPlot at new org.jfree.chart.plot.CompassPlot() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.CompassPlot at new org.jfree.chart.plot.CompassPlot(ValueDataset) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.Marker at new org.jfree.chart.plot.Marker(Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.Marker at new org.jfree.chart.plot.Marker(Paint, Stroke, Paint, Stroke, float) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.XYPlot at new org.jfree.chart.plot.XYPlot() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.XYPlot at new org.jfree.chart.plot.XYPlot(XYDataset, ValueAxis, ValueAxis, XYItemRenderer) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.dial.StandardDialScale at new org.jfree.chart.plot.dial.StandardDialScale() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.plot.dial.StandardDialScale at new org.jfree.chart.plot.dial.StandardDialScale(double, double, double, double, double, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.GrayPaintScale at new org.jfree.chart.renderer.GrayPaintScale(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.GrayPaintScale at new org.jfree.chart.renderer.GrayPaintScale(double, double, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.LookupPaintScale at new org.jfree.chart.renderer.LookupPaintScale() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.LookupPaintScale at new org.jfree.chart.renderer.LookupPaintScale(double, double, Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.xy.XYBubbleRenderer at new org.jfree.chart.renderer.xy.XYBubbleRenderer() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.xy.XYBubbleRenderer at new org.jfree.chart.renderer.xy.XYBubbleRenderer(int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.xy.XYSplineRenderer at new org.jfree.chart.renderer.xy.XYSplineRenderer() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.xy.XYSplineRenderer at new org.jfree.chart.renderer.xy.XYSplineRenderer(int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.renderer.xy.XYSplineRenderer at new org.jfree.chart.renderer.xy.XYSplineRenderer(int, XYSplineRenderer$FillType) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.text.TextFragment at new org.jfree.chart.text.TextFragment(String, Font, Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.text.TextFragment at new org.jfree.chart.text.TextFragment(String, Font, Paint, float) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.text.TextLine at new org.jfree.chart.text.TextLine(String, Font, Paint) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.ImageTitle at new org.jfree.chart.title.ImageTitle(Image) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.ImageTitle at new org.jfree.chart.title.ImageTitle(Image, int, int, RectangleEdge, HorizontalAlignment, VerticalAlignment, RectangleInsets) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.ImageTitle at new org.jfree.chart.title.ImageTitle(Image, RectangleEdge, HorizontalAlignment, VerticalAlignment) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.TextTitle at new org.jfree.chart.title.TextTitle(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.TextTitle at new org.jfree.chart.title.TextTitle(String, Font) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.title.TextTitle at new org.jfree.chart.title.TextTitle(String, Font, Paint, RectangleEdge, HorizontalAlignment, VerticalAlignment, RectangleInsets) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ui.FontChooserPanel at new org.jfree.chart.ui.FontChooserPanel(Font) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ui.RectangleInsets at new org.jfree.chart.ui.RectangleInsets(double, double, double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ui.RectangleInsets at new org.jfree.chart.ui.RectangleInsets(UnitType, double, double, double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ui.StandardGradientPaintTransformer at new org.jfree.chart.ui.StandardGradientPaintTransformer() will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.chart.ui.StandardGradientPaintTransformer at new org.jfree.chart.ui.StandardGradientPaintTransformer(GradientPaintTransformType) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.Range at new org.jfree.data.Range(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.category.DefaultIntervalCategoryDataset at new org.jfree.data.category.DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][], Number[][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.category.DefaultIntervalCategoryDataset at new org.jfree.data.category.DefaultIntervalCategoryDataset(String[], Number[][], Number[][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.category.DefaultIntervalCategoryDataset at new org.jfree.data.category.DefaultIntervalCategoryDataset(Number[][], Number[][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.function.NormalDistributionFunction2D at new org.jfree.data.function.NormalDistributionFunction2D(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.general.DefaultHeatMapDataset at new org.jfree.data.general.DefaultHeatMapDataset(int, int, double, double, double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCCategoryDataset at new org.jfree.data.jdbc.JDBCCategoryDataset(String, String, String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCCategoryDataset at new org.jfree.data.jdbc.JDBCCategoryDataset(Connection) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCCategoryDataset at new org.jfree.data.jdbc.JDBCCategoryDataset(Connection, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCPieDataset at new org.jfree.data.jdbc.JDBCPieDataset(String, String, String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCPieDataset at new org.jfree.data.jdbc.JDBCPieDataset(Connection) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCPieDataset at new org.jfree.data.jdbc.JDBCPieDataset(Connection, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCXYDataset at new org.jfree.data.jdbc.JDBCXYDataset(String, String, String, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.jdbc.JDBCXYDataset at new org.jfree.data.jdbc.JDBCXYDataset(Connection, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.statistics.HistogramBin at new org.jfree.data.statistics.HistogramBin(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.statistics.SimpleHistogramBin at new org.jfree.data.statistics.SimpleHistogramBin(double, double) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.statistics.SimpleHistogramBin at new org.jfree.data.statistics.SimpleHistogramBin(double, double, boolean, boolean) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Month at new org.jfree.data.time.Month(int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Month at new org.jfree.data.time.Month(int, Year) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Quarter at new org.jfree.data.time.Quarter(int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Quarter at new org.jfree.data.time.Quarter(int, Year) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.SimpleTimePeriod at new org.jfree.data.time.SimpleTimePeriod(long, long) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.SimpleTimePeriod at new org.jfree.data.time.SimpleTimePeriod(Date, Date) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Week at new org.jfree.data.time.Week(int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Week at new org.jfree.data.time.Week(int, Year) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.time.Year at new org.jfree.data.time.Year(int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.xy.DefaultWindDataset at new org.jfree.data.xy.DefaultWindDataset(List, Object[][][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.xy.DefaultWindDataset at new org.jfree.data.xy.DefaultWindDataset(String[], Object[][][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
CT Exception thrown in class org.jfree.data.xy.DefaultWindDataset at new org.jfree.data.xy.DefaultWindDataset(Object[][][]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.
Co org.jfree.data.KeyedValueComparator.compare(Object, Object) incorrectly handles double value
DE org.jfree.chart.axis.PeriodAxis.createInstance(Class, Date, TimeZone, Locale) might ignore java.lang.Exception
DE org.jfree.chart.axis.PeriodAxisLabelInfo.createInstance(Date, TimeZone, Locale) might ignore java.lang.Exception
DE org.jfree.data.time.RegularTimePeriod.createInstance(Class, Date, TimeZone, Locale) might ignore java.lang.Exception
HE org.jfree.chart.ChartRenderingInfo defines equals and uses Object.hashCode()
HE org.jfree.chart.JFreeChart defines equals and uses Object.hashCode()
HE org.jfree.chart.LegendItem defines equals and uses Object.hashCode()
HE org.jfree.chart.LegendItemCollection defines equals and uses Object.hashCode()
HE org.jfree.chart.LegendRenderingOrder defines equals and uses Object.hashCode()
HE org.jfree.chart.PaintMap defines equals and uses Object.hashCode()
HE org.jfree.chart.StandardChartTheme defines equals and uses Object.hashCode()
HE org.jfree.chart.StrokeMap defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.CategoryAnchor defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.CategoryLabelWidthType defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.CyclicNumberAxis defines equals but not hashCode
HE org.jfree.chart.axis.CyclicNumberAxis$CycleBoundTick inherits equals and uses Object.hashCode()
HE org.jfree.chart.axis.DateAxis$DefaultTimeline defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.DateTickMarkPosition defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.DateTickUnitType defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.ExtendedCategoryAxis defines equals but not hashCode
HE org.jfree.chart.axis.LogTick inherits equals and uses Object.hashCode()
HE org.jfree.chart.axis.ModuloAxis defines equals but not hashCode
HE org.jfree.chart.axis.MonthDateFormat defines equals but not hashCode
HE org.jfree.chart.axis.NumberTick inherits equals and uses Object.hashCode()
HE org.jfree.chart.axis.NumberTickUnitSource defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.QuarterDateFormat defines equals but not hashCode
HE org.jfree.chart.axis.SymbolAxis defines equals but not hashCode
HE org.jfree.chart.axis.Tick defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.TickType defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.TickUnits defines equals and uses Object.hashCode()
HE org.jfree.chart.axis.ValueTick defines equals and uses Object.hashCode()
HE org.jfree.chart.block.AbstractBlock defines equals and uses Object.hashCode()
HE org.jfree.chart.block.BlockBorder defines equals and uses Object.hashCode()
HE org.jfree.chart.block.BlockContainer defines equals and uses Object.hashCode()
HE org.jfree.chart.block.BorderArrangement defines equals and uses Object.hashCode()
HE org.jfree.chart.block.CenterArrangement defines equals and uses Object.hashCode()
HE org.jfree.chart.block.ColorBlock defines equals and uses Object.hashCode()
HE org.jfree.chart.block.ColumnArrangement defines equals and uses Object.hashCode()
HE org.jfree.chart.block.FlowArrangement defines equals and uses Object.hashCode()
HE org.jfree.chart.block.GridArrangement defines equals and uses Object.hashCode()
HE org.jfree.chart.block.LabelBlock defines equals and uses Object.hashCode()
HE org.jfree.chart.block.LineBorder defines equals and uses Object.hashCode()
HE org.jfree.chart.entity.CategoryItemEntity defines equals but not hashCode
HE org.jfree.chart.entity.LegendItemEntity defines equals but not hashCode
HE org.jfree.chart.entity.StandardEntityCollection defines equals and uses Object.hashCode()
HE org.jfree.chart.entity.XYAnnotationEntity defines equals but not hashCode
HE org.jfree.chart.entity.XYItemEntity defines equals but not hashCode
HE org.jfree.chart.labels.CustomXYToolTipGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.labels.ItemLabelAnchor defines equals and uses Object.hashCode()
HE org.jfree.chart.labels.ItemLabelPosition defines equals and uses Object.hashCode()
HE org.jfree.chart.labels.StandardPieSectionLabelGenerator defines equals but not hashCode
HE org.jfree.chart.labels.StandardXYZToolTipGenerator defines equals but not hashCode
HE org.jfree.chart.panel.CrosshairOverlay defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CategoryMarker defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CategoryPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CombinedDomainCategoryPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CombinedDomainXYPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CombinedRangeCategoryPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CombinedRangeXYPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.CompassPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.DefaultDrawingSupplier defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.FastScatterPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.IntervalMarker defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.Marker defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.MeterInterval defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.MeterPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.MultiplePiePlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PieLabelRecord defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PiePlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PiePlot3D defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.Plot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PlotRenderingInfo defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PolarAxisLocation defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.PolarPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.RingPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.SpiderWebPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.ThermometerPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.ValueMarker defines equals and uses Object.hashCode()
HE org.jfree.chart.plot.WaferMapPlot inherits equals and uses Object.hashCode()
HE org.jfree.chart.plot.XYPlot defines equals and uses Object.hashCode()
HE org.jfree.chart.renderer.AreaRendererEndType defines equals and uses Object.hashCode()
HE org.jfree.chart.renderer.DefaultPolarItemRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.LookupPaintScale defines equals and uses Object.hashCode()
HE org.jfree.chart.renderer.LookupPaintScale$PaintItem defines equals and uses Object.hashCode()
HE org.jfree.chart.renderer.Outlier defines equals and uses Object.hashCode()
HE org.jfree.chart.renderer.category.AreaRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.BarRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.BoxAndWhiskerRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.CategoryStepRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.GanttRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.GroupedStackedBarRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.LineAndShapeRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.MinMaxCategoryRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.ScatterRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.StackedAreaRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.category.StackedBarRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.CandlestickRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.ClusteredXYBarRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.DeviationRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.HighLowRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.StackedXYAreaRenderer2 defines equals but not hashCode
HE org.jfree.chart.renderer.xy.StandardXYItemRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.VectorRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYAreaRenderer2 defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYBarRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYBlockRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYBoxAndWhiskerRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYBubbleRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYDifferenceRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYDotRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYErrorRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYLineAndShapeRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYShapeRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYSplineRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.XYStepAreaRenderer defines equals but not hashCode
HE org.jfree.chart.renderer.xy.YIntervalRenderer defines equals but not hashCode
HE org.jfree.chart.title.CompositeTitle defines equals but not hashCode
HE org.jfree.chart.title.ImageTitle defines equals but not hashCode
HE org.jfree.chart.title.LegendTitle defines equals but not hashCode
HE org.jfree.chart.title.PaintScaleLegend defines equals but not hashCode
HE org.jfree.chart.ui.Size2D defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.CustomCategoryURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.CustomPieURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.CustomXYURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.StandardPieURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.StandardXYURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.urls.TimeSeriesURLGenerator defines equals and uses Object.hashCode()
HE org.jfree.chart.util.LogFormat defines equals but not hashCode
HE org.jfree.chart.util.XYCoordinateType defines equals and uses Object.hashCode()
HE org.jfree.data.KeyToGroupMap defines equals and uses Object.hashCode()
HE org.jfree.data.KeyedObject defines equals and uses Object.hashCode()
HE org.jfree.data.KeyedValuesItemKey defines equals and uses Object.hashCode()
HE org.jfree.data.category.CategoryToPieDataset defines equals and uses Object.hashCode()
HE org.jfree.data.category.DefaultIntervalCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.category.SlidingCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.gantt.SlidingGanttCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.gantt.Task defines equals and uses Object.hashCode()
HE org.jfree.data.gantt.TaskSeries defines equals but not hashCode
HE org.jfree.data.gantt.TaskSeriesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.gantt.XYTaskDataset defines equals and uses Object.hashCode()
HE org.jfree.data.general.DatasetGroup defines equals and uses Object.hashCode()
HE org.jfree.data.general.DefaultHeatMapDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.BoxAndWhiskerItem defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.DefaultBoxAndWhiskerXYDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.DefaultMultiValueCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.DefaultStatisticalCategoryDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.HistogramBin defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.HistogramDataset defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.MeanAndStandardDeviation defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.SimpleHistogramBin defines equals and uses Object.hashCode()
HE org.jfree.data.statistics.SimpleHistogramDataset defines equals and uses Object.hashCode()
HE org.jfree.data.time.TimePeriodValuesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.time.TimeTableXYDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.CategoryTableXYDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.DefaultHighLowDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.DefaultOHLCDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.DefaultWindDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.MatrixSeries defines equals but not hashCode
HE org.jfree.data.xy.OHLCDataItem defines equals and uses Object.hashCode()
HE org.jfree.data.xy.VectorSeriesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.xy.WindDataItem defines equals and uses Object.hashCode()
HE org.jfree.data.xy.XIntervalSeriesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.xy.XYBarDataset defines equals and uses Object.hashCode()
HE org.jfree.data.xy.XYInterval defines equals and uses Object.hashCode()
HE org.jfree.data.xy.XYIntervalSeriesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.xy.YInterval defines equals and uses Object.hashCode()
HE org.jfree.data.xy.YIntervalSeriesCollection defines equals and uses Object.hashCode()
HE org.jfree.data.xy.YWithXInterval defines equals and uses Object.hashCode()
PA Primitive field org.jfree.chart.title.Title.visible is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
PA Primitive field org.jfree.chart.ui.Size2D.height is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
PA Primitive field org.jfree.chart.ui.Size2D.width is public and set from inside the class, which makes it too exposed. Consider making it private to limit external accessibility.
RV Exceptional return value of java.io.File.delete() ignored in org.jfree.chart.servlet.ChartDeleter.valueUnbound(HttpSessionBindingEvent)
RV Exceptional return value of java.io.File.delete() ignored in org.jfree.chart.servlet.DisplayChart.service(HttpServletRequest, HttpServletResponse)
RV Exceptional return value of java.io.File.mkdirs() ignored in org.jfree.chart.servlet.ServletUtilities.createTempDir()
RV org.jfree.data.time.Day.compareTo(Object) negates the return value of org.jfree.chart.date.SerialDate.compare(SerialDate)
Se Class org.jfree.chart.axis.LogTick defines non-transient non-serializable instance field attributedLabel
SnVI org.jfree.chart.StandardChartTheme is Serializable; consider declaring a serialVersionUID
SnVI org.jfree.chart.annotations.XYDataImageAnnotation is Serializable; consider declaring a serialVersionUID
SnVI org.jfree.chart.plot.Crosshair is Serializable; consider declaring a serialVersionUID
SnVI org.jfree.chart.renderer.DefaultPolarItemRenderer is Serializable; consider declaring a serialVersionUID

Correctness Warnings

Code Warning
Eq org.jfree.chart.entity.AxisEntity overrides equals in ChartEntity and may not be symmetric
Eq org.jfree.chart.entity.JFreeChartEntity overrides equals in ChartEntity and may not be symmetric
Eq org.jfree.chart.entity.PlotEntity overrides equals in ChartEntity and may not be symmetric
Eq org.jfree.chart.entity.TitleEntity overrides equals in ChartEntity and may not be symmetric
Eq org.jfree.chart.util.PaintList overrides equals in AbstractObjectList and may not be symmetric
Eq org.jfree.chart.util.ShapeList overrides equals in AbstractObjectList and may not be symmetric
FL Using floating-point loop counters can lead to unexpected behavior.
NP Possible null pointer dereference of JDBCXYDataset.rows in org.jfree.data.jdbc.JDBCXYDataset.executeQuery(Connection, String)
RCN Nullcheck of plotArea at line 80 of value previously dereferenced in org.jfree.chart.needle.WindNeedle.drawNeedle(Graphics2D, Rectangle2D, Point2D, double)
UR manualTickUnitValue isn't initialized in org.jfree.chart.editor.DefaultLogAxisEditor.createTickUnitPanel() when invoked from constructor for superclass
UR manualTickUnitValue isn't initialized in org.jfree.chart.editor.DefaultNumberAxisEditor.createTickUnitPanel() when invoked from constructor for superclass

Internationalization Warnings

Code Warning
Dm Found reliance on default encoding in org.jfree.chart.ChartPanel.saveAsSVG(File): new java.io.FileWriter(File)

Malicious code vulnerability Warnings

Code Warning
EI org.jfree.chart.ChartFrame.getChartPanel() may expose internal representation by returning ChartFrame.chartPanel
EI org.jfree.chart.ChartMouseEvent.getChart() may expose internal representation by returning ChartMouseEvent.chart
EI org.jfree.chart.ChartMouseEvent.getEntity() may expose internal representation by returning ChartMouseEvent.entity
EI org.jfree.chart.ChartMouseEvent.getTrigger() may expose internal representation by returning ChartMouseEvent.trigger
EI org.jfree.chart.ChartPanel.getAnchor() may expose internal representation by returning ChartPanel.anchor
EI org.jfree.chart.ChartPanel.getChart() may expose internal representation by returning ChartPanel.chart
EI org.jfree.chart.ChartPanel.getChartRenderingInfo() may expose internal representation by returning ChartPanel.info
EI org.jfree.chart.ChartPanel.getPopupMenu() may expose internal representation by returning ChartPanel.popup
EI org.jfree.chart.ChartRenderingInfo.getChartArea() may expose internal representation by returning ChartRenderingInfo.chartArea
EI org.jfree.chart.ChartRenderingInfo.getEntityCollection() may expose internal representation by returning ChartRenderingInfo.entities
EI org.jfree.chart.ChartRenderingInfo.getPlotInfo() may expose internal representation by returning ChartRenderingInfo.plotInfo
EI org.jfree.chart.JFreeChart.getBackgroundImage() may expose internal representation by returning JFreeChart.backgroundImage
EI org.jfree.chart.JFreeChart.getCategoryPlot() may expose internal representation by returning JFreeChart.plot
EI org.jfree.chart.JFreeChart.getPlot() may expose internal representation by returning JFreeChart.plot
EI org.jfree.chart.JFreeChart.getRenderingHints() may expose internal representation by returning JFreeChart.renderingHints
EI org.jfree.chart.JFreeChart.getTitle() may expose internal representation by returning JFreeChart.title
EI org.jfree.chart.JFreeChart.getXYPlot() may expose internal representation by returning JFreeChart.plot
EI org.jfree.chart.LegendItem.getAttributedLabel() may expose internal representation by returning LegendItem.attributedLabel
EI org.jfree.chart.LegendItem.getDataset() may expose internal representation by returning LegendItem.dataset
EI org.jfree.chart.annotations.XYDataImageAnnotation.getImage() may expose internal representation by returning XYDataImageAnnotation.image
EI org.jfree.chart.annotations.XYImageAnnotation.getImage() may expose internal representation by returning XYImageAnnotation.image
EI org.jfree.chart.annotations.XYTitleAnnotation.getTitle() may expose internal representation by returning XYTitleAnnotation.title
EI org.jfree.chart.axis.Axis.getPlot() may expose internal representation by returning Axis.plot
EI org.jfree.chart.axis.AxisCollection.getAxesAtBottom() may expose internal representation by returning AxisCollection.axesAtBottom
EI org.jfree.chart.axis.AxisCollection.getAxesAtLeft() may expose internal representation by returning AxisCollection.axesAtLeft
EI org.jfree.chart.axis.AxisCollection.getAxesAtRight() may expose internal representation by returning AxisCollection.axesAtRight
EI org.jfree.chart.axis.AxisCollection.getAxesAtTop() may expose internal representation by returning AxisCollection.axesAtTop
EI org.jfree.chart.axis.AxisState.getTicks() may expose internal representation by returning AxisState.ticks
EI org.jfree.chart.axis.CategoryTick.getLabel() may expose internal representation by returning CategoryTick.label
EI org.jfree.chart.axis.DateAxis.getDateFormatOverride() may expose internal representation by returning DateAxis.dateFormatOverride
EI org.jfree.chart.axis.DateAxis.getTickUnit() may expose internal representation by returning DateAxis.tickUnit
EI org.jfree.chart.axis.DateAxis.getTimeZone() may expose internal representation by returning DateAxis.timeZone
EI org.jfree.chart.axis.DateTick.getDate() may expose internal representation by returning DateTick.date
EI org.jfree.chart.axis.LogAxis.getNumberFormatOverride() may expose internal representation by returning LogAxis.numberFormatOverride
EI org.jfree.chart.axis.LogTick.getAttributedLabel() may expose internal representation by returning LogTick.attributedLabel
EI org.jfree.chart.axis.NumberAxis.getMarkerBand() may expose internal representation by returning NumberAxis.markerBand
EI org.jfree.chart.axis.NumberAxis.getNumberFormatOverride() may expose internal representation by returning NumberAxis.numberFormatOverride
EI org.jfree.chart.axis.PeriodAxis.getLabelInfo() may expose internal representation by returning PeriodAxis.labelInfo
EI org.jfree.chart.axis.PeriodAxis.getTimeZone() may expose internal representation by returning PeriodAxis.timeZone
EI org.jfree.chart.block.AbstractBlock.getBounds() may expose internal representation by returning AbstractBlock.bounds
EI org.jfree.chart.block.BlockContainer.getArrangement() may expose internal representation by returning BlockContainer.arrangement
EI org.jfree.chart.block.BlockResult.getEntityCollection() may expose internal representation by returning BlockResult.entities
EI org.jfree.chart.entity.AxisEntity.getAxis() may expose internal representation by returning AxisEntity.axis
EI org.jfree.chart.entity.JFreeChartEntity.getChart() may expose internal representation by returning JFreeChartEntity.chart
EI org.jfree.chart.entity.LegendItemEntity.getDataset() may expose internal representation by returning LegendItemEntity.dataset
EI org.jfree.chart.entity.PlotEntity.getPlot() may expose internal representation by returning PlotEntity.plot
EI org.jfree.chart.entity.TitleEntity.getTitle() may expose internal representation by returning TitleEntity.title
EI org.jfree.chart.event.AnnotationChangeEvent.getAnnotation() may expose internal representation by returning AnnotationChangeEvent.annotation
EI org.jfree.chart.event.AxisChangeEvent.getAxis() may expose internal representation by returning AxisChangeEvent.axis
EI org.jfree.chart.event.ChartChangeEvent.getChart() may expose internal representation by returning ChartChangeEvent.chart
EI org.jfree.chart.event.ChartProgressEvent.getChart() may expose internal representation by returning ChartProgressEvent.chart
EI org.jfree.chart.event.MarkerChangeEvent.getMarker() may expose internal representation by returning MarkerChangeEvent.marker
EI org.jfree.chart.event.PlotChangeEvent.getPlot() may expose internal representation by returning PlotChangeEvent.plot
EI org.jfree.chart.event.TitleChangeEvent.getTitle() may expose internal representation by returning TitleChangeEvent.title
EI org.jfree.chart.labels.AbstractCategoryItemLabelGenerator.getDateFormat() may expose internal representation by returning AbstractCategoryItemLabelGenerator.dateFormat
EI org.jfree.chart.labels.AbstractCategoryItemLabelGenerator.getNumberFormat() may expose internal representation by returning AbstractCategoryItemLabelGenerator.numberFormat
EI org.jfree.chart.labels.AbstractPieItemLabelGenerator.getNumberFormat() may expose internal representation by returning AbstractPieItemLabelGenerator.numberFormat
EI org.jfree.chart.labels.AbstractPieItemLabelGenerator.getPercentFormat() may expose internal representation by returning AbstractPieItemLabelGenerator.percentFormat
EI org.jfree.chart.labels.AbstractXYItemLabelGenerator.getXDateFormat() may expose internal representation by returning AbstractXYItemLabelGenerator.xDateFormat
EI org.jfree.chart.labels.AbstractXYItemLabelGenerator.getXFormat() may expose internal representation by returning AbstractXYItemLabelGenerator.xFormat
EI org.jfree.chart.labels.AbstractXYItemLabelGenerator.getYDateFormat() may expose internal representation by returning AbstractXYItemLabelGenerator.yDateFormat
EI org.jfree.chart.labels.AbstractXYItemLabelGenerator.getYFormat() may expose internal representation by returning AbstractXYItemLabelGenerator.yFormat
EI org.jfree.chart.labels.BubbleXYItemLabelGenerator.getZDateFormat() may expose internal representation by returning BubbleXYItemLabelGenerator.zDateFormat
EI org.jfree.chart.labels.BubbleXYItemLabelGenerator.getZFormat() may expose internal representation by returning BubbleXYItemLabelGenerator.zFormat
EI org.jfree.chart.labels.StandardCrosshairLabelGenerator.getNumberFormat() may expose internal representation by returning StandardCrosshairLabelGenerator.numberFormat
EI org.jfree.chart.labels.StandardXYZToolTipGenerator.getZDateFormat() may expose internal representation by returning StandardXYZToolTipGenerator.zDateFormat
EI org.jfree.chart.labels.StandardXYZToolTipGenerator.getZFormat() may expose internal representation by returning StandardXYZToolTipGenerator.zFormat
EI org.jfree.chart.needle.MeterNeedle.getTransform() may expose internal representation by returning MeterNeedle.transform
EI org.jfree.chart.plot.CategoryPlot.getAnnotations() may expose internal representation by returning CategoryPlot.annotations
EI org.jfree.chart.plot.CategoryPlot.getFixedDomainAxisSpace() may expose internal representation by returning CategoryPlot.fixedDomainAxisSpace
EI org.jfree.chart.plot.CategoryPlot.getFixedLegendItems() may expose internal representation by returning CategoryPlot.fixedLegendItems
EI org.jfree.chart.plot.CategoryPlot.getFixedRangeAxisSpace() may expose internal representation by returning CategoryPlot.fixedRangeAxisSpace
EI org.jfree.chart.plot.CategoryPlot.getLegendItems() may expose internal representation by returning CategoryPlot.fixedLegendItems
EI org.jfree.chart.plot.CompassPlot.getDatasets() may expose internal representation by returning CompassPlot.datasets
EI org.jfree.chart.plot.CrosshairState.getAnchor() may expose internal representation by returning CrosshairState.anchor
EI org.jfree.chart.plot.FastScatterPlot.getData() may expose internal representation by returning FastScatterPlot.data
EI org.jfree.chart.plot.FastScatterPlot.getDomainAxis() may expose internal representation by returning FastScatterPlot.domainAxis
EI org.jfree.chart.plot.FastScatterPlot.getRangeAxis() may expose internal representation by returning FastScatterPlot.rangeAxis
EI org.jfree.chart.plot.MeterPlot.getTickLabelFormat() may expose internal representation by returning MeterPlot.tickLabelFormat
EI org.jfree.chart.plot.MultiplePiePlot.getPieChart() may expose internal representation by returning MultiplePiePlot.pieChart
EI org.jfree.chart.plot.PieLabelRecord.getLabel() may expose internal representation by returning PieLabelRecord.label
EI org.jfree.chart.plot.PiePlot.getLabelDistributor() may expose internal representation by returning PiePlot.labelDistributor
EI org.jfree.chart.plot.PiePlotState.getExplodedPieArea() may expose internal representation by returning PiePlotState.explodedPieArea
EI org.jfree.chart.plot.PiePlotState.getLinkArea() may expose internal representation by returning PiePlotState.linkArea
EI org.jfree.chart.plot.PiePlotState.getPieArea() may expose internal representation by returning PiePlotState.pieArea
EI org.jfree.chart.plot.Plot.getBackgroundImage() may expose internal representation by returning Plot.backgroundImage
EI org.jfree.chart.plot.Plot.getChart() may expose internal representation by returning Plot.chart
EI org.jfree.chart.plot.Plot.getParent() may expose internal representation by returning Plot.parent
EI org.jfree.chart.plot.PlotRenderingInfo.getDataArea() may expose internal representation by returning PlotRenderingInfo.dataArea
EI org.jfree.chart.plot.PlotRenderingInfo.getOwner() may expose internal representation by returning PlotRenderingInfo.owner
EI org.jfree.chart.plot.PlotRenderingInfo.getPlotArea() may expose internal representation by returning PlotRenderingInfo.plotArea
EI org.jfree.chart.plot.PlotState.getSharedAxisStates() may expose internal representation by returning PlotState.sharedAxisStates
EI org.jfree.chart.plot.PolarPlot.getFixedLegendItems() may expose internal representation by returning PolarPlot.fixedLegendItems
EI org.jfree.chart.plot.PolarPlot.getLegendItems() may expose internal representation by returning PolarPlot.fixedLegendItems
EI org.jfree.chart.plot.ThermometerPlot.getRangeAxis() may expose internal representation by returning ThermometerPlot.rangeAxis
EI org.jfree.chart.plot.WaferMapPlot.getDataset() may expose internal representation by returning WaferMapPlot.dataset
EI org.jfree.chart.plot.XYPlot.getFixedDomainAxisSpace() may expose internal representation by returning XYPlot.fixedDomainAxisSpace
EI org.jfree.chart.plot.XYPlot.getFixedLegendItems() may expose internal representation by returning XYPlot.fixedLegendItems
EI org.jfree.chart.plot.XYPlot.getFixedRangeAxisSpace() may expose internal representation by returning XYPlot.fixedRangeAxisSpace
EI org.jfree.chart.plot.XYPlot.getLegendItems() may expose internal representation by returning XYPlot.fixedLegendItems
EI org.jfree.chart.plot.XYPlot.getQuadrantOrigin() may expose internal representation by returning XYPlot.quadrantOrigin
EI org.jfree.chart.plot.dial.DialLayerChangeEvent.getDialLayer() may expose internal representation by returning DialLayerChangeEvent.layer
EI org.jfree.chart.plot.dial.DialPlot.getBackground() may expose internal representation by returning DialPlot.background
EI org.jfree.chart.plot.dial.DialPlot.getCap() may expose internal representation by returning DialPlot.cap
EI org.jfree.chart.plot.dial.DialValueIndicator.getNumberFormat() may expose internal representation by returning DialValueIndicator.formatter
EI org.jfree.chart.plot.dial.StandardDialScale.getTickLabelFormatter() may expose internal representation by returning StandardDialScale.tickLabelFormatter
EI org.jfree.chart.renderer.DefaultPolarItemRenderer.getPlot() may expose internal representation by returning DefaultPolarItemRenderer.plot
EI org.jfree.chart.renderer.Outlier.getPoint() may expose internal representation by returning Outlier.point
EI org.jfree.chart.renderer.OutlierList.getAveragedOutlier() may expose internal representation by returning OutlierList.averagedOutlier
EI org.jfree.chart.renderer.RendererState.getInfo() may expose internal representation by returning RendererState.info
EI org.jfree.chart.renderer.WaferMapRenderer.getPlot() may expose internal representation by returning WaferMapRenderer.plot
EI org.jfree.chart.renderer.category.AbstractCategoryItemRenderer.getPlot() may expose internal representation by returning AbstractCategoryItemRenderer.plot
EI org.jfree.chart.renderer.category.CategoryItemRendererState.getCrosshairState() may expose internal representation by returning CategoryItemRendererState.crosshairState
EI org.jfree.chart.renderer.xy.AbstractXYItemRenderer.getPlot() may expose internal representation by returning AbstractXYItemRenderer.plot
EI org.jfree.chart.resources.JFreeChartResources.getContents() may expose internal representation by returning JFreeChartResources.CONTENTS
EI org.jfree.chart.text.TextBox.getTextBlock() may expose internal representation by returning TextBox.textBlock
EI org.jfree.chart.title.CompositeTitle.getContainer() may expose internal representation by returning CompositeTitle.container
EI org.jfree.chart.title.ImageTitle.getImage() may expose internal representation by returning ImageTitle.image
EI org.jfree.chart.title.LegendItemBlockContainer.getDataset() may expose internal representation by returning LegendItemBlockContainer.dataset
EI org.jfree.chart.title.LegendTitle.getItemContainer() may expose internal representation by returning LegendTitle.items
EI org.jfree.chart.title.LegendTitle.getSources() may expose internal representation by returning LegendTitle.sources
EI org.jfree.chart.title.LegendTitle.getWrapper() may expose internal representation by returning LegendTitle.wrapper
EI org.jfree.chart.title.PaintScaleLegend.getAxis() may expose internal representation by returning PaintScaleLegend.axis
EI org.jfree.chart.ui.PaintSample.getPreferredSize() may expose internal representation by returning PaintSample.preferredSize
EI org.jfree.chart.ui.StrokeSample.getPreferredSize() may expose internal representation by returning StrokeSample.preferredSize
EI org.jfree.data.gantt.TaskSeriesCollection.getColumnKeys() may expose internal representation by returning TaskSeriesCollection.keys
EI org.jfree.data.gantt.TaskSeriesCollection.getRowKeys() may expose internal representation by returning TaskSeriesCollection.data
EI org.jfree.data.gantt.XYTaskDataset.getTasks() may expose internal representation by returning XYTaskDataset.underlying
EI org.jfree.data.general.DatasetChangeEvent.getDataset() may expose internal representation by returning DatasetChangeEvent.dataset
EI org.jfree.data.resources.DataPackageResources.getContents() may expose internal representation by returning DataPackageResources.CONTENTS
EI org.jfree.data.resources.DataPackageResources_de.getContents() may expose internal representation by returning DataPackageResources_de.CONTENTS
EI org.jfree.data.resources.DataPackageResources_es.getContents() may expose internal representation by returning DataPackageResources_es.CONTENTS
EI org.jfree.data.resources.DataPackageResources_fr.getContents() may expose internal representation by returning DataPackageResources_fr.CONTENTS
EI org.jfree.data.resources.DataPackageResources_pl.getContents() may expose internal representation by returning DataPackageResources_pl.CONTENTS
EI org.jfree.data.resources.DataPackageResources_ru.getContents() may expose internal representation by returning DataPackageResources_ru.CONTENTS
EI org.jfree.data.time.Day.getSerialDate() may expose internal representation by returning Day.serialDate
EI org.jfree.data.xml.CategoryDatasetHandler.getDataset() may expose internal representation by returning CategoryDatasetHandler.dataset
EI org.jfree.data.xml.PieDatasetHandler.getDataset() may expose internal representation by returning PieDatasetHandler.dataset
EI org.jfree.data.xml.RootHandler.getSubHandlers() may expose internal representation by returning RootHandler.subHandlers
EI org.jfree.data.xy.OHLCDataItem.getDate() may expose internal representation by returning OHLCDataItem.date
EI2 new org.jfree.chart.ChartMouseEvent(JFreeChart, MouseEvent, ChartEntity) may expose internal representation by storing an externally mutable object into ChartMouseEvent.chart
EI2 new org.jfree.chart.ChartMouseEvent(JFreeChart, MouseEvent, ChartEntity) may expose internal representation by storing an externally mutable object into ChartMouseEvent.entity
EI2 new org.jfree.chart.ChartMouseEvent(JFreeChart, MouseEvent, ChartEntity) may expose internal representation by storing an externally mutable object into ChartMouseEvent.trigger
EI2 org.jfree.chart.ChartPanel.setChart(JFreeChart) may expose internal representation by storing an externally mutable object into ChartPanel.chart
EI2 org.jfree.chart.ChartPanel.setPopupMenu(JPopupMenu) may expose internal representation by storing an externally mutable object into ChartPanel.popup
EI2 new org.jfree.chart.ChartRenderingInfo(EntityCollection) may expose internal representation by storing an externally mutable object into ChartRenderingInfo.entities
EI2 org.jfree.chart.ChartRenderingInfo.setEntityCollection(EntityCollection) may expose internal representation by storing an externally mutable object into ChartRenderingInfo.entities
EI2 new org.jfree.chart.ChartTransferable(JFreeChart, int, int, int, int, int, int, boolean) may expose internal representation by storing an externally mutable object into ChartTransferable.chart
EI2 new org.jfree.chart.JFreeChart(String, Font, Plot, boolean) may expose internal representation by storing an externally mutable object into JFreeChart.plot
EI2 org.jfree.chart.JFreeChart.setBackgroundImage(Image) may expose internal representation by storing an externally mutable object into JFreeChart.backgroundImage
EI2 org.jfree.chart.JFreeChart.setRenderingHints(RenderingHints) may expose internal representation by storing an externally mutable object into JFreeChart.renderingHints
EI2 org.jfree.chart.JFreeChart.setTitle(TextTitle) may expose internal representation by storing an externally mutable object into JFreeChart.title
EI2 new org.jfree.chart.LegendItem(AttributedString, String, String, String, boolean, Shape, boolean, Paint, boolean, Paint, Stroke, boolean, Shape, Stroke, Paint) may expose internal representation by storing an externally mutable object into LegendItem.attributedLabel
EI2 org.jfree.chart.LegendItem.setDataset(Dataset) may expose internal representation by storing an externally mutable object into LegendItem.dataset
EI2 new org.jfree.chart.annotations.XYDataImageAnnotation(Image, double, double, double, double, boolean) may expose internal representation by storing an externally mutable object into XYDataImageAnnotation.image
EI2 new org.jfree.chart.annotations.XYImageAnnotation(double, double, Image, RectangleAnchor) may expose internal representation by storing an externally mutable object into XYImageAnnotation.image
EI2 new org.jfree.chart.annotations.XYTitleAnnotation(double, double, Title, RectangleAnchor) may expose internal representation by storing an externally mutable object into XYTitleAnnotation.title
EI2 org.jfree.chart.axis.Axis.setPlot(Plot) may expose internal representation by storing an externally mutable object into Axis.plot
EI2 org.jfree.chart.axis.AxisState.setTicks(List) may expose internal representation by storing an externally mutable object into AxisState.ticks
EI2 new org.jfree.chart.axis.CategoryTick(Comparable, TextBlock, TextBlockAnchor, TextAnchor, double) may expose internal representation by storing an externally mutable object into CategoryTick.label
EI2 new org.jfree.chart.axis.DateAxis(String, TimeZone, Locale) may expose internal representation by storing an externally mutable object into DateAxis.timeZone
EI2 org.jfree.chart.axis.DateAxis.setDateFormatOverride(DateFormat) may expose internal representation by storing an externally mutable object into DateAxis.dateFormatOverride
EI2 org.jfree.chart.axis.DateAxis.setTickUnit(DateTickUnit, boolean, boolean) may expose internal representation by storing an externally mutable object into DateAxis.tickUnit
EI2 org.jfree.chart.axis.DateAxis.setTimeZone(TimeZone) may expose internal representation by storing an externally mutable object into DateAxis.timeZone
EI2 new org.jfree.chart.axis.DateTick(TickType, Date, String, TextAnchor, TextAnchor, double) may expose internal representation by storing an externally mutable object into DateTick.date
EI2 new org.jfree.chart.axis.DateTickUnit(DateTickUnitType, int, DateTickUnitType, int, DateFormat) may expose internal representation by storing an externally mutable object into DateTickUnit.formatter
EI2 org.jfree.chart.axis.LogAxis.setNumberFormatOverride(NumberFormat) may expose internal representation by storing an externally mutable object into LogAxis.numberFormatOverride
EI2 new org.jfree.chart.axis.LogTick(TickType, double, AttributedString, TextAnchor) may expose internal representation by storing an externally mutable object into LogTick.attributedLabel
EI2 new org.jfree.chart.axis.MarkerAxisBand(NumberAxis, double, double, double, double, Font) may expose internal representation by storing an externally mutable object into MarkerAxisBand.axis
EI2 new org.jfree.chart.axis.MonthDateFormat(TimeZone, Locale, int, boolean[], DateFormat) may expose internal representation by storing an externally mutable object into MonthDateFormat.showYear
EI2 new org.jfree.chart.axis.MonthDateFormat(TimeZone, Locale, int, boolean[], DateFormat) may expose internal representation by storing an externally mutable object into MonthDateFormat.yearFormatter
EI2 org.jfree.chart.axis.NumberAxis.setMarkerBand(MarkerAxisBand) may expose internal representation by storing an externally mutable object into NumberAxis.markerBand
EI2 org.jfree.chart.axis.NumberAxis.setNumberFormatOverride(NumberFormat) may expose internal representation by storing an externally mutable object into NumberAxis.numberFormatOverride
EI2 new org.jfree.chart.axis.NumberTickUnit(double, NumberFormat) may expose internal representation by storing an externally mutable object into NumberTickUnit.formatter
EI2 new org.jfree.chart.axis.NumberTickUnit(double, NumberFormat, int) may expose internal representation by storing an externally mutable object into NumberTickUnit.formatter
EI2 new org.jfree.chart.axis.NumberTickUnitSource(boolean, NumberFormat) may expose internal representation by storing an externally mutable object into NumberTickUnitSource.formatter
EI2 new org.jfree.chart.axis.PeriodAxis(String, RegularTimePeriod, RegularTimePeriod, TimeZone, Locale) may expose internal representation by storing an externally mutable object into PeriodAxis.timeZone
EI2 org.jfree.chart.axis.PeriodAxis.setLabelInfo(PeriodAxisLabelInfo[]) may expose internal representation by storing an externally mutable object into PeriodAxis.labelInfo
EI2 org.jfree.chart.axis.PeriodAxis.setTimeZone(TimeZone) may expose internal representation by storing an externally mutable object into PeriodAxis.timeZone
EI2 new org.jfree.chart.axis.QuarterDateFormat(TimeZone, String[], boolean) may expose internal representation by storing an externally mutable object into QuarterDateFormat.quarters
EI2 org.jfree.chart.block.AbstractBlock.setBounds(Rectangle2D) may expose internal representation by storing an externally mutable object into AbstractBlock.bounds
EI2 new org.jfree.chart.block.BlockContainer(Arrangement) may expose internal representation by storing an externally mutable object into BlockContainer.arrangement
EI2 org.jfree.chart.block.BlockContainer.setArrangement(Arrangement) may expose internal representation by storing an externally mutable object into BlockContainer.arrangement
EI2 org.jfree.chart.block.BlockResult.setEntityCollection(EntityCollection) may expose internal representation by storing an externally mutable object into BlockResult.entities
EI2 org.jfree.chart.block.BorderArrangement.add(Block, Object) may expose internal representation by storing an externally mutable object into BorderArrangement.bottomBlock
EI2 org.jfree.chart.block.BorderArrangement.add(Block, Object) may expose internal representation by storing an externally mutable object into BorderArrangement.centerBlock
EI2 org.jfree.chart.block.BorderArrangement.add(Block, Object) may expose internal representation by storing an externally mutable object into BorderArrangement.leftBlock
EI2 org.jfree.chart.block.BorderArrangement.add(Block, Object) may expose internal representation by storing an externally mutable object into BorderArrangement.rightBlock
EI2 org.jfree.chart.block.BorderArrangement.add(Block, Object) may expose internal representation by storing an externally mutable object into BorderArrangement.topBlock
EI2 new org.jfree.chart.entity.AxisEntity(Shape, Axis, String, String) may expose internal representation by storing an externally mutable object into AxisEntity.axis
EI2 new org.jfree.chart.entity.JFreeChartEntity(Shape, JFreeChart, String, String) may expose internal representation by storing an externally mutable object into JFreeChartEntity.chart
EI2 org.jfree.chart.entity.LegendItemEntity.setDataset(Dataset) may expose internal representation by storing an externally mutable object into LegendItemEntity.dataset
EI2 new org.jfree.chart.entity.PlotEntity(Shape, Plot, String, String) may expose internal representation by storing an externally mutable object into PlotEntity.plot
EI2 new org.jfree.chart.entity.TitleEntity(Shape, Title, String, String) may expose internal representation by storing an externally mutable object into TitleEntity.title
EI2 new org.jfree.chart.event.AnnotationChangeEvent(Object, Annotation) may expose internal representation by storing an externally mutable object into AnnotationChangeEvent.annotation
EI2 new org.jfree.chart.event.AxisChangeEvent(Axis) may expose internal representation by storing an externally mutable object into AxisChangeEvent.axis
EI2 new org.jfree.chart.event.ChartChangeEvent(Object, JFreeChart, ChartChangeEventType) may expose internal representation by storing an externally mutable object into ChartChangeEvent.chart
EI2 org.jfree.chart.event.ChartChangeEvent.setChart(JFreeChart) may expose internal representation by storing an externally mutable object into ChartChangeEvent.chart
EI2 new org.jfree.chart.event.ChartProgressEvent(Object, JFreeChart, int, int) may expose internal representation by storing an externally mutable object into ChartProgressEvent.chart
EI2 org.jfree.chart.event.ChartProgressEvent.setChart(JFreeChart) may expose internal representation by storing an externally mutable object into ChartProgressEvent.chart
EI2 new org.jfree.chart.event.MarkerChangeEvent(Marker) may expose internal representation by storing an externally mutable object into MarkerChangeEvent.marker
EI2 new org.jfree.chart.event.PlotChangeEvent(Plot) may expose internal representation by storing an externally mutable object into PlotChangeEvent.plot
EI2 new org.jfree.chart.event.TitleChangeEvent(Title) may expose internal representation by storing an externally mutable object into TitleChangeEvent.title
EI2 new org.jfree.chart.labels.BubbleXYItemLabelGenerator(String, DateFormat, DateFormat, DateFormat) may expose internal representation by storing an externally mutable object into BubbleXYItemLabelGenerator.zDateFormat
EI2 new org.jfree.chart.labels.BubbleXYItemLabelGenerator(String, NumberFormat, NumberFormat, NumberFormat) may expose internal representation by storing an externally mutable object into BubbleXYItemLabelGenerator.zFormat
EI2 new org.jfree.chart.labels.HighLowItemLabelGenerator(DateFormat, NumberFormat) may expose internal representation by storing an externally mutable object into HighLowItemLabelGenerator.dateFormatter
EI2 new org.jfree.chart.labels.HighLowItemLabelGenerator(DateFormat, NumberFormat) may expose internal representation by storing an externally mutable object into HighLowItemLabelGenerator.numberFormatter
EI2 new org.jfree.chart.labels.StandardCrosshairLabelGenerator(String, NumberFormat) may expose internal representation by storing an externally mutable object into StandardCrosshairLabelGenerator.numberFormat
EI2 new org.jfree.chart.labels.StandardXYZToolTipGenerator(String, DateFormat, DateFormat, DateFormat) may expose internal representation by storing an externally mutable object into StandardXYZToolTipGenerator.zDateFormat
EI2 new org.jfree.chart.labels.StandardXYZToolTipGenerator(String, NumberFormat, NumberFormat, NumberFormat) may expose internal representation by storing an externally mutable object into StandardXYZToolTipGenerator.zFormat
EI2 org.jfree.chart.plot.CategoryPlot.setFixedDomainAxisSpace(AxisSpace, boolean) may expose internal representation by storing an externally mutable object into CategoryPlot.fixedDomainAxisSpace
EI2 org.jfree.chart.plot.CategoryPlot.setFixedLegendItems(LegendItemCollection) may expose internal representation by storing an externally mutable object into CategoryPlot.fixedLegendItems
EI2 org.jfree.chart.plot.CategoryPlot.setFixedRangeAxisSpace(AxisSpace, boolean) may expose internal representation by storing an externally mutable object into CategoryPlot.fixedRangeAxisSpace
EI2 org.jfree.chart.plot.CrosshairState.setAnchor(Point2D) may expose internal representation by storing an externally mutable object into CrosshairState.anchor
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.fillPaintSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.outlinePaintSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.outlineStrokeSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.paintSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.shapeSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.strokeSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.outlinePaintSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.outlineStrokeSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.paintSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.shapeSequence
EI2 new org.jfree.chart.plot.DefaultDrawingSupplier(Paint[], Paint[], Stroke[], Stroke[], Shape[]) may expose internal representation by storing an externally mutable object into DefaultDrawingSupplier.strokeSequence
EI2 new org.jfree.chart.plot.FastScatterPlot(float[][], ValueAxis, ValueAxis) may expose internal representation by storing an externally mutable object into FastScatterPlot.data
EI2 new org.jfree.chart.plot.FastScatterPlot(float[][], ValueAxis, ValueAxis) may expose internal representation by storing an externally mutable object into FastScatterPlot.domainAxis
EI2 new org.jfree.chart.plot.FastScatterPlot(float[][], ValueAxis, ValueAxis) may expose internal representation by storing an externally mutable object into FastScatterPlot.rangeAxis
EI2 org.jfree.chart.plot.FastScatterPlot.setData(float[][]) may expose internal representation by storing an externally mutable object into FastScatterPlot.data
EI2 org.jfree.chart.plot.FastScatterPlot.setDomainAxis(ValueAxis) may expose internal representation by storing an externally mutable object into FastScatterPlot.domainAxis
EI2 org.jfree.chart.plot.FastScatterPlot.setRangeAxis(ValueAxis) may expose internal representation by storing an externally mutable object into FastScatterPlot.rangeAxis
EI2 org.jfree.chart.plot.MeterPlot.setTickLabelFormat(NumberFormat) may expose internal representation by storing an externally mutable object into MeterPlot.tickLabelFormat
EI2 org.jfree.chart.plot.MultiplePiePlot.setPieChart(JFreeChart) may expose internal representation by storing an externally mutable object into MultiplePiePlot.pieChart
EI2 new org.jfree.chart.plot.PieLabelRecord(Comparable, double, double, TextBox, double, double, double) may expose internal representation by storing an externally mutable object into PieLabelRecord.label
EI2 org.jfree.chart.plot.PiePlot.setLabelDistributor(AbstractPieLabelDistributor) may expose internal representation by storing an externally mutable object into PiePlot.labelDistributor
EI2 org.jfree.chart.plot.PiePlotState.setExplodedPieArea(Rectangle2D) may expose internal representation by storing an externally mutable object into PiePlotState.explodedPieArea
EI2 org.jfree.chart.plot.PiePlotState.setLinkArea(Rectangle2D) may expose internal representation by storing an externally mutable object into PiePlotState.linkArea
EI2 org.jfree.chart.plot.PiePlotState.setPieArea(Rectangle2D) may expose internal representation by storing an externally mutable object into PiePlotState.pieArea
EI2 org.jfree.chart.plot.Plot.setBackgroundImage(Image) may expose internal representation by storing an externally mutable object into Plot.backgroundImage
EI2 org.jfree.chart.plot.Plot.setChart(JFreeChart) may expose internal representation by storing an externally mutable object into Plot.chart
EI2 org.jfree.chart.plot.Plot.setParent(Plot) may expose internal representation by storing an externally mutable object into Plot.parent
EI2 new org.jfree.chart.plot.PlotRenderingInfo(ChartRenderingInfo) may expose internal representation by storing an externally mutable object into PlotRenderingInfo.owner
EI2 org.jfree.chart.plot.PlotRenderingInfo.setDataArea(Rectangle2D) may expose internal representation by storing an externally mutable object into PlotRenderingInfo.dataArea
EI2 org.jfree.chart.plot.PlotRenderingInfo.setPlotArea(Rectangle2D) may expose internal representation by storing an externally mutable object into PlotRenderingInfo.plotArea
EI2 org.jfree.chart.plot.PolarPlot.setFixedLegendItems(LegendItemCollection) may expose internal representation by storing an externally mutable object into PolarPlot.fixedLegendItems
EI2 org.jfree.chart.plot.ThermometerPlot.setRangeAxis(ValueAxis) may expose internal representation by storing an externally mutable object into ThermometerPlot.rangeAxis
EI2 org.jfree.chart.plot.ThermometerPlot.setValueFormat(NumberFormat) may expose internal representation by storing an externally mutable object into ThermometerPlot.valueFormat
EI2 new org.jfree.chart.plot.WaferMapPlot(WaferMapDataset, WaferMapRenderer) may expose internal representation by storing an externally mutable object into WaferMapPlot.dataset
EI2 new org.jfree.chart.plot.WaferMapPlot(WaferMapDataset, WaferMapRenderer) may expose internal representation by storing an externally mutable object into WaferMapPlot.renderer
EI2 org.jfree.chart.plot.WaferMapPlot.setDataset(WaferMapDataset) may expose internal representation by storing an externally mutable object into WaferMapPlot.dataset
EI2 org.jfree.chart.plot.WaferMapPlot.setRenderer(WaferMapRenderer) may expose internal representation by storing an externally mutable object into WaferMapPlot.renderer
EI2 org.jfree.chart.plot.XYPlot.setFixedDomainAxisSpace(AxisSpace, boolean) may expose internal representation by storing an externally mutable object into XYPlot.fixedDomainAxisSpace
EI2 org.jfree.chart.plot.XYPlot.setFixedLegendItems(LegendItemCollection) may expose internal representation by storing an externally mutable object into XYPlot.fixedLegendItems
EI2 org.jfree.chart.plot.XYPlot.setFixedRangeAxisSpace(AxisSpace, boolean) may expose internal representation by storing an externally mutable object into XYPlot.fixedRangeAxisSpace
EI2 org.jfree.chart.plot.XYPlot.setQuadrantOrigin(Point2D) may expose internal representation by storing an externally mutable object into XYPlot.quadrantOrigin
EI2 new org.jfree.chart.plot.dial.DialLayerChangeEvent(DialLayer) may expose internal representation by storing an externally mutable object into DialLayerChangeEvent.layer
EI2 org.jfree.chart.plot.dial.DialPlot.setBackground(DialLayer) may expose internal representation by storing an externally mutable object into DialPlot.background
EI2 org.jfree.chart.plot.dial.DialPlot.setCap(DialLayer) may expose internal representation by storing an externally mutable object into DialPlot.cap
EI2 org.jfree.chart.plot.dial.DialValueIndicator.setNumberFormat(NumberFormat) may expose internal representation by storing an externally mutable object into DialValueIndicator.formatter
EI2 org.jfree.chart.plot.dial.StandardDialScale.setTickLabelFormatter(NumberFormat) may expose internal representation by storing an externally mutable object into StandardDialScale.tickLabelFormatter
EI2 org.jfree.chart.renderer.DefaultPolarItemRenderer.setPlot(PolarPlot) may expose internal representation by storing an externally mutable object into DefaultPolarItemRenderer.plot
EI2 org.jfree.chart.renderer.Outlier.setPoint(Point2D) may expose internal representation by storing an externally mutable object into Outlier.point
EI2 org.jfree.chart.renderer.OutlierList.setAveragedOutlier(Outlier) may expose internal representation by storing an externally mutable object into OutlierList.averagedOutlier
EI2 new org.jfree.chart.renderer.RendererState(PlotRenderingInfo) may expose internal representation by storing an externally mutable object into RendererState.info
EI2 org.jfree.chart.renderer.WaferMapRenderer.setPlot(WaferMapPlot) may expose internal representation by storing an externally mutable object into WaferMapRenderer.plot
EI2 org.jfree.chart.renderer.category.AbstractCategoryItemRenderer.setPlot(CategoryPlot) may expose internal representation by storing an externally mutable object into AbstractCategoryItemRenderer.plot
EI2 org.jfree.chart.renderer.category.CategoryItemRendererState.setCrosshairState(CategoryCrosshairState) may expose internal representation by storing an externally mutable object into CategoryItemRendererState.crosshairState
EI2 org.jfree.chart.renderer.category.CategoryItemRendererState.setVisibleSeriesArray(int[]) may expose internal representation by storing an externally mutable object into CategoryItemRendererState.visibleSeries
EI2 org.jfree.chart.renderer.xy.AbstractXYItemRenderer.setPlot(XYPlot) may expose internal representation by storing an externally mutable object into AbstractXYItemRenderer.plot
EI2 new org.jfree.chart.renderer.xy.XYBarRenderer$XYBarRendererState(XYBarRenderer, PlotRenderingInfo) may expose internal representation by storing an externally mutable object into XYBarRenderer$XYBarRendererState.this$0
EI2 new org.jfree.chart.text.G2TextMeasurer(Graphics2D) may expose internal representation by storing an externally mutable object into G2TextMeasurer.g2
EI2 new org.jfree.chart.text.TextBox(TextBlock) may expose internal representation by storing an externally mutable object into TextBox.textBlock
EI2 org.jfree.chart.text.TextBox.setTextBlock(TextBlock) may expose internal representation by storing an externally mutable object into TextBox.textBlock
EI2 new org.jfree.chart.title.CompositeTitle(BlockContainer) may expose internal representation by storing an externally mutable object into CompositeTitle.container
EI2 org.jfree.chart.title.CompositeTitle.setTitleContainer(BlockContainer) may expose internal representation by storing an externally mutable object into CompositeTitle.container
EI2 new org.jfree.chart.title.ImageTitle(Image, int, int, RectangleEdge, HorizontalAlignment, VerticalAlignment, RectangleInsets) may expose internal representation by storing an externally mutable object into ImageTitle.image
EI2 org.jfree.chart.title.ImageTitle.setImage(Image) may expose internal representation by storing an externally mutable object into ImageTitle.image
EI2 new org.jfree.chart.title.LegendItemBlockContainer(Arrangement, Dataset, Comparable) may expose internal representation by storing an externally mutable object into LegendItemBlockContainer.dataset
EI2 new org.jfree.chart.title.LegendTitle(LegendItemSource, Arrangement, Arrangement) may expose internal representation by storing an externally mutable object into LegendTitle.hLayout
EI2 new org.jfree.chart.title.LegendTitle(LegendItemSource, Arrangement, Arrangement) may expose internal representation by storing an externally mutable object into LegendTitle.vLayout
EI2 org.jfree.chart.title.LegendTitle.setSources(LegendItemSource[]) may expose internal representation by storing an externally mutable object into LegendTitle.sources
EI2 org.jfree.chart.title.LegendTitle.setWrapper(BlockContainer) may expose internal representation by storing an externally mutable object into LegendTitle.wrapper
EI2 new org.jfree.chart.title.PaintScaleLegend(PaintScale, ValueAxis) may expose internal representation by storing an externally mutable object into PaintScaleLegend.axis
EI2 org.jfree.chart.title.PaintScaleLegend.setAxis(ValueAxis) may expose internal representation by storing an externally mutable object into PaintScaleLegend.axis
EI2 org.jfree.chart.util.LogFormat.setExponentFormat(NumberFormat) may expose internal representation by storing an externally mutable object into LogFormat.formatter
EI2 org.jfree.chart.util.RelativeDateFormat.setDayFormatter(NumberFormat) may expose internal representation by storing an externally mutable object into RelativeDateFormat.dayFormatter
EI2 org.jfree.chart.util.RelativeDateFormat.setHourFormatter(NumberFormat) may expose internal representation by storing an externally mutable object into RelativeDateFormat.hourFormatter
EI2 org.jfree.chart.util.RelativeDateFormat.setMinuteFormatter(NumberFormat) may expose internal representation by storing an externally mutable object into RelativeDateFormat.minuteFormatter
EI2 org.jfree.chart.util.RelativeDateFormat.setSecondFormatter(NumberFormat) may expose internal representation by storing an externally mutable object into RelativeDateFormat.secondFormatter
EI2 new org.jfree.data.category.DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][], Number[][]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.categoryKeys
EI2 new org.jfree.data.category.DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][], Number[][]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.endData
EI2 new org.jfree.data.category.DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][], Number[][]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.seriesKeys
EI2 new org.jfree.data.category.DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][], Number[][]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.startData
EI2 org.jfree.data.category.DefaultIntervalCategoryDataset.setCategoryKeys(Comparable[]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.categoryKeys
EI2 org.jfree.data.category.DefaultIntervalCategoryDataset.setSeriesKeys(Comparable[]) may expose internal representation by storing an externally mutable object into DefaultIntervalCategoryDataset.seriesKeys
EI2 new org.jfree.data.gantt.XYTaskDataset(TaskSeriesCollection) may expose internal representation by storing an externally mutable object into XYTaskDataset.underlying
EI2 new org.jfree.data.general.DatasetChangeEvent(Object, Dataset) may expose internal representation by storing an externally mutable object into DatasetChangeEvent.dataset
EI2 new org.jfree.data.jdbc.JDBCCategoryDataset(Connection) may expose internal representation by storing an externally mutable object into JDBCCategoryDataset.connection
EI2 new org.jfree.data.jdbc.JDBCPieDataset(Connection) may expose internal representation by storing an externally mutable object into JDBCPieDataset.connection
EI2 new org.jfree.data.jdbc.JDBCXYDataset(Connection) may expose internal representation by storing an externally mutable object into JDBCXYDataset.connection
EI2 new org.jfree.data.statistics.BoxAndWhiskerItem(Number, Number, Number, Number, Number, Number, Number, Number, List) may expose internal representation by storing an externally mutable object into BoxAndWhiskerItem.outliers
EI2 new org.jfree.data.time.Day(SerialDate) may expose internal representation by storing an externally mutable object into Day.serialDate
EI2 new org.jfree.data.time.DynamicTimeSeriesCollection$ValueSequence(DynamicTimeSeriesCollection, int) may expose internal representation by storing an externally mutable object into DynamicTimeSeriesCollection$ValueSequence.this$0
EI2 new org.jfree.data.time.TimeSeriesTableModel(TimeSeries, boolean) may expose internal representation by storing an externally mutable object into TimeSeriesTableModel.series
EI2 new org.jfree.data.xml.CategorySeriesHandler(RootHandler) may expose internal representation by storing an externally mutable object into CategorySeriesHandler.root
EI2 new org.jfree.data.xml.ItemHandler(RootHandler, DefaultHandler) may expose internal representation by storing an externally mutable object into ItemHandler.parent
EI2 new org.jfree.data.xml.ItemHandler(RootHandler, DefaultHandler) may expose internal representation by storing an externally mutable object into ItemHandler.root
EI2 new org.jfree.data.xml.KeyHandler(RootHandler, ItemHandler) may expose internal representation by storing an externally mutable object into KeyHandler.itemHandler
EI2 new org.jfree.data.xml.KeyHandler(RootHandler, ItemHandler) may expose internal representation by storing an externally mutable object into KeyHandler.rootHandler
EI2 new org.jfree.data.xml.ValueHandler(RootHandler, ItemHandler) may expose internal representation by storing an externally mutable object into ValueHandler.itemHandler
EI2 new org.jfree.data.xml.ValueHandler(RootHandler, ItemHandler) may expose internal representation by storing an externally mutable object into ValueHandler.rootHandler
EI2 new org.jfree.data.xy.DefaultHighLowDataset(Comparable, Date[], double[], double[], double[], double[], double[]) may expose internal representation by storing an externally mutable object into DefaultHighLowDataset.date
EI2 new org.jfree.data.xy.DefaultOHLCDataset(Comparable, OHLCDataItem[]) may expose internal representation by storing an externally mutable object into DefaultOHLCDataset.data
EI2 new org.jfree.data.xy.DefaultWindDataset(List, Object[][][]) may expose internal representation by storing an externally mutable object into DefaultWindDataset.seriesKeys
EI2 new org.jfree.data.xy.OHLCDataItem(Date, double, double, double, double, double) may expose internal representation by storing an externally mutable object into OHLCDataItem.date
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.JFreeChart.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.CategoryPlot.
MC Overridable method setPlot is called from method clone() in class org.jfree.chart.plot.CategoryPlot.
MC Overridable method setParent is called from method clone() in class org.jfree.chart.plot.CombinedDomainCategoryPlot.
MC Overridable method getDomainAxis is called from method clone() in class org.jfree.chart.plot.CombinedDomainXYPlot.
MC Overridable method setParent is called from method clone() in class org.jfree.chart.plot.CombinedDomainXYPlot.
MC Overridable method getRangeAxis is called from method clone() in class org.jfree.chart.plot.CombinedRangeCategoryPlot.
MC Overridable method setParent is called from method clone() in class org.jfree.chart.plot.CombinedRangeCategoryPlot.
MC Overridable method getRangeAxis is called from method clone() in class org.jfree.chart.plot.CombinedRangeXYPlot.
MC Overridable method setParent is called from method clone() in class org.jfree.chart.plot.CombinedRangeXYPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.CompassPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.FastScatterPlot.
MC Overridable method setPlot is called from method clone() in class org.jfree.chart.plot.FastScatterPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.MeterPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.PiePlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.PolarPlot.
MC Overridable method setPlot is called from method clone() in class org.jfree.chart.plot.PolarPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.ThermometerPlot.
MC Overridable method setPlot is called from method clone() in class org.jfree.chart.plot.ThermometerPlot.
MC Overridable method addChangeListener is called from method clone() in class org.jfree.chart.plot.XYPlot.
MC Overridable method setPlot is called from method clone() in class org.jfree.chart.plot.XYPlot.
MS org.jfree.chart.ChartPanel.localizationResources isn't final but should be
MS org.jfree.chart.axis.CyclicNumberAxis.DEFAULT_ADVANCE_LINE_STROKE isn't final but should be
MS org.jfree.chart.axis.QuarterDateFormat.REGULAR_QUARTERS should be package protected
MS org.jfree.chart.needle.MeterNeedle.transform isn't final but should be
MS org.jfree.chart.plot.CategoryPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.CompassPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE is a mutable array
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_FILL_PAINT_SEQUENCE should be package protected
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE should be package protected
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE should be package protected
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE should be package protected
MS org.jfree.chart.plot.DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE should be package protected
MS org.jfree.chart.plot.FastScatterPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.MeterPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.PiePlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.PolarPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.ThermometerPlot.UNITS should be package protected
MS org.jfree.chart.plot.ThermometerPlot.localizationResources isn't final but should be
MS org.jfree.chart.plot.XYPlot.localizationResources isn't final but should be
MS org.jfree.chart.ui.FontChooserPanel.SIZES should be package protected
MS org.jfree.chart.ui.FontChooserPanel.localizationResources isn't final but should be
MS org.jfree.data.time.Quarter.FIRST_MONTH_IN_QUARTER should be package protected
MS org.jfree.data.time.Quarter.LAST_MONTH_IN_QUARTER should be package protected

Multithreaded correctness Warnings

Code Warning
IS Inconsistent synchronization of org.jfree.data.time.DynamicTimeSeriesCollection.domainEnd; locked 50% of time
IS Inconsistent synchronization of org.jfree.data.time.DynamicTimeSeriesCollection.domainStart; locked 50% of time
IS Inconsistent synchronization of org.jfree.data.time.DynamicTimeSeriesCollection.newestAt; locked 55% of time
IS Inconsistent synchronization of org.jfree.data.time.DynamicTimeSeriesCollection.oldestAt; locked 58% of time
STCAL Call to method of static java.text.DateFormat in org.jfree.data.time.Day.parseDay(String)
STCAL Call to method of static java.text.DateFormat in org.jfree.data.time.Day.parseDay(String)
STCAL org.jfree.data.time.Day.DATE_FORMAT is a static field of type java.text.DateFormat, which isn't thread safe
STCAL org.jfree.data.time.Day.DATE_FORMAT_LONG is a static field of type java.text.DateFormat, which isn't thread safe
STCAL org.jfree.data.time.Day.DATE_FORMAT_MEDIUM is a static field of type java.text.DateFormat, which isn't thread safe
STCAL org.jfree.data.time.Day.DATE_FORMAT_SHORT is a static field of type java.text.DateFormat, which isn't thread safe
UG org.jfree.data.DefaultKeyedValue.getValue() is unsynchronized, org.jfree.data.DefaultKeyedValue.setValue(Number) is synchronized

Performance Warnings

Code Warning
Bx org.jfree.chart.labels.MultipleXYSeriesLabelGenerator.addSeriesLabel(int, String) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.labels.MultipleXYSeriesLabelGenerator.clearSeriesLabels(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.labels.MultipleXYSeriesLabelGenerator.generateLabel(XYDataset, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.addDomainMarker(int, CategoryMarker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.addRangeMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.clearDomainMarkers(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.clearRangeMarkers(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.getDomainAxisForDataset(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.getDomainMarkers(int, Layer) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.getRangeAxisForDataset(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.getRangeMarkers(int, Layer) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.mapDatasetToRangeAxis(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.removeDomainMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.CategoryPlot.removeRangeMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PiePlot.getSectionKey(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.Plot.<static initializer for Plot>() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PolarPlot.getAxisForDataset(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PolarPlot.getDataRange(ValueAxis) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PolarPlot.getDatasetsMappedToAxis(Integer) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PolarPlot.mapDatasetToAxes(int, List) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.PolarPlot.mapDatasetToAxis(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.addDomainMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.addRangeMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.clearDomainMarkers(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.clearRangeMarkers(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.getDomainAxisForDataset(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.getDomainMarkers(int, Layer) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.getRangeAxisForDataset(int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.getRangeMarkers(int, Layer) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.mapDatasetToDomainAxes(int, List) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.mapDatasetToDomainAxis(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.mapDatasetToRangeAxes(int, List) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.mapDatasetToRangeAxis(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.removeDomainMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.XYPlot.removeRangeMarker(int, Marker, Layer, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.plot.dial.DialPlot.mapDatasetToScale(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx new org.jfree.chart.renderer.WaferMapRenderer(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.renderer.WaferMapRenderer.makePaintIndex() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.renderer.WaferMapRenderer.makePositionIndex(Set) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.chart.renderer.WaferMapRenderer.makeValueIndex(Number, Number, Set) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.DefaultKeyedValues.rebuildIndex() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.DefaultKeyedValues.setValue(Comparable, Number) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.gantt.TaskSeriesCollection.getEndValue(Comparable, Comparable) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.gantt.TaskSeriesCollection.getEndValue(Comparable, Comparable, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.gantt.TaskSeriesCollection.getStartValue(Comparable, Comparable) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.gantt.TaskSeriesCollection.getStartValue(Comparable, Comparable, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.general.WaferMapDataset.addValue(int, int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.general.WaferMapDataset.getChipValue(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.jdbc.JDBCCategoryDataset.executeQuery(Connection, String) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.jdbc.JDBCXYDataset.executeQuery(Connection, String) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.jdbc.JDBCXYDataset.executeQuery(Connection, String) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.statistics.DefaultBoxAndWhiskerXYDataset.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.statistics.HistogramDataset.addSeries(Comparable, double[], int, double, double) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.time.DynamicTimeSeriesCollection.advanceTime() invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.DynamicTimeSeriesCollection.findDomainLimits() invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.DynamicTimeSeriesCollection.getEndX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.DynamicTimeSeriesCollection.getStartX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.DynamicTimeSeriesCollection.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimePeriodValuesCollection.getEndX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimePeriodValuesCollection.getStartX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimePeriodValuesCollection.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimeSeriesCollection.getEndX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimeSeriesCollection.getStartX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.time.TimeSeriesCollection.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.xy.DefaultHighLowDataset.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.xy.DefaultOHLCDataset.getX(int, int) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx new org.jfree.data.xy.DefaultWindDataset(List, Object[][][]) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx new org.jfree.data.xy.DefaultWindDataset(List, Object[][][]) invokes inefficient new Long(long) constructor; use Long.valueOf(long) instead
Bx org.jfree.data.xy.MatrixSeriesCollection.getX(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
Bx org.jfree.data.xy.MatrixSeriesCollection.getY(int, int) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead
SIC Should org.jfree.chart.renderer.xy.XYBarRenderer$XYBarRendererState be a _static_ inner class?
UrF Unread field: org.jfree.chart.renderer.xy.SamplingXYLineRenderer$State.closeY
UrF Unread field: org.jfree.chart.renderer.xy.SamplingXYLineRenderer$State.openY
WMI org.jfree.chart.axis.CategoryAxis.writePaintMap(Map, ObjectOutputStream) makes inefficient use of keySet iterator instead of entrySet iterator
WMI org.jfree.chart.labels.MultipleXYSeriesLabelGenerator.clone() makes inefficient use of keySet iterator instead of entrySet iterator
WMI org.jfree.chart.plot.CategoryPlot.cloneMarkerMap(Map) makes inefficient use of keySet iterator instead of entrySet iterator
WMI org.jfree.chart.urls.CustomPieURLGenerator.clone() makes inefficient use of keySet iterator instead of entrySet iterator
WMI org.jfree.chart.util.CloneUtils.cloneMapValues(Map) makes inefficient use of keySet iterator instead of entrySet iterator

Dodgy code Warnings

Code Warning
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.category.CategoryItemRendererState to org.jfree.chart.renderer.category.CategoryStepRenderer$State in org.jfree.chart.renderer.category.CategoryStepRenderer.drawItem(Graphics2D, CategoryItemRendererState, Rectangle2D, CategoryPlot, CategoryAxis, ValueAxis, CategoryDataset, int, int, int)
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.xy.XYItemRendererState to org.jfree.chart.renderer.xy.DeviationRenderer$State in org.jfree.chart.renderer.xy.DeviationRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.xy.XYItemRendererState to org.jfree.chart.renderer.xy.SamplingXYLineRenderer$State in org.jfree.chart.renderer.xy.SamplingXYLineRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.xy.XYItemRendererState to org.jfree.chart.renderer.xy.StackedXYAreaRenderer$StackedXYAreaRendererState in org.jfree.chart.renderer.xy.StackedXYAreaRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.xy.XYItemRendererState to org.jfree.chart.renderer.xy.StandardXYItemRenderer$State in org.jfree.chart.renderer.xy.StandardXYItemRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
BC Unchecked/unconfirmed cast from org.jfree.chart.renderer.xy.XYItemRendererState to org.jfree.chart.renderer.xy.XYAreaRenderer$XYAreaRendererState in org.jfree.chart.renderer.xy.XYAreaRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int)
DLS Dead store to rect in org.jfree.chart.panel.CrosshairOverlay.calculateLabelPoint(Line2D, RectangleAnchor, double, double)
DLS Dead store to oldt in org.jfree.chart.renderer.xy.XYSplineRenderer.drawPrimaryLineAsPath(XYItemRendererState, Graphics2D, XYPlot, XYDataset, int, int, int, ValueAxis, ValueAxis, Rectangle2D)
DLS Dead store to oldy in org.jfree.chart.renderer.xy.XYSplineRenderer.drawPrimaryLineAsPath(XYItemRendererState, Graphics2D, XYPlot, XYDataset, int, int, int, ValueAxis, ValueAxis, Rectangle2D)
Eq org.jfree.chart.axis.LogarithmicAxis doesn't override NumberAxis.equals(Object)
Eq org.jfree.chart.renderer.category.LayeredBarRenderer doesn't override BarRenderer.equals(Object)
Eq org.jfree.chart.title.LegendItemBlockContainer doesn't override org.jfree.chart.block.BlockContainer.equals(Object)
Eq org.jfree.data.jdbc.JDBCCategoryDataset doesn't override org.jfree.data.category.DefaultCategoryDataset.equals(Object)
Eq org.jfree.data.time.DateRange doesn't override org.jfree.data.Range.equals(Object)
Eq org.jfree.data.xy.NormalizedMatrixSeries doesn't override MatrixSeries.equals(Object)
FE Test for floating point equality in org.jfree.chart.axis.AxisSpace.equals(Object)
FE Test for floating point equality in org.jfree.chart.axis.CyclicNumberAxis.equals(Object)
REC Exception is caught when Exception is not thrown in org.jfree.chart.axis.PeriodAxis.createInstance(Class, Date, TimeZone, Locale)
REC Exception is caught when Exception is not thrown in org.jfree.chart.axis.PeriodAxisLabelInfo.createInstance(Date, TimeZone, Locale)
REC Exception is caught when Exception is not thrown in org.jfree.chart.util.PaintUtils.colorToString(Color)
REC Exception is caught when Exception is not thrown in org.jfree.data.KeyToGroupMap.clone(Collection)
REC Exception is caught when Exception is not thrown in org.jfree.data.time.RegularTimePeriod.createInstance(Class, Date, TimeZone, Locale)
SF Switch statement found in org.jfree.chart.renderer.xy.CandlestickRenderer.drawItem(Graphics2D, XYItemRendererState, Rectangle2D, PlotRenderingInfo, XYPlot, ValueAxis, ValueAxis, XYDataset, int, int, CrosshairState, int) where default case is missing
UC Useless condition: it's known that week <= 53 ('5') at this point
UC Useless condition: it's known that week <= 53 ('5') at this point

Details

BC_UNCONFIRMED_CAST: Unchecked/unconfirmed cast

This cast is unchecked, and not all instances of the type cast from can be cast to the type it is being cast to. Check that your program logic ensures that this cast will not fail.

DM_NUMBER_CTOR: Method invokes inefficient Number constructor; use static valueOf instead

Using new Integer(int) is guaranteed to always result in a new object whereas Integer.valueOf(int) allows caching of values to be done by the compiler, class library, or JVM. Using of cached values avoids object allocation and the code will be faster.

Values between -128 and 127 are guaranteed to have corresponding cached instances and using valueOf is approximately 3.5 times faster than using constructor. For values outside the constant range the performance of both styles is the same.

Unless the class must be compatible with JVMs predating Java 5, use either autoboxing or the valueOf() method when creating instances of Long, Integer, Short, Character, and Byte.

CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE: Class defines clone() but doesn't implement Cloneable

This class defines a clone() method but the class doesn't implement Cloneable. There are some situations in which this is OK (e.g., you want to control how subclasses can clone themselves), but just make sure that this is what you intended.

CN_IDIOM_NO_SUPER_CALL: clone method does not call super.clone()

This non-final class defines a clone() method that does not call super.clone(). If this class ("A") is extended by a subclass ("B"), and the subclass B calls super.clone(), then it is likely that B's clone() method will return an object of type A, which violates the standard contract for clone().

If all clone() methods call super.clone(), then they are guaranteed to use Object.clone(), which always returns an object of the correct type.

CT_CONSTRUCTOR_THROW: Be wary of letting constructors throw exceptions.

Classes that throw exceptions in their constructors are vulnerable to Finalizer attacks

A finalizer attack can be prevented, by declaring the class final, using an empty finalizer declared as final, or by a clever use of a private constructor.

See SEI CERT Rule OBJ-11 for more information.

CO_COMPARETO_INCORRECT_FLOATING: compareTo()/compare() incorrectly handles float or double value

This method compares double or float values using pattern like this: val1 > val2 ? 1 : val1 < val2 ? -1 : 0. This pattern works incorrectly for -0.0 and NaN values which may result in incorrect sorting result or broken collection (if compared values are used as keys). Consider using Double.compare or Float.compare static methods which handle all the special cases correctly.

DE_MIGHT_IGNORE: Method might ignore exception

This method might ignore an exception.  In general, exceptions should be handled or reported in some way, or they should be thrown out of the method.

DLS_DEAD_LOCAL_STORE: Dead store to local variable

This instruction assigns a value to a local variable, but the value is not read or used in any subsequent instruction. Often, this indicates an error, because the value computed is never used.

Note that Sun's javac compiler often generates dead stores for final local variables. Because SpotBugs is a bytecode-based tool, there is no easy way to eliminate these false positives.

DM_DEFAULT_ENCODING: Reliance on default encoding

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

EI_EXPOSE_REP: May expose internal representation by returning reference to mutable object

Returning a reference to a mutable object value stored in one of the object's fields exposes the internal representation of the object.  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. Returning a new copy of the object is better approach in many situations.

EI_EXPOSE_REP2: May expose internal representation by incorporating reference to mutable object

This code stores a reference to an externally mutable object into the internal representation of the object.  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.

EQ_DOESNT_OVERRIDE_EQUALS: Class doesn't override equals in superclass

This class extends a class that defines an equals method and adds fields, but doesn't define an equals method itself. Thus, equality on instances of this class will ignore the identity of the subclass and the added fields. Be sure this is what is intended, and that you don't need to override the equals method. Even if you don't need to override the equals method, consider overriding it anyway to document the fact that the equals method for the subclass just return the result of invoking super.equals(o).

EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC: equals method overrides equals in superclass and may not be symmetric

This class defines an equals method that overrides an equals method in a superclass. Both equals methods use instanceof in the determination of whether two objects are equal. This is fraught with peril, since it is important that the equals method is symmetrical (in other words, a.equals(b) == b.equals(a)). If B is a subtype of A, and A's equals method checks that the argument is an instanceof A, and B's equals method checks that the argument is an instanceof B, it is quite likely that the equivalence relation defined by these methods is not symmetric.

FE_FLOATING_POINT_EQUALITY: Test for floating point equality

This operation compares two floating point values for equality. Because floating point calculations may involve rounding, calculated float and double values may not be accurate. For values that must be precise, such as monetary values, consider using a fixed-precision type such as BigDecimal. For values that need not be precise, consider comparing for equality within some range, for example: if ( Math.abs(x - y) < .0000001 ). See the Java Language Specification, section 4.2.4.

FL_FLOATS_AS_LOOP_COUNTERS: Do not use floating-point variables as loop counters

Using floating-point variables should not be used as loop counters, as they are not precise, which may result in incorrect loops. A loop counter is a variable that is changed with each iteration and controls when the loop should terminate. It is decreased or increased by a fixed amount each iteration.

See rule NUM09-J.

HE_EQUALS_USE_HASHCODE: Class defines equals() and uses Object.hashCode()

This class overrides equals(Object), but does not override hashCode(), and inherits the implementation of hashCode() from java.lang.Object (which returns the identity hash code, an arbitrary value assigned to the object by the VM).  Therefore, the class is very likely to violate the invariant that equal objects must have equal hashcodes.

If you don't think instances of this class will ever be inserted into a HashMap/HashTable, the recommended hashCode implementation to use is:

public int hashCode() {
    assert false : "hashCode not designed";
    return 42; // any arbitrary constant will do
}

HE_EQUALS_NO_HASHCODE: Class defines equals() but not hashCode()

This class overrides equals(Object), but does not override hashCode().  Therefore, the class may violate the invariant that equal objects must have equal hashcodes.

HE_INHERITS_EQUALS_USE_HASHCODE: Class inherits equals() and uses Object.hashCode()

This class inherits equals(Object) from an abstract superclass, and hashCode() from java.lang.Object (which returns the identity hash code, an arbitrary value assigned to the object by the VM).  Therefore, the class is very likely to violate the invariant that equal objects must have equal hashcodes.

If you don't want to define a hashCode method, and/or don't believe the object will ever be put into a HashMap/Hashtable, define the hashCode() method to throw UnsupportedOperationException.

IS2_INCONSISTENT_SYNC: Inconsistent synchronization

The fields of this class appear to be accessed inconsistently with respect to synchronization.  This bug report indicates that the bug pattern detector judged that

A typical bug matching this bug pattern is forgetting to synchronize one of the methods in a class that is intended to be thread-safe.

You can select the nodes labeled "Unsynchronized access" to show the code locations where the detector believed that a field was accessed without synchronization.

Note that there are various sources of inaccuracy in this detector; for example, the detector cannot statically detect all situations in which a lock is held.  Also, even when the detector is accurate in distinguishing locked vs. unlocked accesses, the code in question may still be correct.

MC_OVERRIDABLE_METHOD_CALL_IN_CLONE: An overridable method is called from the clone() method.

Calling overridable methods from the clone() method is insecure because a subclass could override the method, affecting the behavior of clone(). It can also observe or modify the clone object in a partially initialized state. Only static, final or private methods should be invoked from the clone() method.

See SEI CERT rule MET06-J. Do not invoke overridable methods in clone().

MS_MUTABLE_ARRAY: Field is a mutable array

A final static field references an array and can be accessed by malicious code or by accident from another package. This code can freely modify the contents of the array.

MS_SHOULD_BE_FINAL: Field isn't final but should be

This public static or protected static field is not final, and could be changed by malicious code or by accident from another package. The field could be made final to avoid this vulnerability.

MS_PKGPROTECT: Field should be package protected

A mutable static field could be changed by malicious code or by accident. The field could be made package protected to avoid this vulnerability.

NP_NULL_ON_SOME_PATH: Possible null pointer dereference

There is a branch of statement that, if executed, guarantees that a null value will be dereferenced, which would generate a NullPointerException when the code is executed. Of course, the problem might be that the branch or statement is infeasible and that the null pointer exception cannot ever be executed; deciding that is beyond the ability of SpotBugs.

PA_PUBLIC_PRIMITIVE_ATTRIBUTE: Primitive field is public

SEI CERT rule OBJ01-J requires that accessibility to fields must be limited. Otherwise, the values of the fields may be manipulated from outside the class, which may be unexpected or undesired behaviour. In general, requiring that no fields are allowed to be public is overkill and unrealistic. Even the rule mentions that final fields may be public. Besides final fields, there may be other usages for public fields: some public fields may serve as "flags" that affect the behavior of the class. Such flag fields are expected to be read by the current instance (or the current class, in case of static fields), but written by others. If a field is both written by the methods of the current instance (or the current class, in case of static fields) and from the outside, the code is suspicious. Consider making these fields private and provide appropriate setters, if necessary. Please note that constructors, initializers and finalizers are exceptions, if only they write the field inside the class, the field is not considered as written by the class itself.

RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE: Nullcheck of value previously dereferenced

A value is checked here to see whether it is null, but this value cannot be null because it was previously dereferenced and if it were null a null pointer exception would have occurred at the earlier dereference. Essentially, this code and the previous dereference disagree as to whether this value is allowed to be null. Either the check is redundant or the previous dereference is erroneous.

REC_CATCH_EXCEPTION: Exception is caught when Exception is not thrown

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.

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:

try {
    ...
} catch (RuntimeException e) {
    throw e;
} catch (Exception e) {
    ... deal with all non-runtime exceptions ...
}

RV_RETURN_VALUE_IGNORED_BAD_PRACTICE: Method ignores exceptional return value

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 File.delete() 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.

RV_NEGATING_RESULT_OF_COMPARETO: Negating the result of compareTo()/compare()

This code negates the return value of a compareTo or compare method. This is a questionable or bad programming practice, since if the return value is Integer.MIN_VALUE, negating the return value won't negate the sign of the result. You can achieve the same intended result by reversing the order of the operands rather than by negating the results.

SF_SWITCH_NO_DEFAULT: Switch statement found where default case is missing

This method contains a switch statement where default case is missing. Usually you need to provide a default case.

Because the analysis only looks at the generated bytecode, this warning can be incorrect triggered if the default case is at the end of the switch statement and the switch statement doesn't contain break statements for other cases.

SIC_INNER_SHOULD_BE_STATIC: Should be a static inner class

This class is an inner class, but does not use its embedded reference to the object which created it.  This reference makes the instances of the class larger, and may keep the reference to the creator object alive longer than necessary.  If possible, the class should be made static.

STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE: Call to static DateFormat

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. The detector has found a call to an instance of DateFormat that has been obtained via a static field. This looks suspicious.

For more information on this see JDK Bug #6231579 and JDK Bug #6178997.

STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE: Static DateFormat

As the JavaDoc states, DateFormats are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application.

You may also experience serialization problems.

Using an instance field is recommended.

For more information on this see JDK Bug #6231579 and JDK Bug #6178997.

SE_BAD_FIELD: Non-transient non-serializable instance field in serializable class

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

SE_NO_SERIALVERSIONID: Class is Serializable, but doesn't define serialVersionUID

This class implements the Serializable interface, but does not define a serialVersionUID field.  A change as simple as adding a reference to a .class object will add synthetic fields to the class, which will unfortunately change the implicit serialVersionUID (e.g., adding a reference to String.class will generate a static field class$java$lang$String). Also, different source code to bytecode compilers may use different naming conventions for synthetic variables generated for references to class objects or inner classes. To ensure interoperability of Serializable across versions, consider adding an explicit serialVersionUID.

UC_USELESS_CONDITION: Condition has no effect

This condition always produces the same result as the value of the involved variable that was narrowed before. Probably something else was meant or the condition can be removed.

UG_SYNC_SET_UNSYNC_GET: Unsynchronized get method, synchronized set method

This class contains similarly-named get and set methods where the set method is synchronized and the get method is not.  This may result in incorrect behavior at runtime, as callers of the get method will not necessarily see a consistent state for the object.  The get method should be made synchronized.

UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR: Uninitialized read of field method called from constructor of superclass

This method is invoked in the constructor of the superclass. At this point, the fields of the class have not yet initialized.

To make this more concrete, consider the following classes:

abstract class A {
    int hashCode;
    abstract Object getValue();

    A() {
        hashCode = getValue().hashCode();
    }
}

class B extends A {
    Object value;

    B(Object v) {
        this.value = v;
    }

    Object getValue() {
        return value;
    }
}

When a B is constructed, the constructor for the A class is invoked before the constructor for B sets value. Thus, when the constructor for A invokes getValue, an uninitialized value is read for value.

URF_UNREAD_FIELD: Unread field

This field is never read.  Consider removing it from the class.

WMI_WRONG_MAP_ITERATOR: Inefficient use of keySet iterator instead of entrySet iterator

This method accesses the value of a Map entry, using a key that was retrieved from a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the Map.get(key) lookup.