import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.time.Duration;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
try {
if (filterBeginDate == null) {
- // as rrd goes back for years and gets more and more
- // inaccurate, we only support descending order
- // and a single return value
- // if there is no begin date is given - this case is
- // required specifically for the historicState()
- // query, which we want to support
+ // as rrd goes back for years and gets more and more inaccurate, we only support descending order
+ // and a single return value if no begin date is given - this case is required specifically for the
+ // historicState() query, which we want to support
if (filter.getOrdering() == Ordering.DESCENDING && filter.getPageSize() == 1
&& filter.getPageNumber() == 0) {
- if (filterEndDate == null) {
+ if (filterEndDate == null || Duration.between(filterEndDate, ZonedDateTime.now()).getSeconds() < db
+ .getRrdDef().getStep()) {
// we are asked only for the most recent value!
double lastValue = db.getLastDatasourceValue(DATASOURCE_STATE);
if (!Double.isNaN(lastValue)) {