diff --git a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseAgentStatDao.java b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseAgentStatDao.java index 2d6fed295..4150aaaed 100644 --- a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseAgentStatDao.java +++ b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseAgentStatDao.java @@ -53,21 +53,20 @@ public class HbaseAgentStatDao implements AgentStatDao { if (agentId == null) { throw new NullPointerException("agentId must not be null"); } + if (range == null) { + throw new NullPointerException("range must not be null"); + } if (logger.isDebugEnabled()) { logger.debug("scanAgentStat : agentId={}, {}", agentId, range); } - if (range.getTo() < range.getFrom()) { - logger.error("invalid parameter : agentId={}, {}", agentId, range); - return Collections.emptyList(); - } - + Scan scan = createScan(agentId, range); List> intermediate = hbaseOperations2.find(HBaseTables.AGENT_STAT, scan, rowKeyDistributor, agentStatMapper); - int expectedSize = (int)((range.getTo() - range.getFrom()) / 5000); // 5초간 데이터 + int expectedSize = (int)(range.getRange() / 5000); // 5초간 데이터 List merged = new ArrayList(expectedSize); for(List each : intermediate) { diff --git a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationMapStatisticsCallerDao.java b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationMapStatisticsCallerDao.java index ce87906cb..cf2d10e62 100644 --- a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationMapStatisticsCallerDao.java +++ b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationMapStatisticsCallerDao.java @@ -48,7 +48,13 @@ public class HbaseApplicationMapStatisticsCallerDao implements ApplicationMapSta @Override public List selectCaller(Application calleeApplication, Range range) { - Scan scan = createScan(calleeApplication, range); + if (calleeApplication == null) { + throw new NullPointerException("calleeApplication must not be null"); + } + if (range == null) { + throw new NullPointerException("range must not be null"); + } + Scan scan = createScan(calleeApplication, range); final List> foundListList = hbaseOperations2.find(HBaseTables.APPLICATION_MAP_STATISTICS_CALLER, scan, applicationMapStatisticsCallerMapper); if (foundListList.isEmpty()) { diff --git a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationTraceIndexDao.java b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationTraceIndexDao.java index 89f98d509..733b407a8 100644 --- a/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationTraceIndexDao.java +++ b/src/main/java/com/nhn/pinpoint/web/dao/hbase/HbaseApplicationTraceIndexDao.java @@ -63,6 +63,9 @@ public class HbaseApplicationTraceIndexDao implements ApplicationTraceIndexDao { if (applicationName == null) { throw new NullPointerException("applicationName must not be null"); } + if (range == null) { + throw new NullPointerException("range must not be null"); + } if (limit < 0) { throw new IllegalArgumentException("negative limit:" + limit); } @@ -149,6 +152,9 @@ public class HbaseApplicationTraceIndexDao implements ApplicationTraceIndexDao { if (applicationName == null) { throw new NullPointerException("applicationName must not be null"); } + if (range == null) { + throw new NullPointerException("range must not be null"); + } if (limit < 0) { throw new IllegalArgumentException("negative limit:" + limit); } diff --git a/src/main/java/com/nhn/pinpoint/web/vo/Range.java b/src/main/java/com/nhn/pinpoint/web/vo/Range.java index 1fcc56848..eee07e8d5 100644 --- a/src/main/java/com/nhn/pinpoint/web/vo/Range.java +++ b/src/main/java/com/nhn/pinpoint/web/vo/Range.java @@ -10,6 +10,7 @@ public final class Range { public Range(long from, long to) { this.from = from; this.to = to; + isValidate(); } public long getFrom() { @@ -20,6 +21,15 @@ public final class Range { return to; } + public long getRange() { + return to - from; + } + + private void isValidate() { + if (this.to < this.from) { + throw new IllegalArgumentException("invalid range:" + this); + } + } @Override public boolean equals(Object o) { diff --git a/src/test/java/com/nhn/pinpoint/web/vo/RangeTest.java b/src/test/java/com/nhn/pinpoint/web/vo/RangeTest.java new file mode 100644 index 000000000..9d9dcaabd --- /dev/null +++ b/src/test/java/com/nhn/pinpoint/web/vo/RangeTest.java @@ -0,0 +1,31 @@ +package com.nhn.pinpoint.web.vo; + +import junit.framework.Assert; +import org.junit.Test; + +/** + * @author emeroad + */ +public class RangeTest { + @Test + public void testCreate() { + Range range1 = new Range(0, 0); + Range range2 = new Range(0, 1); + + try { + Range range3 = new Range(0, -1); + Assert.fail(); + } catch (Exception e) { + } + + } + + @Test + public void testRange() { + Range range1 = new Range(0, 0); + Assert.assertEquals(range1.getRange(), 0); + + Range range2 = new Range(0, 1); + Assert.assertEquals(range2.getRange(), 1); + } +}