Uncaught Exception on Extreme Zoom

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
lzgrablic
Posts: 1
Joined: Tue Oct 17, 2017 12:09 am
antibot: No, of course not.

Uncaught Exception on Extreme Zoom

Post by lzgrablic » Tue Oct 17, 2017 12:31 am

When a chart is zoomed in to the extreme, an uncaught exception is thrown:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Must be finite.
at org.jfree.chart.axis.NumberTickUnitSource.getCeilingTickUnit(NumberTickUnitSource.java:114)
at org.jfree.chart.axis.NumberAxis.selectHorizontalAutoTickUnit(NumberAxis.java:855)
at org.jfree.chart.axis.NumberAxis.selectAutoTickUnit(NumberAxis.java:824)
at org.jfree.chart.axis.NumberAxis.refreshTicksHorizontal(NumberAxis.java:949)
at org.jfree.chart.axis.NumberAxis.refreshTicks(NumberAxis.java:921)
at org.jfree.chart.axis.ValueAxis.drawTickMarksAndLabels(ValueAxis.java:691)
at org.jfree.chart.axis.NumberAxis.draw(NumberAxis.java:666)
at org.jfree.chart.plot.XYPlot.drawAxes(XYPlot.java:3644)
at org.jfree.chart.plot.XYPlot.draw(XYPlot.java:3147)
at org.jfree.chart.JFreeChart.draw(JFreeChart.java:1229)
at org.jfree.chart.ChartPanel.paintComponent(ChartPanel.java:1628)
at javax.swing.JComponent.paint(JComponent.java:1056)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1579)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1502)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:306)
at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

John Matthews
Posts: 513
Joined: Wed Sep 12, 2007 3:18 pm

Re: Uncaught Exception on Extreme Zoom

Post by John Matthews » Tue Oct 17, 2017 2:12 am

A complete example that produces a nearly identical trace is shown here. Note that the example breaks the Swing single-thread rule, cited here, which may explain the platform vagaries. If your example differs, please post it.

Locked