From: Benjamin R. <ran...@us...> - 2008-08-01 20:54:16
|
Update of /cvsroot/jrobin/src/org/jrobin/data In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv12864/src/org/jrobin/data Modified Files: Aggregator.java Log Message: fix for opennms bug #1968 Index: Aggregator.java =================================================================== RCS file: /cvsroot/jrobin/src/org/jrobin/data/Aggregator.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Aggregator.java 21 Dec 2006 18:02:42 -0000 1.4 --- Aggregator.java 1 Aug 2008 20:54:10 -0000 1.5 *************** *** 53,56 **** --- 53,58 ---- long right = Math.min(timestamps[i], tEnd); long delta = right - left; + + // delta is only > 0 when the timestamp for a given buck is within the range of tStart and tEnd if (delta > 0) { double value = values[i]; *************** *** 60,65 **** agg.first = value; firstFound = true; } - agg.last = value; if (!Double.isNaN(value)) { agg.total = Util.sum(agg.total, delta * value); --- 62,81 ---- agg.first = value; firstFound = true; + agg.last = value; + } else if (delta >= step) { // an entire bucket is included in this range + agg.last = value; + + /* + * Algorithmically, we're only updating last if it's either the first + * bucket encountered, or it's a "full" bucket. + + if ( !isInRange(tEnd, left, right) || + (isInRange(tEnd, left, right) && !Double.isNaN(value)) + ) { + agg.last = value; + } + */ + } if (!Double.isNaN(value)) { agg.total = Util.sum(agg.total, delta * value); |