diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java index 3759659dc1a296a7a3522bac4fd920e3e56f291e..890aba97a871fa79b48194073398c913de5f744c 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/AxisTickNumericalCalculator.java @@ -82,6 +82,11 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { */ private BigDecimal getGridStep(int tickSpace) { + // this prevents an infinite loop when the plot gets sized really small. + if (tickSpace < 10) { + return BigDecimal.ONE; + } + // the span of the data double span = Math.abs(maxValue.subtract(minValue).doubleValue()); // in data space @@ -108,7 +113,7 @@ public class AxisTickNumericalCalculator extends AxisTickCalculator { } } else { - while (significand >= 10) { + while (significand >= 10 || significand == Double.NEGATIVE_INFINITY) { significand /= 10.0; exponent++; }