From 35c24608cc217913aee9dd2919f16b2b8610b079 Mon Sep 17 00:00:00 2001 From: Michael Peter Christen Date: Tue, 6 Jan 2015 14:21:20 +0100 Subject: [PATCH] fix for division by zero (rare cases) --- htroot/NetworkHistory.java | 8 ++++---- source/net/yacy/visualization/ChartPlotter.java | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/htroot/NetworkHistory.java b/htroot/NetworkHistory.java index cd2c98fc9..1390159c3 100644 --- a/htroot/NetworkHistory.java +++ b/htroot/NetworkHistory.java @@ -123,10 +123,10 @@ public class NetworkHistory { if (columns.contains("cI")) headline = "YACY PEER '" + sb.peers.myName() + "' INDEX SIZE HISTORY: NUMBER OF DOCUMENTS"; if (columns.contains("cR")) headline = "YACY PEER '" + sb.peers.myName() + "' INDEX SIZE HISTORY: NUMBER OF RWI ENTRIES"; ChartPlotter chart = new ChartPlotter(width, height, 0xFFFFFFl, 0x000000l, 0xAAAAAAl, leftborder, rightborder, topborder, bottomborder, headline, "IN THE LAST " + timestr); - int pixelperscale = hspace / (maxtime / bottomscale); - if (pixelperscale > 0) chart.declareDimension(ChartPlotter.DIMENSION_BOTTOM, bottomscale, pixelperscale, -maxtime, 0x000000l, 0xCCCCCCl, "TIME/HOURS"); - pixelperscale = 10 * ((vspace * leftscale / (maxpeers - minpeers)) / 10); - if (pixelperscale > 0) chart.declareDimension(ChartPlotter.DIMENSION_LEFT, leftscale, pixelperscale, minpeers, 0x008800l, null , columns.contains("cI") ? "DOCUMENTS" : columns.contains("cR") ? "RWIs" : "PEERS"); + int pixelperscale = Math.max(1, hspace / (maxtime / bottomscale)); + chart.declareDimension(ChartPlotter.DIMENSION_BOTTOM, bottomscale, pixelperscale, -maxtime, 0x000000l, 0xCCCCCCl, "TIME/HOURS"); + pixelperscale = Math.max(1, 10 * ((vspace * leftscale / (maxpeers - minpeers)) / 10)); + chart.declareDimension(ChartPlotter.DIMENSION_LEFT, leftscale, pixelperscale, minpeers, 0x008800l, null , columns.contains("cI") ? "DOCUMENTS" : columns.contains("cR") ? "RWIs" : "PEERS"); // write the data float x0, x1; diff --git a/source/net/yacy/visualization/ChartPlotter.java b/source/net/yacy/visualization/ChartPlotter.java index 8b83afb06..5ae141467 100644 --- a/source/net/yacy/visualization/ChartPlotter.java +++ b/source/net/yacy/visualization/ChartPlotter.java @@ -102,6 +102,7 @@ public class ChartPlotter extends RasterPlotter { public void chartDot(final int dimension_x, final int dimension_y, final float coord_x, final int coord_y, final int dotsize, final String anot, final int anotAngle) { final int x = (int) ((coord_x - this.offsets[dimension_x]) * this.pixels[dimension_x] / this.scales[dimension_x]); + assert this.scales[dimension_y] != 0; final int y = (coord_y - this.offsets[dimension_y]) * this.pixels[dimension_y] / this.scales[dimension_y]; if (dotsize == 1) plot(this.leftborder + x, this.height - this.bottomborder - y, 100); else dot(this.leftborder + x, this.height - this.bottomborder - y, dotsize, true, 100);