From 2a705ff55469a355f2e8da440f8c884daf15df0c Mon Sep 17 00:00:00 2001 From: Lee Date: Mon, 20 Aug 2012 15:26:24 +0900 Subject: [PATCH] [Title] exit exception bug fix [Type] bug fix [Module] Dynamic Analyzer [Priority] major [CQ#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] --- .../dynamicanalyzer/widgets/scale/DAScale.java | 7 +- .../dynamicanalyzer/widgets/timer/TimerClock.java | 6 +- .../org/tizen/dynamicanalyzer/AnalyzerManager.java | 52 ++++--- .../org/tizen/dynamicanalyzer/DACommunicator.java | 10 +- .../org/tizen/dynamicanalyzer/MessageProcess.java | 25 ++- .../dynamicanalyzer/handlers/ExitHandler.java | 1 + .../timeline/chart/ProcessMemoryChart.java | 169 +++++++++++++-------- .../tizen/dynamicanalyzer/utils/LeakDetector.java | 13 +- 8 files changed, 176 insertions(+), 107 deletions(-) diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/scale/DAScale.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/scale/DAScale.java index 32be598..55c699f 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/scale/DAScale.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/scale/DAScale.java @@ -46,8 +46,6 @@ public class DAScale extends Canvas { private int areaWidth = 0; private int areaHeight = 0; - private int mouseX; - private boolean mouseDown = false; private Rectangle thumbRect = null; @@ -55,9 +53,6 @@ public class DAScale extends Canvas { private Rectangle leftRect= null; private Rectangle rightRect= null; - private Color bgColor; - private Color thumbColor; - public DAScale(Composite parent, int style) { super(parent, style); increment = 1; @@ -283,7 +278,7 @@ public class DAScale extends Canvas { if (mouseDown) { setSelectionInternal(event.x); thumbRect = getThumbRect(event.x); - mouseX = event.x; +// mouseX = event.x; redraw(); } } diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java index 4263526..7d739eb 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/timer/TimerClock.java @@ -188,7 +188,9 @@ public class TimerClock extends Canvas { @Override public void run() { time = System.currentTimeMillis() - startTime; - redraw(); + if (null != timer) { + redraw(); + } } }); } @@ -197,9 +199,9 @@ public class TimerClock extends Canvas { public void stop() { if (null != timer) { - System.out.println("timer canceled!! "); timer.cancel(); timer = null; + System.out.println("timer canceled!! "); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/AnalyzerManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/AnalyzerManager.java index d5dc98c..735a5a9 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/AnalyzerManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/AnalyzerManager.java @@ -85,12 +85,19 @@ public class AnalyzerManager { private static String autoStartApplicationName = null; private static List projectList = null; - + private static boolean bReTraceStartFormIDE = false; static boolean bIDEConnetedStatus = false; - - - + + static boolean exit = false; + + public static boolean isExit() { + return exit; + } + + public static void setExit(boolean e) { + exit = e; + } public static List getProjectList() { if (null == projectList) { @@ -111,7 +118,7 @@ public class AnalyzerManager { public static DATheme getTheme() { if (null == theme) { -// theme = DAThemeBlack.getInstance(); + // theme = DAThemeBlack.getInstance(); theme = DAThemeWhite.getInstance(); } return theme; @@ -310,7 +317,8 @@ public class AnalyzerManager { } List baseLogcs = AnalyzerManager.getBaseLogCenters(); if (null == baseLogcs || baseLogcs.isEmpty()) { - System.out.println("DynamicAnalyzer folder or logc file is missing! ");//$NON-NLS-1$ + System.out + .println("DynamicAnalyzer folder or logc file is missing! ");//$NON-NLS-1$ return null; } int size = baseLogcs.size(); @@ -406,7 +414,7 @@ public class AnalyzerManager { } public static LeakDetector getLeakDectector() { - + if (leakDetector == null) { leakDetector = new LeakDetector(); } @@ -434,7 +442,7 @@ public class AnalyzerManager { return functionUserProfiler; } - public static void recordStart() { + public static void recordStart() { Display.getDefault().syncExec(new Runnable() { @Override public void run() { @@ -471,23 +479,22 @@ public class AnalyzerManager { /* Timeline */ UpdateViewTimer.start(); } - - + public static void recordStartFormIde(String deviceName, String appName) { String state = AnalyzerUtil.getRecordState(); if (state.equals(RecordStateSourceProvider.RECORD_RECORDING)) { CoolbarArea.getInstance().StopTraceButton(); - SetTraceConfig( deviceName , appName ); + SetTraceConfig(deviceName, appName); bReTraceStartFormIDE = true; - + } else { - SetTraceConfig( deviceName , appName ); + SetTraceConfig(deviceName, appName); CoolbarArea.getInstance().StartTraceButton(); } } - - static void SetTraceConfig( String deviceName, String appName ){ + + static void SetTraceConfig(String deviceName, String appName) { setAutoStartDeviceName(deviceName); setAutoStartApplicationName(appName); CoolbarArea.getInstance().setDeviceComboText(deviceName); @@ -495,13 +502,12 @@ public class AnalyzerManager { } public static void recordStartWaitEndDlg() { - if ( bReTraceStartFormIDE == true ){ + if (bReTraceStartFormIDE == true) { CoolbarArea.getInstance().StartTraceButton(); bReTraceStartFormIDE = false; } } - public static void recordStop() { if (ResourceCommunicator.isRunning()) { ResourceCommunicator.setCallStop(true); @@ -579,9 +585,10 @@ public class AnalyzerManager { } public static void runStopLogProcessThread() { - - System.out.print("runStopLogProcessThread " +StopLogProcessThread.count+"\n" ); - if (StopLogProcessThread.count <= 0) { + + System.out.print("runStopLogProcessThread " + + StopLogProcessThread.count + "\n"); + if (StopLogProcessThread.count <= 0) { StopLogProcessThread.count = 0; StopLogProcessThread.count++; stopLogProcessThread = new Thread(null, new StopLogProcessThread(), @@ -593,7 +600,8 @@ public class AnalyzerManager { public static void runStartStopThread() { if (RecordStartStopThread.count == 0) { RecordStartStopThread.count++; - startStopThread = new Thread(null, new RecordStartStopThread(),AnalyzerConstants.START_STOP_THREAD); + startStopThread = new Thread(null, new RecordStartStopThread(), + AnalyzerConstants.START_STOP_THREAD); startStopThread.start(); } } @@ -607,7 +615,7 @@ public class AnalyzerManager { return false; } - public static void setAutoStartDeviceName(String device) { + public static void setAutoStartDeviceName(String device) { autoStartDeviceName = device; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/DACommunicator.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/DACommunicator.java index 9bab9ea..9e0bdb0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/DACommunicator.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/DACommunicator.java @@ -255,11 +255,11 @@ public class DACommunicator { } // /*** dont delete for debug ***/ - for (int i = 0; i < appDesktopList.size(); i++) { - AppDesktopInfo info = appDesktopList.get(i); - System.out.println("name " + info.getName() + " path : " - + info.getExecPath()); - } +// for (int i = 0; i < appDesktopList.size(); i++) { +// AppDesktopInfo info = appDesktopList.get(i); +// System.out.println("name " + info.getName() + " path : " +// + info.getExecPath()); +// } return appDesktopList; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/MessageProcess.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/MessageProcess.java index 89d7475..fb7a4ab 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/MessageProcess.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/MessageProcess.java @@ -34,7 +34,6 @@ import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.timeline.TimelineMaster; import org.tizen.dynamicanalyzer.ui.views.CoolbarArea; import org.tizen.dynamicanalyzer.utils.FunctionUsageProfiler; - import org.tizen.sdblib.SyncService; import org.tizen.sdblib.SyncService.SyncResult; @@ -209,11 +208,14 @@ public class MessageProcess { private void processTerminate() { DACommunicator.setRunning(false); + Display.getDefault().syncExec(new Runnable() { @Override public void run() { - StateManager.getInstance().stopProcessStart( - AnalyzerLabels.STOP_PROCESS_DLG_SUMMARIZING_DATA); + if (!AnalyzerManager.isExit()) { + StateManager.getInstance().stopProcessStart( + AnalyzerLabels.STOP_PROCESS_DLG_SUMMARIZING_DATA); + } } }); @@ -303,9 +305,11 @@ public class MessageProcess { Display.getDefault().syncExec(new Runnable() { @Override public void run() { - StateManager.getInstance().stopProcessStart( - AnalyzerLabels.STOP_PROCESS_DLG_DEVICE_DISCONNECTED); // socket - // timeout + StateManager + .getInstance() + .stopProcessStart( + AnalyzerLabels.STOP_PROCESS_DLG_DEVICE_DISCONNECTED); // socket + // timeout } }); System.out @@ -314,11 +318,16 @@ public class MessageProcess { } finally { message = null; + Display.getDefault().syncExec(new Runnable() { @Override public void run() { - StateManager.getInstance().stopProcessStart( - AnalyzerLabels.STOP_PROCESS_DLG_SUMMARIZING_DATA); + if (!AnalyzerManager.isExit()) { + StateManager + .getInstance() + .stopProcessStart( + AnalyzerLabels.STOP_PROCESS_DLG_SUMMARIZING_DATA); + } } }); addBufferToList(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ExitHandler.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ExitHandler.java index 26590f6..dd5e36e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ExitHandler.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/ExitHandler.java @@ -15,6 +15,7 @@ public class ExitHandler extends AbstractHandler { @Override public Object execute(ExecutionEvent event) throws ExecutionException { + AnalyzerManager.setExit(true); CoolbarArea.getInstance().stopTimer(); UpdateViewTimer.stop(); AnalyzerManager.stopLogQueueObservingThread(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/ProcessMemoryChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/ProcessMemoryChart.java index 3550f63..3629465 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/ProcessMemoryChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/timeline/chart/ProcessMemoryChart.java @@ -48,7 +48,7 @@ import org.tizen.dynamicanalyzer.utils.TimelineUtils; public class ProcessMemoryChart extends TimelineChart { private static ProcessMemoryChart instance = null; - + private double chartMaxVal = 0; private boolean needUpdateChartRange = false; @@ -57,49 +57,55 @@ public class ProcessMemoryChart extends TimelineChart { private SeriesDataSet PSSMemorySeriesDataSet = null; public static ProcessMemoryChart getInstance() { - if(instance == null) { + if (instance == null) { instance = new ProcessMemoryChart(); } - + return instance; } - + private ProcessMemoryChart() { chartType = TimelineConstants.CHART_TYPE_PROCESS_MEMORY; chartName = TimelineChartLabels.PROCESS_MEMORY_CHART_TITLE; chartIcon = ImageResources.CHART_PROCESS_MEMORY; addIcon = ImageResources.ADD_CHART_PROCESS_MEMORY; - + /* VSS */ if (VSSMemorySeriesDataSet == null) { VSSMemorySeriesDataSet = new SeriesDataSet(); - VSSMemorySeriesDataSet.baseSeries = new XYSeries(TimelineChartLabels.PROCESS_MEMORY_CHART_VSS); + VSSMemorySeriesDataSet.baseSeries = new XYSeries( + TimelineChartLabels.PROCESS_MEMORY_CHART_VSS); VSSMemorySeriesDataSet.newXYDataItems = new Vector(); } /* RSS */ if (RSSMemorySeriesDataSet == null) { RSSMemorySeriesDataSet = new SeriesDataSet(); - RSSMemorySeriesDataSet.baseSeries = new XYSeries(TimelineChartLabels.PROCESS_MEMORY_CHART_RSS); + RSSMemorySeriesDataSet.baseSeries = new XYSeries( + TimelineChartLabels.PROCESS_MEMORY_CHART_RSS); RSSMemorySeriesDataSet.newXYDataItems = new Vector(); } - - + /* PSS */ if (PSSMemorySeriesDataSet == null) { PSSMemorySeriesDataSet = new SeriesDataSet(); - PSSMemorySeriesDataSet.baseSeries = new XYSeries(TimelineChartLabels.PROCESS_MEMORY_CHART_PSS); + PSSMemorySeriesDataSet.baseSeries = new XYSeries( + TimelineChartLabels.PROCESS_MEMORY_CHART_PSS); PSSMemorySeriesDataSet.newXYDataItems = new Vector(); } } - + @Override public JFreeChart createChart() { - XYSeriesCollection memorySeriesCollection = new XYSeriesCollection(PSSMemorySeriesDataSet.baseSeries); + XYSeriesCollection memorySeriesCollection = new XYSeriesCollection( + PSSMemorySeriesDataSet.baseSeries); memorySeriesCollection.addSeries(RSSMemorySeriesDataSet.baseSeries); memorySeriesCollection.addSeries(VSSMemorySeriesDataSet.baseSeries); - chart = ChartFactory.createXYAreaChart(TimelineChartLabels.PROCESS_MEMORY_CHART_TITLE, "Time", "byte", memorySeriesCollection, PlotOrientation.VERTICAL, false, false, false); //$NON-NLS-2$ //$NON-NLS-1$ + chart = ChartFactory + .createXYAreaChart( + TimelineChartLabels.PROCESS_MEMORY_CHART_TITLE, + "Time", "byte", memorySeriesCollection, PlotOrientation.VERTICAL, false, false, false); //$NON-NLS-2$ //$NON-NLS-1$ setChartStyle(); @@ -111,75 +117,90 @@ public class ProcessMemoryChart extends TimelineChart { return chart; } - + private void setSeriesRendering(XYPlot xyplot) { - XYAreaRenderer renderer = (XYAreaRenderer)xyplot.getRenderer(); - renderer.setSeriesPaint(0, SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_PSS)); - renderer.setSeriesPaint(1, SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_RSS)); - renderer.setSeriesPaint(2, SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_VSS)); + XYAreaRenderer renderer = (XYAreaRenderer) xyplot.getRenderer(); + renderer.setSeriesPaint(0, + SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_PSS)); + renderer.setSeriesPaint(1, + SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_RSS)); + renderer.setSeriesPaint(2, + SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_VSS)); } - + @Override public List getBaseSeriesList() { ArrayList seriesList = new ArrayList(); seriesList.add(VSSMemorySeriesDataSet.baseSeries); seriesList.add(RSSMemorySeriesDataSet.baseSeries); seriesList.add(PSSMemorySeriesDataSet.baseSeries); - + return seriesList; } - + @Override public List getSeriesColorList() { ArrayList seriesColorList = new ArrayList(); - seriesColorList.add(SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_VSS)); - seriesColorList.add(SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_RSS)); - seriesColorList.add(SWTUtils.toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_PSS)); - + seriesColorList.add(SWTUtils + .toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_VSS)); + seriesColorList.add(SWTUtils + .toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_RSS)); + seriesColorList.add(SWTUtils + .toAwtColor(ColorResources.SERIESE_COLOR_PROCESS_PSS)); + return seriesColorList; } - + @Override public String getTooltipContent(int index, double yValue) { StringBuilder returnString = new StringBuilder(); - - return returnString.append(getSeriesNameList().get(index)).append(" : ").append(Formatter.toByteFormat((long)yValue)).toString(); //$NON-NLS-1$ + + return returnString + .append(getSeriesNameList().get(index)) + .append(" : ").append(Formatter.toByteFormat((long) yValue)).toString(); //$NON-NLS-1$ } - + private List getSeriesNameList() { ArrayList seriesNameList = new ArrayList(); seriesNameList.add(TimelineChartLabels.PROCESS_MEMORY_CHART_VSS); seriesNameList.add(TimelineChartLabels.PROCESS_MEMORY_CHART_RSS); seriesNameList.add(TimelineChartLabels.PROCESS_MEMORY_CHART_PSS); - + return seriesNameList; } - + @SuppressWarnings("unchecked") @Override public void update() { Display.getDefault().asyncExec(new Runnable() { public void run() { - Vector tempXYDataItems = (Vector) VSSMemorySeriesDataSet.newXYDataItems.clone(); + Vector tempXYDataItems = (Vector) VSSMemorySeriesDataSet.newXYDataItems + .clone(); VSSMemorySeriesDataSet.newXYDataItems.clear(); for (XYDataItem xyDataItem : tempXYDataItems) { VSSMemorySeriesDataSet.baseSeries.add(xyDataItem); } - tempXYDataItems = (Vector) RSSMemorySeriesDataSet.newXYDataItems.clone(); + tempXYDataItems = (Vector) RSSMemorySeriesDataSet.newXYDataItems + .clone(); RSSMemorySeriesDataSet.newXYDataItems.clear(); for (XYDataItem xyDataItem : tempXYDataItems) { RSSMemorySeriesDataSet.baseSeries.add(xyDataItem); } - - tempXYDataItems = (Vector) PSSMemorySeriesDataSet.newXYDataItems.clone(); + + tempXYDataItems = (Vector) PSSMemorySeriesDataSet.newXYDataItems + .clone(); PSSMemorySeriesDataSet.newXYDataItems.clear(); for (XYDataItem xyDataItem : tempXYDataItems) { PSSMemorySeriesDataSet.baseSeries.add(xyDataItem); } - - if(needUpdateChartRange) { - chart.getXYPlot().getRangeAxis().setRange(new Range(0, chartMaxVal / TempConstants.chartRangeRatio)); + + if (needUpdateChartRange) { + chart.getXYPlot() + .getRangeAxis() + .setRange( + new Range(0, chartMaxVal + / TempConstants.chartRangeRatio)); needUpdateChartRange = false; } } @@ -195,7 +216,7 @@ public class ProcessMemoryChart extends TimelineChart { chart.getXYPlot().getRangeAxis().setRange(new Range(0, 0)); chartMaxVal = 0; needUpdateChartRange = false; - + Display.getDefault().asyncExec(new Runnable() { @Override public void run() { @@ -210,14 +231,26 @@ public class ProcessMemoryChart extends TimelineChart { @Override public void dispose() { try { - VSSMemorySeriesDataSet.baseSeries = VSSMemorySeriesDataSet.baseSeries.createCopy(0, VSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); - VSSMemorySeriesDataSet.newXYDataItems = (Vector) VSSMemorySeriesDataSet.newXYDataItems.clone(); - - RSSMemorySeriesDataSet.baseSeries = RSSMemorySeriesDataSet.baseSeries.createCopy(0, RSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); - RSSMemorySeriesDataSet.newXYDataItems = (Vector) RSSMemorySeriesDataSet.newXYDataItems.clone(); - - PSSMemorySeriesDataSet.baseSeries = PSSMemorySeriesDataSet.baseSeries.createCopy(0, PSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); - PSSMemorySeriesDataSet.newXYDataItems = (Vector) PSSMemorySeriesDataSet.newXYDataItems.clone(); + VSSMemorySeriesDataSet.baseSeries = VSSMemorySeriesDataSet.baseSeries + .createCopy( + 0, + VSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); + VSSMemorySeriesDataSet.newXYDataItems = (Vector) VSSMemorySeriesDataSet.newXYDataItems + .clone(); + + RSSMemorySeriesDataSet.baseSeries = RSSMemorySeriesDataSet.baseSeries + .createCopy( + 0, + RSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); + RSSMemorySeriesDataSet.newXYDataItems = (Vector) RSSMemorySeriesDataSet.newXYDataItems + .clone(); + + PSSMemorySeriesDataSet.baseSeries = PSSMemorySeriesDataSet.baseSeries + .createCopy( + 0, + PSSMemorySeriesDataSet.baseSeries.getItemCount() - 1); + PSSMemorySeriesDataSet.newXYDataItems = (Vector) PSSMemorySeriesDataSet.newXYDataItems + .clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } @@ -225,10 +258,10 @@ public class ProcessMemoryChart extends TimelineChart { @Override public void parsingLogPackage(LogPackage logPack, int probeType) { - if(!isAbleToParse(logPack, probeType)) { + if (!isAbleToParse(logPack, probeType)) { return; } - + Logs logs = logPack.getLogs(probeType); List> logList = logs.getLogs(); for (int i = 0; i < logList.size(); i++) { @@ -247,8 +280,13 @@ public class ProcessMemoryChart extends TimelineChart { double value = 0; try { - time = TimelineUtils.transformLogTimeIntoTimelineTime(Double.parseDouble(log.get(LogCenterConstants.DEVICE_TIME_INDEX))) / TimelineConstants.TIME_US_TO_MS / TimelineConstants.TIME_US_TO_MS; - value = Double.parseDouble(log.get(LogCenterConstants.DEVICE_VSS_MEMORY_INDEX)); + time = TimelineUtils.transformLogTimeIntoTimelineTime(Double + .parseDouble(log + .get(LogCenterConstants.DEVICE_TIME_INDEX))) + / TimelineConstants.TIME_US_TO_MS + / TimelineConstants.TIME_US_TO_MS; + value = Double.parseDouble(log + .get(LogCenterConstants.DEVICE_VSS_MEMORY_INDEX)); } catch (NumberFormatException ne) { ne.printStackTrace(); } catch (NullPointerException ne) { @@ -257,8 +295,9 @@ public class ProcessMemoryChart extends TimelineChart { e.printStackTrace(); } - VSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, value)); - if(chartMaxVal < value) { + VSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, + value)); + if (chartMaxVal < value) { chartMaxVal = value; needUpdateChartRange = true; } @@ -270,8 +309,12 @@ public class ProcessMemoryChart extends TimelineChart { double value = 0; try { - time = Long.parseLong(log.get(LogCenterConstants.DEVICE_TIME_INDEX)) / TimelineConstants.TIME_US_TO_MS / TimelineConstants.TIME_US_TO_MS; - value = Double.parseDouble(log.get(LogCenterConstants.DEVICE_RSS_MEMORY_INDEX)); + time = Long.parseLong(log + .get(LogCenterConstants.DEVICE_TIME_INDEX)) + / TimelineConstants.TIME_US_TO_MS + / TimelineConstants.TIME_US_TO_MS; + value = Double.parseDouble(log + .get(LogCenterConstants.DEVICE_RSS_MEMORY_INDEX)); } catch (NumberFormatException ne) { ne.printStackTrace(); } catch (NullPointerException ne) { @@ -280,17 +323,22 @@ public class ProcessMemoryChart extends TimelineChart { e.printStackTrace(); } - RSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, value)); + RSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, + value)); } - + /* PSS */ if (!log.get(LogCenterConstants.DEVICE_PSS_MEMORY_INDEX).isEmpty()) { long time = 0; double value = 0; try { - time = Long.parseLong(log.get(LogCenterConstants.DEVICE_TIME_INDEX)) / TimelineConstants.TIME_US_TO_MS / TimelineConstants.TIME_US_TO_MS; - value = Double.parseDouble(log.get(LogCenterConstants.DEVICE_PSS_MEMORY_INDEX)); + time = Long.parseLong(log + .get(LogCenterConstants.DEVICE_TIME_INDEX)) + / TimelineConstants.TIME_US_TO_MS + / TimelineConstants.TIME_US_TO_MS; + value = Double.parseDouble(log + .get(LogCenterConstants.DEVICE_PSS_MEMORY_INDEX)); } catch (NumberFormatException ne) { ne.printStackTrace(); } catch (NullPointerException ne) { @@ -299,7 +347,8 @@ public class ProcessMemoryChart extends TimelineChart { e.printStackTrace(); } - PSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, value)); + PSSMemorySeriesDataSet.newXYDataItems.add(new XYDataItem(time, + value)); } } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/LeakDetector.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/LeakDetector.java index 73ad89c..7399da8 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/LeakDetector.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/utils/LeakDetector.java @@ -158,6 +158,10 @@ public class LeakDetector { HashMap addrMap = CallStackManager.getInstance() .getCallStackApiByAddrMap(); + if (null == cdMap || null == addrMap) { + return; + } + int seqNum = Integer .parseInt(input[LogCenterConstants.SEQUENCE_NUMBER_INDEX]); CallStackData csd = cdMap.get(seqNum); @@ -165,10 +169,11 @@ public class LeakDetector { try { addrs = csd.getAddrs(); } catch (Exception e) { -// for (int i = 0; i < input.length; i++) -// System.out.print(input[i] + " "); -// System.out.println(); -// e.printStackTrace(); + System.out.println("no callstack : "); + for (int i = 0; i < input.length; i++) + System.out.print(input[i] + " "); + System.out.println(); + // e.printStackTrace(); return; } if (addrs.isEmpty() || addrs.size() < 3) { -- 2.7.4