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);
|