diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java index e6ae43d56e6a57668dd24939b1a74a3c4b0d8453..c5927cc03a510d5514e511e2ccfe372874ee0816 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Handler.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.Comparator; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -78,12 +79,16 @@ public class Handler implements PageHandler { Map errors = visitor.getErrors(); errors = sortErrorStatis(errors); - model.setBugReport(bugReport); model.setErrorStatis(errors); + + if (payload.getAction() == Action.HTTP_JSON) { + new ClearBugReport().visitBugReport(bugReport); + } + model.setBugReport(bugReport); model.setPage(ReportPage.BUG); m_jspViewer.view(ctx, model); } - + private boolean isBug(String domain, String exception) { Set bugConfig = m_bugConfigManager.queryBugConfigsByDomain(domain); @@ -106,7 +111,6 @@ public class Handler implements PageHandler { start = payload.getHistoryStartDate(); end = payload.getHistoryEndDate(); } - return m_reportService.queryBugReport(CatString.CAT, start, end); } @@ -148,6 +152,24 @@ public class Handler implements PageHandler { return errors; } + public class ClearBugReport extends BaseVisitor{ + + @Override + public void visitDomain(Domain domain) { + String domainName = domain.getId(); + Set removes= new HashSet(); + Map items = domain.getExceptionItems(); + + for (ExceptionItem item : items.values()){ + if(!isBug(domainName, item.getId())){ + removes.add(item.getId()); + } + } + for(String remove:removes){ + items.remove(remove); + } + } + } public class BugReportVisitor extends BaseVisitor { private String m_domain; diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Model.java b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Model.java index 8293ae0b214adf3058d6752fa21dfec7d1ad5422..4ace4e2709f842e5609578b4239f454d6078d316 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/bug/Model.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/bug/Model.java @@ -6,10 +6,9 @@ import java.util.Map; import com.dianping.cat.helper.CatString; import com.dianping.cat.home.bug.entity.BugReport; +import com.dianping.cat.home.bug.transform.DefaultJsonBuilder; import com.dianping.cat.report.page.AbstractReportModel; -import com.dianping.cat.report.page.NonPrexFieldNamingStrategy; import com.dianping.cat.report.page.bug.Handler.ErrorStatis; -import com.google.gson.GsonBuilder; public class Model extends AbstractReportModel { @@ -38,10 +37,7 @@ public class Model extends AbstractReportModel { } public String getBugs() { - GsonBuilder gsonBuilder = new GsonBuilder(); - gsonBuilder.setFieldNamingStrategy(new NonPrexFieldNamingStrategy()); - - return gsonBuilder.create().toJson(m_errorStatis); + return new DefaultJsonBuilder().buildJson(m_bugReport); } @Override