From 07ab5ac084bd8da847dd4cfcdd934528224492f1 Mon Sep 17 00:00:00 2001 From: "seokgil.kang" Date: Wed, 20 Aug 2014 20:03:01 +0900 Subject: [PATCH] Common : fix potential bugs (Range, Summary) Change-Id: I557665b87b79d4a895c843c31cc424d8e7a56dbb Signed-off-by: seokgil.kang --- .../org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java | 2 +- .../tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java | 5 +++++ .../tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java | 10 +++++----- .../dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java | 4 ++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java index 8aa07f7..d08a238 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java @@ -193,7 +193,7 @@ public class RangeDataManager implements Runnable { } } - public static RangeDataManager getInstance() { + public synchronized static RangeDataManager getInstance() { if (null == instance) { instance = new RangeDataManager(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java index f61d5d8..c138373 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java @@ -29,6 +29,7 @@ package org.tizen.dynamicanalyzer.ui.summary.leaks; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; @@ -48,6 +49,7 @@ import org.tizen.dynamicanalyzer.swap.model.data.MemoryData; import org.tizen.dynamicanalyzer.ui.summary.SummaryDataManager; import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea; import org.tizen.dynamicanalyzer.util.WorkbenchUtil; +import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem; import org.tizen.dynamicanalyzer.widgets.da.base.DADialog; public class LeakDataMaker { @@ -65,6 +67,7 @@ public class LeakDataMaker { public LeakDataMaker() { memoryAllocDataList = new ArrayList>(); freeDataList = new ArrayList>(); + leakDataList = new ArrayList>(); rangeDataList = new ArrayList>(); } @@ -72,6 +75,7 @@ public class LeakDataMaker { int size = inputs.size(); for (int i = 0; i < size; i++) { LogData input = (LogData) inputs.get(i); + if (input == null) continue; checkHeapMemory(); switch (leakDetector.runLeakDetect(input)) { case LogCenterConstants.MEMORY_API_ALLOC: // alloc, realloc @@ -219,6 +223,7 @@ public class LeakDataMaker { public void makeLeakData(CurrentLeakData input) { ArrayList dbLeakData = new ArrayList(); + if (input == null) return; dbLeakData.add(Integer.valueOf(input.getSequenceNumber())); dbLeakData.add(Long.valueOf(input.getAllocatedValue())); dbLeakData.add(Integer.valueOf(input.getPid())); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java index 747a68d..a9f90c7 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java @@ -153,16 +153,16 @@ public class LeakDetector { // } } else if (chk.getApiType() == API_TYPE_CLOSE) { int key = log.getKey(); - LeakData freeData = getChildHash().get(key); + LeakData freeData = getChildHash().get(Long.valueOf(key)); if (null != freeData) { LeakData parent = leaks.get((long)freeData.getParentKey()); parent.removeChild(key); - getChildHash().remove(key); + getChildHash().remove(Long.valueOf(key)); if (parent.getChildren().isEmpty()) { - leaks.remove(parent.getKey()); + leaks.remove(Long.valueOf(parent.getKey())); } } else { - leaks.remove(key); + leaks.remove(Long.valueOf(key)); } } else if (chk.getApiType() == API_TYPE_REALLOC) { @@ -178,7 +178,7 @@ public class LeakDetector { if (param.contains("0x")) { rmKey = Long.decode(param); } else { - rmKey = Integer.parseInt(splitInputParam[0]); + rmKey = Long.parseLong(splitInputParam[0]); } leaks.remove(rmKey); } catch (NumberFormatException e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java index b453959..62c73c8 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java @@ -206,10 +206,10 @@ public class NewLeakDetector { String inputParam = log.getArgs(); String[] splitInputParam = inputParam.split("\\,"); //$NON-NLS-1$ String param = String.valueOf(splitInputParam[0]); - long rmKey = -1; + int rmKey = -1; try { if (param.contains("0x")) { - rmKey = Long.decode(param); + rmKey = Integer.decode(param); } else { rmKey = Integer.parseInt(splitInputParam[0]); } -- 2.7.4