diff --git a/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java b/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java index e06085c66c929973f91324ceb3d7cbd468b48fd5..8fcbe7a5dab243c6ab611534b10eb4db77975f64 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java @@ -43,7 +43,8 @@ public class DefaultBaselineService implements BaselineService { if (baseline == null) { try { - baseline = m_baselineDao.findByReportNameKeyTime(reportPeriod, reportName, key, BaselineEntity.READSET_FULL); + baseline = m_baselineDao + .findByReportNameKeyTime(reportPeriod, reportName, key, BaselineEntity.READSET_FULL); m_baselineMap.put(baselineKey, baseline); } catch (DalNotFoundException e) { Cat.logEvent("BaselineNotFound", baselineKey); @@ -67,14 +68,13 @@ public class DefaultBaselineService implements BaselineService { double[] result = new double[60]; Date today = TaskHelper.todayZero(reportPeriod); int hour = (int) ((reportPeriod.getTime() - today.getTime()) / TimeUtil.ONE_HOUR); - double[] dayResult = queryDailyBaseline(reportName, key, today); - if (dayResult == null) - return null; - for (int i = 0; i < 60; i++) { - result[i] = dayResult[hour * 60 + i]; - } + if (dayResult != null) { + for (int i = 0; i < 60; i++) { + result[i] = dayResult[hour * 60 + i]; + } + } return result; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java index 129cccf6bdd7a98cb695309664986e931422a826..5e553ff90921beaf5fdc1fd44243c3a81b88a523 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java @@ -25,7 +25,7 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService @Inject private ModelService m_service; - private final Map m_metricReportMap = new LinkedHashMap() { + private final Map m_metricReports = new LinkedHashMap() { private static final long serialVersionUID = 1L; @@ -37,13 +37,13 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService private MetricReport getReportFromDB(String product, long date) { String key = product + date; - MetricReport result = m_metricReportMap.get(key); + MetricReport result = m_metricReports.get(key); if (result == null) { Date start = new Date(date); Date end = new Date(date + TimeUtil.ONE_HOUR); try { result = m_reportService.queryMetricReport(product, start, end); - m_metricReportMap.put(key, result); + m_metricReports.put(key, result); } catch (Exception e) { Cat.logError(e); } @@ -61,6 +61,7 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService if (m_service.isEligable(request)) { ModelResponse response = m_service.invoke(request); MetricReport report = response.getModel(); + return report; } else { throw new RuntimeException("Internal error: no eligable metric service registered for " + request + "!"); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java index 76ca78f168774a53f590c930c7af329c4c2f8349..78d981a64d4a47755dbd85ceac9cae4c75e205f1 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java @@ -51,12 +51,13 @@ public class MetricDataFetcherImpl implements MetricDataFetcher { return values; } - private void putKey(Map datas, Map values, String sumKey) { - double[] value = datas.get(sumKey); + private void putKey(Map datas, Map values, String key) { + double[] value = datas.get(key); + if(value ==null){ value = new double[60]; } - values.put(sumKey, value); + values.put(key, value); } public class MetricDataBuilder extends BaseVisitor { diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java index 977afab4bb4abb9a6a57434611b72c230569ecc7..861dd6fc9bcdf0b06ca66f1f165d7b57fc44bd85 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java @@ -10,7 +10,6 @@ public class MetricReportMerger extends DefaultMerger { public MetricReportMerger(MetricReport metricReport) { super(metricReport); - } @Override