Common : fix potential bugs (Range, Summary) 06/26306/1
authorseokgil.kang <seokgil.kang@samsung.com>
Wed, 20 Aug 2014 11:03:01 +0000 (20:03 +0900)
committerseokgil.kang <seokgil.kang@samsung.com>
Wed, 20 Aug 2014 11:08:22 +0000 (20:08 +0900)
Change-Id: I557665b87b79d4a895c843c31cc424d8e7a56dbb
Signed-off-by: seokgil.kang <seokgil.kang@samsung.com>
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/range/RangeDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/NewLeakDetector.java

index 8aa07f7..d08a238 100644 (file)
@@ -193,7 +193,7 @@ public class RangeDataManager implements Runnable {
                }
        }
 
-       public static RangeDataManager getInstance() {
+       public synchronized static RangeDataManager getInstance() {
                if (null == instance) {
                        instance = new RangeDataManager();
                }
index f61d5d8..c138373 100644 (file)
@@ -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<List<Object>>();
                freeDataList = new ArrayList<List<Object>>();
+               leakDataList = new ArrayList<List<Object>>();
                rangeDataList = new ArrayList<List<Object>>();
        }
 
@@ -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<Object> dbLeakData = new ArrayList<Object>();
                
+               if (input == null)      return;
                dbLeakData.add(Integer.valueOf(input.getSequenceNumber()));
                dbLeakData.add(Long.valueOf(input.getAllocatedValue()));
                dbLeakData.add(Integer.valueOf(input.getPid()));
index 747a68d..a9f90c7 100644 (file)
@@ -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) {
index b453959..62c73c8 100644 (file)
@@ -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]);
                                                }