From e9cb66ec6806b8bae841dd215875cd40a02b08ac Mon Sep 17 00:00:00 2001 From: greatim Date: Tue, 20 May 2014 21:44:51 +0900 Subject: [PATCH] [Title] follow-up action of commit #21000, some change in DB and communicator [Desc.] [Issue] Change-Id: I94e51eafb7913134bfbe35eab30dc109b71cb214 --- .../widgets/combo/DACustomCombo.java | 1 + .../dynamicanalyzer/common/AnalyzerConstants.java | 4 + .../dynamicanalyzer/common/AnalyzerManager.java | 3 - .../communicator/CommunicatorUtils.java | 46 +++++++---- .../communicator/DACommunicator.java | 88 +++++++++++++++----- .../dynamicanalyzer/database/DBConstants.java | 1 + .../database/RemainingDataManager.java | 2 + .../database/SqlConnectionManager.java | 15 +++- .../dynamicanalyzer/logparser/LogInserter.java | 2 +- .../tizen/dynamicanalyzer/logparser/LogParser.java | 2 +- .../org/tizen/dynamicanalyzer/project/AppInfo.java | 43 +++++----- .../swap/logparser/PageDataManager.java | 4 +- .../swap/logparser/ReadBlockingQueue.java | 28 ++++--- .../swap/logparser/SWAPLogParser.java | 2 +- .../dynamicanalyzer/ui/kernel/CallFlowChart.java | 8 +- .../ui/kernel/ContextSwitchingChart.java | 20 ++--- .../dynamicanalyzer/ui/kernel/KernelListTable.java | 50 ++++++------ .../ui/kernel/data/ContextDataDBInserter.java | 7 +- .../ui/kernel/data/ContextDataDBTable.java | 70 ++++++++-------- .../ui/kernel/data/FunctionDataDBInserter.java | 7 +- .../ui/kernel/data/FunctionDataDBTable.java | 93 +++++++++++---------- .../ui/kernel/data/KernelDataMaker.java | 26 +++--- .../dynamicanalyzer/ui/timeline/CPUDBInserter.java | 7 +- .../ui/timeline/CustomDataDBInserter.java | 94 +++++++++++----------- .../ui/timeline/EnergyDataDBInserter.java | 7 +- .../ui/timeline/ProcessDataDBInserter.java | 7 +- .../ui/timeline/ScreenShotDBInserter.java | 21 +++-- .../ui/timeline/SystemDataDBInserter.java | 21 +++-- .../ui/timeline/SystemDataDBTable.java | 2 +- .../ui/timeline/UIEventDBInserter.java | 23 +++--- .../ui/toolbar/opentrace/OpenTraceInputReader.java | 2 +- .../dynamicanalyzer/uirecorder/UIRecorderTool.java | 5 +- 32 files changed, 390 insertions(+), 321 deletions(-) diff --git a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java index 5c84e38..0737653 100644 --- a/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java +++ b/org.tizen.dynamicanalyzer.widgets/src/org/tizen/dynamicanalyzer/widgets/combo/DACustomCombo.java @@ -528,6 +528,7 @@ public class DACustomCombo extends Canvas { }; public void setEnabled(boolean enabled) { + super.setEnabled(enabled); this.enabled = enabled; if (enabled) { changeComboState(STATE_NORMAL); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java index ec50d5a..d918e88 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java @@ -89,6 +89,10 @@ public class AnalyzerConstants { public static final String CALLSTACK_API_OFFSET_TOKEN = "\\+"; //$NON-NLS-1$ public static final String CLASS = "class"; //$NON-NLS-1$ public static final String DATA_PARSING_TOKEN = "`,"; //$NON-NLS-1$ + + /* thread constant */ + public static final int THREAD_JOIN_WAIT_TIME = 5000; + public static final int INSERT_JOIN_WAIT_TIME = 30000; /* timer intervals */ public static final int SOCKET_CHECK_INTERVAL = 10; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java index 31d37a7..12ecdc1 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerManager.java @@ -90,9 +90,6 @@ public class AnalyzerManager { private static long startBinaryAddr = -1; private static long endBinaryAddr = -1; - public static final int THREAD_JOIN_WAIT_TIME = 5000; - public static final int INSERT_JOIN_WAIT_TIME = 30000; - private static int processCount = 0; public static boolean isExit() { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java index 3adb168..120a87a 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/CommunicatorUtils.java @@ -180,19 +180,11 @@ public class CommunicatorUtils { } public static void execShellCommand(IDevice device, String command, - IShellOutputReceiver receiver) { + IShellOutputReceiver receiver) throws TimeoutException, + SdbCommandRejectedException, ShellCommandUnresponsiveException, + IOException { if (null != device && isOnline(device)) { - try { - device.executeShellCommand(command, receiver); - } catch (TimeoutException e) { - e.printStackTrace(); - } catch (SdbCommandRejectedException e) { - e.printStackTrace(); - } catch (ShellCommandUnresponsiveException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } + device.executeShellCommand(command, receiver); } } @@ -326,19 +318,43 @@ public class CommunicatorUtils { String line = portLines.get(0); try { remotePort = Integer.parseInt(line); - DA_LOG.debug(" !! \nport get success!! : " + remotePort); break; } catch (NumberFormatException e) { System.out.print("="); } } - Thread.sleep(10); + + Thread.sleep(50); } catch (InterruptedException e) { - // e.printStackTrace(); + System.out.print("\n"); DA_LOG.debug("Interrupt occurred - Getting port number"); break; + } catch (SdbCommandRejectedException e) { + System.out.print("\n"); + DA_LOG.debug("Maybe Sdb connection closed - Getting port number"); + break; + } catch (TimeoutException e) { + System.out.print("\n"); + DA_LOG.debug("Timeout occured - Getting port number"); + break; + } catch (ShellCommandUnresponsiveException e) { + System.out.print("\n"); + DA_LOG.debug("Shell command unresponsive - Getting port number"); + break; + } catch (IOException e) { + System.out.print("\n"); + DA_LOG.debug("IOExceoption - Getting port number"); + break; } } + + System.out.print("\n"); + if(remotePort < 0) { + DA_LOG.debug("!!port get failed!!"); + } else { + DA_LOG.debug("!!port get success!! : " + remotePort); + } + return remotePort; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/DACommunicator.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/DACommunicator.java index d60dd79..5e705a2 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/DACommunicator.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/communicator/DACommunicator.java @@ -500,6 +500,13 @@ public class DACommunicator { @Override public void onDisconnected(IDevice device) { // called : each device disconnected time + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(false); + } + }); + DA_LOG.debug("device disconnected : " + device.getSerialNumber()); DeviceInfo deviceInfo = getDeviceByName(device.getSerialNumber()); DeviceInfo selectedDevice = GlobalInformation @@ -517,11 +524,26 @@ public class DACommunicator { } } } + + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(true); + } + }); } @Override public void onConnected(IDevice device) { // It called when dynamic-analyzer start, only one time + + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(false); + } + }); + DA_LOG.debug("device connected : " + device.getSerialNumber()); // addDevice(device); if (!AnalyzerManager.isRunning()) { @@ -542,12 +564,26 @@ public class DACommunicator { } }); } + + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(true); + } + }); } @Override public void onChanged(IDevice device, int changeMask) { // called : device added - already dynamic-analyzer running (not // tracing) + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(false); + } + }); + DA_LOG.debug("device changed : " + device.getSerialNumber() + " " + changeMask); if (1 == changeMask) { @@ -572,34 +608,44 @@ public class DACommunicator { } else { DA_LOG.debug("device changed type :" + changeMask); } + + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + ToolbarArea.getInstance().setMainControlEnablement(true); + } + }); } + }; public static void updateToolbarDevice() { + final List deviceSerials = new ArrayList(); + final String selectedDevice; + DeviceInfo selDev = GlobalInformation.getCurrentDeviceInfo(); + if (selDev != null) { + selectedDevice = selDev.getIDevice().getSerialNumber(); + } else { + selectedDevice = null; + } + int size = getDevices().size(); + int selIndex = 0; + for (int i = 0; i < size; i++) { + String serial = devices.get(i).getIDevice().getSerialNumber(); + deviceSerials.add(serial); + if (null != selectedDevice && selectedDevice.equals(serial)) { + selIndex = i; + } + } + if (!devices.isEmpty()) { + GlobalInformation.setCurrentDeviceInfo(devices.get(selIndex)); + } else { + clearDeviceAppInfo(); + } + Display.getDefault().syncExec(new Runnable() { @Override public void run() { - List deviceSerials = new ArrayList(); - String selectedDevice = null; - DeviceInfo selDev = GlobalInformation.getCurrentDeviceInfo(); - if (selDev != null) - selectedDevice = selDev.getIDevice().getSerialNumber(); - int size = getDevices().size(); - int selIndex = 0; - for (int i = 0; i < size; i++) { - String serial = devices.get(i).getIDevice() - .getSerialNumber(); - deviceSerials.add(serial); - if (null != selectedDevice && selectedDevice.equals(serial)) { - selIndex = i; - } - } - if (!devices.isEmpty()) { - GlobalInformation.setCurrentDeviceInfo(devices - .get(selIndex)); - } else { - clearDeviceAppInfo(); - } ToolbarArea.getInstance().setDeviceComboItems(selectedDevice, deviceSerials); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java index b36fe41..7ee8383 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java @@ -8,6 +8,7 @@ public class DBConstants { public static final String PRIMARY_KEY = "PRIMARY KEY NOT NULL";//$NON-NLS-1$ public static final String NOT_NULL = "not null";//$NON-NLS-1$ + // TODO : need to discuss about each limits // length of common string column public static final int FUNCNAME_LEN = 256; public static final int FILENAME_LEN = 256; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/RemainingDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/RemainingDataManager.java index e4bb554..1b3188c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/RemainingDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/RemainingDataManager.java @@ -3,6 +3,8 @@ package org.tizen.dynamicanalyzer.database; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +// this class is for managing and saving the portion of the remaining string +// which does not fit in the database column. public class RemainingDataManager { private static Map> remainingDataMap = new ConcurrentHashMap>(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java index 81033dc..2940b73 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java @@ -224,6 +224,10 @@ public class SqlConnectionManager { } } + // this method calls specific interface method of each DB table class + // to get preparedStatement of given query. + // this change improve the performance of preparing of query statement. + // (no need to check the type of each column) public static void executePreparedWithInterface(String query, List> data, IPreparedStatement ip) { PreparedStatement prep = null; @@ -295,22 +299,25 @@ public class SqlConnectionManager { while (rs.next()) { List rowData = new ArrayList(); // ResultSet index starts from 1 + // Interger.valueOf(int) is faster than new Integer(int) + // Actually autoboxing of primitive type is same with + // .valueOf() after java 1.5 for (int i = 1; i < columnCount + 1; i++) { if (rsMetaData.getColumnTypeName(i).contains( DBConstants.INTEGER)) { - rowData.add(new Integer(rs.getInt(i))); + rowData.add(Integer.valueOf(rs.getInt(i))); } else if (rsMetaData.getColumnTypeName(i) .contains(DBConstants.LONG)) { - rowData.add(new Long(rs.getLong(i))); + rowData.add(Long.valueOf(rs.getLong(i))); } else if (rsMetaData.getColumnTypeName(i) .contains(DBConstants.VARCHAR)) { rowData.add(rs.getString(i)); } else if (rsMetaData.getColumnTypeName(i) .contains(DBConstants.FLOAT)) { - rowData.add(new Float(rs.getFloat(i))); + rowData.add(Float.valueOf(rs.getFloat(i))); } else if (rsMetaData.getColumnTypeName(i) .contains(DBConstants.BOOLEAN)) { - rowData.add(rs.getBoolean(i)); + rowData.add(Boolean.valueOf(rs.getBoolean(i))); } else { DA_LOG.error("undefined type : " + rsMetaData.getColumnTypeName(i)); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogInserter.java index d83e9d9..103ac6f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogInserter.java @@ -60,7 +60,7 @@ public class LogInserter implements Runnable { if (null != insertLogThread && insertLogThread.isAlive()) { try { sendNotify(); - insertLogThread.join(AnalyzerManager.INSERT_JOIN_WAIT_TIME); + insertLogThread.join(AnalyzerConstants.INSERT_JOIN_WAIT_TIME); DA_LOG.debug("insert thread join complete!!"); //$NON-NLS-1$ } catch (InterruptedException e) { e.printStackTrace(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogParser.java index 3dd8e58..d33064c 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/logparser/LogParser.java @@ -86,7 +86,7 @@ public class LogParser implements Runnable { } try { DA_LOG.debug("wait for log parser join");//$NON-NLS-1$ - logParser.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + logParser.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java index 099beed..225de93 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/AppInfo.java @@ -40,7 +40,6 @@ import org.tizen.dynamicanalyzer.common.GlobalInformation; import org.tizen.dynamicanalyzer.common.path.PathManager; import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.model.AddrSymbolPair; -import org.tizen.dynamicanalyzer.swap.channel.control.ApplicationInst; import org.tizen.dynamicanalyzer.swap.channel.control.BinaryInfo; import org.tizen.dynamicanalyzer.util.DALogger; import org.tizen.dynamicanalyzer.utils.AnalyzerUtil; @@ -66,7 +65,7 @@ public class AppInfo { public static final String APPTYPE_WEB = "webapp";//$NON-NLS-1$ public static final String FLAG_ZERO = "0";//$NON-NLS-1$ public static final String FLAG_ONE = "1";//$NON-NLS-1$ - + public static final String DEBUGPKGTYPE_DEBUG = "debug-";//$NON-NLS-1$ public static final String DEBUGPKGTYPE_DEBUGINFO = "debuginfo";//$NON-NLS-1$ public static final String DEBUGPKGTYPE_DEBUGSOURCE = "debugsource";//$NON-NLS-1$ @@ -94,7 +93,7 @@ public class AppInfo { public void setInstallTime(String installTime) { this.installTime = installTime; } - + public String getDebugFilePath() { return debugFilePath; } @@ -102,7 +101,7 @@ public class AppInfo { public void setDebugFilePath(String debugFilePath) { this.debugFilePath = debugFilePath; } - + public String getSourcePath() { return sourcePath; } @@ -132,11 +131,10 @@ public class AppInfo { if (localPackagePath != null) { int psize = localPackagePath.size(); for (int i = 0; i < psize; i++) { - if (localPackagePath.get(i) - .contains(DEBUGPKGTYPE_DEBUGINFO)) { + if (localPackagePath.get(i).contains(DEBUGPKGTYPE_DEBUGINFO)) { getDebugFilePathFromDebugRpm(localPackagePath.get(i)); - } else if (localPackagePath.get(i) - .contains(DEBUGPKGTYPE_DEBUGSOURCE)) { + } else if (localPackagePath.get(i).contains( + DEBUGPKGTYPE_DEBUGSOURCE)) { getSourcePathFromSourceRpm(localPackagePath.get(i)); } } @@ -156,8 +154,8 @@ public class AppInfo { return symbolExtractor.getAddrSymbolPairs(); } - //TODO: refactoring - make rpm copy/extraction code to utility function - + // TODO: refactoring - make rpm copy/extraction code to utility function + public void getDebugFilePathFromDebugRpm(String debugRpmPath) { String debugFilePath = null; @@ -256,8 +254,7 @@ public class AppInfo { } // future extension for applications with normal debug package - } else if (debugInfoRpmFile.getName() - .contains(DEBUGPKGTYPE_DEBUG)) { + } else if (debugInfoRpmFile.getName().contains(DEBUGPKGTYPE_DEBUG)) { String debugCmd = PathManager.DA_TOOL_FOLDER_PATH + File.separator + "debuginfo.sh -f " + rpmPath + CommonConstants.SPACE + getExecFileName(); @@ -290,7 +287,7 @@ public class AppInfo { if (null != debugFilePath && !debugFilePath.isEmpty()) { setDebugFilePath(debugFilePath); - } + } return; } @@ -298,14 +295,14 @@ public class AppInfo { if (null == sourceRpmPath || sourceRpmPath.isEmpty()) { return; } - + // check rpm file exists File debugsourceRpmFile = new File(sourceRpmPath); if (!debugsourceRpmFile.exists() || debugsourceRpmFile.isDirectory()) { return; } - - // get source project name + + // get source project name // (ex. pr-debugsource-0.0.0-1.1.i586.rpm -> pr-0.0.0) String debugsourceRpmFileName = debugsourceRpmFile.getName(); int index = debugsourceRpmFileName.indexOf(DEBUGPKGTYPE_DEBUGSOURCE); @@ -314,7 +311,7 @@ public class AppInfo { .split(CommonConstants.DASH); String version = splitSrcRpmFileName[splitSrcRpmFileName.length - 2]; String projectName = project + version; - + // copy rpm file String rpmPath = PathManager.DA_RPM_PATH + File.separator + appInfo.get(LABEL_INDEX); @@ -381,8 +378,8 @@ public class AppInfo { Runtime rt = Runtime.getRuntime(); Process process = rt.exec(sourceCmd); process.waitFor(); - BufferedReader reader = new BufferedReader( - new InputStreamReader(process.getInputStream())); + BufferedReader reader = new BufferedReader(new InputStreamReader( + process.getInputStream())); String line = reader.readLine(); if (null == line) { BufferedReader error = new BufferedReader( @@ -401,11 +398,11 @@ public class AppInfo { return; } } - + public String getExecFileName() { if (null == execFileName) { - String[] splitPath = appInfo.get(EXEC_INDEX) - .split(CommonConstants.SLASH); + String[] splitPath = appInfo.get(EXEC_INDEX).split( + CommonConstants.SLASH); if (getAppType().contains(APPTYPE_CPP)) { execFileName = splitPath[splitPath.length - 1] + CommonConstants.EXTENSION_EXEC_FILE; @@ -448,7 +445,7 @@ public class AppInfo { public String getExecPath() { String exec = appInfo.get(EXEC_INDEX); if (getAppType().contains(APPTYPE_CPP)) { - exec = exec.replaceFirst("/opt/apps", "/opt/usr/apps"); + exec = exec.replaceFirst("/opt/apps", "/opt/usr/apps"); exec += CommonConstants.EXTENSION_EXEC_FILE; } return exec; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/PageDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/PageDataManager.java index 3f11320..68f4147 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/PageDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/PageDataManager.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import org.tizen.dynamicanalyzer.common.AnalyzerManager; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.database.DBTable; import org.tizen.dynamicanalyzer.util.DALogger; @@ -51,7 +51,7 @@ public abstract class PageDataManager implements Runnable { try { onThreadStop(); sendNotify(); - thread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + thread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); thread = null; DA_LOG.debug(getName() + " thread joined!"); //$NON-NLS-1$ } catch (InterruptedException e) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/ReadBlockingQueue.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/ReadBlockingQueue.java index aacf3e6..5f91baf 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/ReadBlockingQueue.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/ReadBlockingQueue.java @@ -35,12 +35,14 @@ public class ReadBlockingQueue { dataQueue = new ConcurrentLinkedQueue(); } - public synchronized E poll() { - if (dataQueue.isEmpty()) { - try { - wait(); - } catch (InterruptedException e) { - e.printStackTrace(); + public E poll() { + synchronized (this) { + if (dataQueue.isEmpty()) { + try { + wait(); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } @@ -49,12 +51,16 @@ public class ReadBlockingQueue { return data; } - public synchronized void offer(E data) { - dataQueue.offer(data); - notifyAll(); + public void offer(E data) { + synchronized (this) { + dataQueue.offer(data); + notifyAll(); + } } - public synchronized void wake() { - notifyAll(); + public void wake() { + synchronized (this) { + notifyAll(); + } } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java index 58f0850..4fbd928 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java @@ -103,7 +103,7 @@ public class SWAPLogParser implements Runnable { } try { DA_LOG.debug("wait for log parser join");//$NON-NLS-1$ - logParser.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + logParser.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/CallFlowChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/CallFlowChart.java index 405f4a2..9015788 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/CallFlowChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/CallFlowChart.java @@ -61,7 +61,7 @@ import org.tizen.dynamicanalyzer.widgets.popupMenu.DAPopupMenuItem; public class CallFlowChart extends DAChartBoard { private static final DALogger DA_LOG = DALogger.getInstance(); - + private KernelDataPerThread selectedData = null; private boolean dirty = false; private final KernelDataMaker dataMaker = KernelDataManager.getInstance() @@ -181,12 +181,12 @@ public class CallFlowChart extends DAChartBoard { for (int i = 0; i < fsize; i++) { List idata = functionData.get(i); String funcname = (String) idata - .get(FunctionDataDBTable.COLUMN_INDEX_FUNCNAME); + .get(FunctionDataDBTable.COLUMN.FUNCNAME.index); double funcStart = (double) ((Long) idata - .get(FunctionDataDBTable.COLUMN_INDEX_STARTTIME)) + .get(FunctionDataDBTable.COLUMN.STARTTIME.index)) / TimelineConstants.MEGA_DOUBLE; double funcEnd = (double) ((Long) idata - .get(FunctionDataDBTable.COLUMN_INDEX_ENDTIME)) + .get(FunctionDataDBTable.COLUMN.ENDTIME.index)) / TimelineConstants.MEGA_DOUBLE; DAChartSeries funcSeries = seriesMap.get(funcname); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/ContextSwitchingChart.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/ContextSwitchingChart.java index 6e37375..2e26b40 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/ContextSwitchingChart.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/ContextSwitchingChart.java @@ -197,14 +197,14 @@ public class ContextSwitchingChart extends DAChartBoard { for (int i = 0; i < csize; i++) { List idata = contextData.get(i); int tid = (Integer) idata - .get(ContextDataDBTable.COLUMN_INDEX_TID); + .get(ContextDataDBTable.COLUMN.TID.index); int cpunum = (Integer) idata - .get(ContextDataDBTable.COLUMN_INDEX_CPU); + .get(ContextDataDBTable.COLUMN.CPUNUM.index); double contextStart = (double) ((Long) idata - .get(ContextDataDBTable.COLUMN_INDEX_STARTTIME)) + .get(ContextDataDBTable.COLUMN.STARTTIME.index)) / TimelineConstants.MEGA_DOUBLE; double contextEnd = (double) ((Long) idata - .get(ContextDataDBTable.COLUMN_INDEX_ENDTIME)) + .get(ContextDataDBTable.COLUMN.ENDTIME.index)) / TimelineConstants.MEGA_DOUBLE; DAChartBoardItem coreItem = findCoreBoardItem(threads, tid); @@ -226,19 +226,19 @@ public class ContextSwitchingChart extends DAChartBoard { for (int i = 0; i < fsize; i++) { List idata = functionData.get(i); int tid = (Integer) idata - .get(FunctionDataDBTable.COLUMN_INDEX_TID); + .get(FunctionDataDBTable.COLUMN.TID.index); String funcname = (String) idata - .get(FunctionDataDBTable.COLUMN_INDEX_FUNCNAME); + .get(FunctionDataDBTable.COLUMN.FUNCNAME.index); double funcStart = (double) ((Long) idata - .get(FunctionDataDBTable.COLUMN_INDEX_STARTTIME)) + .get(FunctionDataDBTable.COLUMN.STARTTIME.index)) / TimelineConstants.MEGA_DOUBLE; double funcEnd = (double) ((Long) idata - .get(FunctionDataDBTable.COLUMN_INDEX_ENDTIME)) + .get(FunctionDataDBTable.COLUMN.ENDTIME.index)) / TimelineConstants.MEGA_DOUBLE; int type = (Integer) idata - .get(FunctionDataDBTable.COLUMN_INDEX_STARTTYPE) + .get(FunctionDataDBTable.COLUMN.STARTTYPE.index) + (Integer) idata - .get(FunctionDataDBTable.COLUMN_INDEX_ENDTYPE); + .get(FunctionDataDBTable.COLUMN.ENDTYPE.index); DAChartBoardItem functionItem = findFunctionBoardItem(threads, tid); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/KernelListTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/KernelListTable.java index 8898dfe..2a53228 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/KernelListTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/KernelListTable.java @@ -52,10 +52,10 @@ import org.tizen.dynamicanalyzer.widgets.helper.Formatter; public class KernelListTable extends DAWindowingTableComposite { private KernelDataPerThread selectedData = null; private boolean isCoreSelected = true; - + public KernelListTable(Composite parent, int compStyle, int tableStyle) { super(parent, compStyle, tableStyle); - setDataType(false, 0); // timeColumnIdex + setDataType(false, 0); // timeColumnIdex setContextMenu(AnalyzerConstants.CONTEXT_TABLE_RANGE); table.addSelectionListener(new SelectionListener() { @@ -100,52 +100,52 @@ public class KernelListTable extends DAWindowingTableComposite { int seqnum; long starttime, endtime, exectime; if (isCoreSelected) { - seqnum = (Integer) row.get(ContextDataDBTable.COLUMN_INDEX_SEQ); + seqnum = (Integer) row.get(ContextDataDBTable.COLUMN.SEQ.index); starttime = (Long) row - .get(ContextDataDBTable.COLUMN_INDEX_STARTTIME); + .get(ContextDataDBTable.COLUMN.STARTTIME.index); endtime = (Long) row - .get(ContextDataDBTable.COLUMN_INDEX_ENDTIME); + .get(ContextDataDBTable.COLUMN.ENDTIME.index); exectime = endtime - starttime; - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_SEQ) + text.add(row.get(ContextDataDBTable.COLUMN.SEQ.index) .toString()); - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_PID) + text.add(row.get(ContextDataDBTable.COLUMN.PID.index) .toString()); - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_TID) + text.add(row.get(ContextDataDBTable.COLUMN.TID.index) .toString()); - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_CPU) + text.add(row.get(ContextDataDBTable.COLUMN.CPUNUM.index) .toString()); text.add(Formatter.toTimeFormat(starttime)); text.add(Formatter.toTimeFormat(endtime)); text.add(Formatter.toTimeFormat(exectime)); - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_STARTADDR) + text.add(row.get(ContextDataDBTable.COLUMN.STARTADDR.index) .toString()); - text.add(row.get(ContextDataDBTable.COLUMN_INDEX_ENDADDR) + text.add(row.get(ContextDataDBTable.COLUMN.ENDADDR.index) .toString()); text.add(""); } else { seqnum = (Integer) row - .get(FunctionDataDBTable.COLUMN_INDEX_SEQ); + .get(FunctionDataDBTable.COLUMN.SEQ.index); starttime = (Long) row - .get(FunctionDataDBTable.COLUMN_INDEX_STARTTIME); + .get(FunctionDataDBTable.COLUMN.STARTTIME.index); endtime = (Long) row - .get(FunctionDataDBTable.COLUMN_INDEX_ENDTIME); + .get(FunctionDataDBTable.COLUMN.ENDTIME.index); exectime = endtime - starttime; - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_SEQ) + text.add(row.get(FunctionDataDBTable.COLUMN.SEQ.index) .toString()); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_PID) + text.add(row.get(FunctionDataDBTable.COLUMN.PID.index) .toString()); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_TID) + text.add(row.get(FunctionDataDBTable.COLUMN.TID.index) .toString()); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_CPU) + text.add(row.get(FunctionDataDBTable.COLUMN.CPUNUM.index) .toString()); text.add(Formatter.toTimeFormat(starttime)); text.add(Formatter.toTimeFormat(endtime)); text.add(Formatter.toTimeFormat(exectime)); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_STARTADDR) + text.add(row.get(FunctionDataDBTable.COLUMN.STARTADDR.index) .toString()); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_ENDADDR) + text.add(row.get(FunctionDataDBTable.COLUMN.ENDADDR.index) .toString()); - text.add(row.get(FunctionDataDBTable.COLUMN_INDEX_FUNCNAME) + text.add(row.get(FunctionDataDBTable.COLUMN.FUNCNAME.index) .toString()); } @@ -237,9 +237,9 @@ public class KernelListTable extends DAWindowingTableComposite { + selectedData.getTid() + " order by "; if (isCoreSelected) - option += ContextDataDBTable.STARTTIME; + option += ContextDataDBTable.COLUMN.STARTTIME.name; else - option += FunctionDataDBTable.STARTTIME; + option += FunctionDataDBTable.COLUMN.STARTTIME.name; return option; } else { @@ -275,9 +275,9 @@ public class KernelListTable extends DAWindowingTableComposite { protected String getTimeColumnName() { String timestr; if (isCoreSelected) - timestr = ContextDataDBTable.STARTTIME; + timestr = ContextDataDBTable.COLUMN.STARTTIME.name; else - timestr = FunctionDataDBTable.STARTTIME; + timestr = FunctionDataDBTable.COLUMN.STARTTIME.name; return timestr; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBInserter.java index 8dbdf5e..9885137 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.kernel.data; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; @@ -52,7 +53,7 @@ public class ContextDataDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -80,8 +81,6 @@ public class ContextDataDBInserter implements Runnable { } public static void sendNotify() { - synchronized (contextDataQueue) { - contextDataQueue.notifyAll(); - } + contextDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBTable.java index 708a069..000a148 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBTable.java @@ -10,24 +10,25 @@ import org.tizen.dynamicanalyzer.database.DBTable; public class ContextDataDBTable extends DBTable { private static final String TABLENAME = "ContextSwitchData"; - - public static final String SEQ = DBConstants.COMMON_COLUMN_SEQ; - public static final String PID = DBConstants.COMMON_COLUMN_PID; - public static final String TID = DBConstants.COMMON_COLUMN_TID; - public static final String CPUNUM = "CpuNum"; - public static final String STARTTIME = "StartTime"; - public static final String STARTADDR = "StartPcAddr"; - public static final String ENDTIME = "EndTime"; - public static final String ENDADDR = "EndPcAddr"; - - public final static int COLUMN_INDEX_SEQ = 0; - public final static int COLUMN_INDEX_PID = 1; - public final static int COLUMN_INDEX_TID = 2; - public final static int COLUMN_INDEX_CPU = 3; - public final static int COLUMN_INDEX_STARTTIME = 4; - public final static int COLUMN_INDEX_STARTADDR = 5; - public final static int COLUMN_INDEX_ENDTIME = 6; - public final static int COLUMN_INDEX_ENDADDR = 7; + + public enum COLUMN { + SEQ(0, DBConstants.COMMON_COLUMN_SEQ), + PID(1, DBConstants.COMMON_COLUMN_PID), + TID(2, DBConstants.COMMON_COLUMN_TID), + CPUNUM(3, "CpuNum"), + STARTTIME(4, "StartTime"), + STARTADDR(5, "StartPcAddr"), + ENDTIME(6, "EndTime"), + ENDADDR(7, "EndPcAddr"); + + public final int index; + public final String name; + + COLUMN(int index, String name) { + this.index = index; + this.name = name; + } + } @Override public String getTableName() { @@ -35,14 +36,14 @@ public class ContextDataDBTable extends DBTable { } public ContextDataDBTable() { - addColumn(new DBColumn(SEQ, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(TID, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(CPUNUM, DBConstants.EMPTY, DBConstants.INTEGER)); - addColumn(new DBColumn(STARTTIME, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(STARTADDR, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(ENDTIME, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(ENDADDR, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.SEQ.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.PID.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.TID.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.CPUNUM.name, DBConstants.EMPTY, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.STARTTIME.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.STARTADDR.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.ENDTIME.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.ENDADDR.name, DBConstants.EMPTY, DBConstants.LONG)); } @Override @@ -54,15 +55,14 @@ public class ContextDataDBTable extends DBTable { isPrepared = false; } else { try { - prep.setInt(1, (Integer) (rowData.get(0))); - prep.setInt(2, (Integer) (rowData.get(1))); - prep.setInt(3, (Integer) (rowData.get(2))); - prep.setInt(4, (Integer) (rowData.get(3))); - - prep.setLong(5, (Long) (rowData.get(4))); - prep.setLong(6, (Long) (rowData.get(5))); - prep.setLong(7, (Long) (rowData.get(6))); - prep.setLong(8, (Long) (rowData.get(7))); + prep.setInt(COLUMN.SEQ.index + 1, (Integer) (rowData.get(COLUMN.SEQ.index))); + prep.setInt(COLUMN.PID.index + 1, (Integer) (rowData.get(COLUMN.PID.index))); + prep.setInt(COLUMN.TID.index + 1, (Integer) (rowData.get(COLUMN.TID.index))); + prep.setInt(COLUMN.CPUNUM.index + 1, (Integer) (rowData.get(COLUMN.CPUNUM.index))); + prep.setLong(COLUMN.STARTTIME.index + 1, (Long) (rowData.get(COLUMN.STARTTIME.index))); + prep.setLong(COLUMN.STARTADDR.index + 1, (Long) (rowData.get(COLUMN.STARTADDR.index))); + prep.setLong(COLUMN.ENDTIME.index + 1, (Long) (rowData.get(COLUMN.ENDTIME.index))); + prep.setLong(COLUMN.ENDADDR.index + 1, (Long) (rowData.get(COLUMN.ENDADDR.index))); } catch (SQLException e) { e.printStackTrace(); isPrepared = false; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBInserter.java index 64ee1d8..c110bac 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.kernel.data; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; @@ -52,7 +53,7 @@ public class FunctionDataDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -80,8 +81,6 @@ public class FunctionDataDBInserter implements Runnable { } public static void sendNotify() { - synchronized (functionDataQueue) { - functionDataQueue.notifyAll(); - } + functionDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBTable.java index 8588e25..571a2a4 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBTable.java @@ -11,29 +11,27 @@ import org.tizen.dynamicanalyzer.database.DBTable; public class FunctionDataDBTable extends DBTable { private static final String TABLENAME = "FunctionCallData"; - public static final String SEQ = DBConstants.COMMON_COLUMN_SEQ; - public static final String PID = DBConstants.COMMON_COLUMN_PID; - public static final String TID = DBConstants.COMMON_COLUMN_TID; - public static final String CPUNUM = "CpuNum"; - public static final String STARTTIME = "StartTime"; - public static final String STARTTYPE = "StartType"; - public static final String STARTADDR = "StartPcAddr"; - public static final String ENDTIME = "EndTime"; - public static final String ENDTYPE = "EndType"; - public static final String ENDADDR = "EndPcAddr"; - public static final String FUNCNAME = "FunctionName"; - - public final static int COLUMN_INDEX_SEQ = 0; - public final static int COLUMN_INDEX_PID = 1; - public final static int COLUMN_INDEX_TID = 2; - public final static int COLUMN_INDEX_CPU = 3; - public final static int COLUMN_INDEX_STARTTIME = 4; - public final static int COLUMN_INDEX_STARTTYPE = 5; - public final static int COLUMN_INDEX_STARTADDR = 6; - public final static int COLUMN_INDEX_ENDTIME = 7; - public final static int COLUMN_INDEX_ENDTYPE = 8; - public final static int COLUMN_INDEX_ENDADDR = 9; - public final static int COLUMN_INDEX_FUNCNAME = 10; + public enum COLUMN { + SEQ(0, DBConstants.COMMON_COLUMN_SEQ), + PID(1, DBConstants.COMMON_COLUMN_PID), + TID(2, DBConstants.COMMON_COLUMN_TID), + CPUNUM(3, "CpuNum"), + STARTTIME(4, "StartTime"), + STARTTYPE(5, "StartType"), + STARTADDR(6, "StartPcAddr"), + ENDTIME(7, "EndTime"), + ENDTYPE(8, "EndType"), + ENDADDR(9, "EndPcAddr"), + FUNCNAME(10, "FunctionName"); + + public final int index; + public final String name; + + COLUMN(int index, String name) { + this.index = index; + this.name = name; + } + } @Override public String getTableName() { @@ -41,18 +39,17 @@ public class FunctionDataDBTable extends DBTable { } public FunctionDataDBTable() { - addColumn(new DBColumn(SEQ, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(PID, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(TID, DBConstants.NOT_NULL, DBConstants.INTEGER)); - addColumn(new DBColumn(CPUNUM, DBConstants.EMPTY, DBConstants.INTEGER)); - addColumn(new DBColumn(STARTTIME, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(STARTTYPE, DBConstants.EMPTY, - DBConstants.INTEGER)); - addColumn(new DBColumn(STARTADDR, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(ENDTIME, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(ENDTYPE, DBConstants.EMPTY, DBConstants.INTEGER)); - addColumn(new DBColumn(ENDADDR, DBConstants.EMPTY, DBConstants.LONG)); - addColumn(new DBColumn(FUNCNAME, DBConstants.EMPTY, + addColumn(new DBColumn(COLUMN.SEQ.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.PID.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.TID.name, DBConstants.NOT_NULL, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.CPUNUM.name, DBConstants.EMPTY, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.STARTTIME.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.STARTTYPE.name, DBConstants.EMPTY, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.STARTADDR.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.ENDTIME.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.ENDTYPE.name, DBConstants.EMPTY, DBConstants.INTEGER)); + addColumn(new DBColumn(COLUMN.ENDADDR.name, DBConstants.EMPTY, DBConstants.LONG)); + addColumn(new DBColumn(COLUMN.FUNCNAME.name, DBConstants.EMPTY, DBConstants.VARCHAR, DBConstants.FUNCNAME_LEN)); } @@ -65,23 +62,23 @@ public class FunctionDataDBTable extends DBTable { isPrepared = false; } else { try { - prep.setInt(1, (Integer) (rowData.get(0))); - prep.setInt(2, (Integer) (rowData.get(1))); - prep.setInt(3, (Integer) (rowData.get(2))); - prep.setInt(4, (Integer) (rowData.get(3))); + prep.setInt(COLUMN.SEQ.index + 1, (Integer) (rowData.get(COLUMN.SEQ.index))); + prep.setInt(COLUMN.PID.index + 1, (Integer) (rowData.get(COLUMN.PID.index))); + prep.setInt(COLUMN.TID.index + 1, (Integer) (rowData.get(COLUMN.TID.index))); + prep.setInt(COLUMN.CPUNUM.index + 1, (Integer) (rowData.get(COLUMN.CPUNUM.index))); - prep.setLong(5, (Long) (rowData.get(4))); - prep.setInt(6, (Integer) (rowData.get(5))); - prep.setLong(7, (Long) (rowData.get(6))); + prep.setLong(COLUMN.STARTTIME.index + 1, (Long) (rowData.get(COLUMN.STARTTIME.index))); + prep.setInt(COLUMN.STARTTYPE.index + 1, (Integer) (rowData.get(COLUMN.STARTTYPE.index))); + prep.setLong(COLUMN.STARTADDR.index + 1, (Long) (rowData.get(COLUMN.STARTADDR.index))); - prep.setLong(8, (Long) (rowData.get(7))); - prep.setInt(9, (Integer) (rowData.get(8))); - prep.setLong(10, (Long) (rowData.get(9))); + prep.setLong(COLUMN.ENDTIME.index + 1, (Long) (rowData.get(COLUMN.ENDTIME.index))); + prep.setInt(COLUMN.ENDTYPE.index + 1, (Integer) (rowData.get(COLUMN.ENDTYPE.index))); + prep.setLong(COLUMN.ENDADDR.index + 1, (Long) (rowData.get(COLUMN.ENDADDR.index))); - String retstr = clipString((String) (rowData.get(10)), - DBConstants.FUNCNAME_LEN, rowData.get(0).toString()); + String retstr = clipString((String) (rowData.get(COLUMN.FUNCNAME.index)), + DBConstants.FUNCNAME_LEN, rowData.get(COLUMN.SEQ.index).toString()); - prep.setString(11, retstr); + prep.setString(COLUMN.FUNCNAME.index + 1, retstr); } catch (SQLException e) { e.printStackTrace(); isPrepared = false; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/KernelDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/KernelDataMaker.java index f07b002..b16e622 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/KernelDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/KernelDataMaker.java @@ -311,8 +311,9 @@ public class KernelDataMaker { public List> getContextDataFromDB(long start, long end) { String where = String.format(queryto_withTime, - ContextDataDBTable.STARTTIME, end, ContextDataDBTable.ENDTIME, - start, ContextDataDBTable.STARTTIME); + ContextDataDBTable.COLUMN.STARTTIME.name, end, + ContextDataDBTable.COLUMN.ENDTIME.name, start, + ContextDataDBTable.COLUMN.STARTTIME.name); DBTable table = KernelDataManager.getInstance().getContextDataTable(); @@ -325,15 +326,15 @@ public class KernelDataMaker { if (tid >= 0) { where = String.format(queryto_withTidAndTime, - FunctionDataDBTable.TID, tid, - FunctionDataDBTable.STARTTIME, end, - FunctionDataDBTable.ENDTIME, start, - FunctionDataDBTable.STARTTIME); + FunctionDataDBTable.COLUMN.TID.name, tid, + FunctionDataDBTable.COLUMN.STARTTIME.name, end, + FunctionDataDBTable.COLUMN.ENDTIME.name, start, + FunctionDataDBTable.COLUMN.STARTTIME.name); } else { where = String.format(queryto_withTime, - FunctionDataDBTable.STARTTIME, end, - FunctionDataDBTable.ENDTIME, start, - FunctionDataDBTable.STARTTIME); + FunctionDataDBTable.COLUMN.STARTTIME.name, end, + FunctionDataDBTable.COLUMN.ENDTIME.name, start, + FunctionDataDBTable.COLUMN.STARTTIME.name); } DBTable table = KernelDataManager.getInstance().getFunctionDataTable(); @@ -342,11 +343,12 @@ public class KernelDataMaker { } public List> getFuncnameFromDB(int tid) { - String where = String.format(queryto_withTid, FunctionDataDBTable.TID, - tid, FunctionDataDBTable.FUNCNAME); + String where = String.format(queryto_withTid, + FunctionDataDBTable.COLUMN.TID.name, tid, + FunctionDataDBTable.COLUMN.FUNCNAME.name); List selectColumn = new ArrayList(); - selectColumn.add(FunctionDataDBTable.FUNCNAME); + selectColumn.add(FunctionDataDBTable.COLUMN.FUNCNAME.name); DBTable table = KernelDataManager.getInstance().getFunctionDataTable(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CPUDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CPUDBInserter.java index fc6ee07..01dc543 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CPUDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CPUDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -53,7 +54,7 @@ public class CPUDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -83,9 +84,7 @@ public class CPUDBInserter implements Runnable { } public static void sendNotify() { - synchronized (cpuDataQueue) { - cpuDataQueue.notifyAll(); - } + cpuDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBInserter.java index fa7848d..07e7b42 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBInserter.java @@ -28,63 +28,63 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; public class CustomDataDBInserter implements Runnable { - private static ReadBlockingQueue>> customDataQueue = new ReadBlockingQueue>>(); + private static ReadBlockingQueue>> customDataQueue = new ReadBlockingQueue>>(); - private static volatile Thread inserterThread = null; + private static volatile Thread inserterThread = null; - public static void startThread() { - if (inserterThread == null || !inserterThread.isAlive()) { - synchronized (CustomDataDBInserter.class) { - if (inserterThread == null || !inserterThread.isAlive()) { - inserterThread = new Thread(null, - new CustomDataDBInserter()); - inserterThread.start(); - } - } - } - } + public static void startThread() { + if (inserterThread == null || !inserterThread.isAlive()) { + synchronized (CustomDataDBInserter.class) { + if (inserterThread == null || !inserterThread.isAlive()) { + inserterThread = new Thread(null, + new CustomDataDBInserter()); + inserterThread.start(); + } + } + } + } - public static void stopThread() { - if (inserterThread != null && inserterThread.isAlive()) { - try { - sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } + public static void stopThread() { + if (inserterThread != null && inserterThread.isAlive()) { + try { + sendNotify(); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } - public static void pushContextData(List> data) { - customDataQueue.offer(data); - } + public static void pushContextData(List> data) { + customDataQueue.offer(data); + } - public static void clear() { - stopThread(); - } + public static void clear() { + stopThread(); + } - @Override - public void run() { - while (!AnalyzerManager.isExit()) { - List> customData = customDataQueue.poll(); - - if (customData != null && customData.size() != 0) { - for (int i = 0; i < customData.size(); i++) { - List row = customData.get(i); - } - TimelineChartManager.getInstance().getCustomDataTable().insertData(customData); - } - } - } + @Override + public void run() { + while (!AnalyzerManager.isExit()) { + List> customData = customDataQueue.poll(); - public static void sendNotify() { - synchronized (customDataQueue) { - customDataQueue.notifyAll(); - } - } + if (customData != null && customData.size() != 0) { + for (int i = 0; i < customData.size(); i++) { + List row = customData.get(i); + } + TimelineChartManager.getInstance().getCustomDataTable() + .insertData(customData); + } + } + } + + public static void sendNotify() { + customDataQueue.wake(); + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/EnergyDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/EnergyDataDBInserter.java index 8e534e8..8181906 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/EnergyDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/EnergyDataDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -53,7 +54,7 @@ public class EnergyDataDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -83,8 +84,6 @@ public class EnergyDataDBInserter implements Runnable { } public static void sendNotify() { - synchronized (energyDataQueue) { - energyDataQueue.notifyAll(); - } + energyDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ProcessDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ProcessDataDBInserter.java index 2d51ab5..4158dd0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ProcessDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ProcessDataDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -53,7 +54,7 @@ public class ProcessDataDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -83,9 +84,7 @@ public class ProcessDataDBInserter implements Runnable { } public static void sendNotify() { - synchronized (processDataQueue) { - processDataQueue.notifyAll(); - } + processDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ScreenShotDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ScreenShotDBInserter.java index df7a0bb..486293d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ScreenShotDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/ScreenShotDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -53,7 +54,7 @@ public class ScreenShotDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -61,7 +62,7 @@ public class ScreenShotDBInserter implements Runnable { } public static void pushContextData(List> data) { - screenShotDataQueue.offer(data); + screenShotDataQueue.offer(data); } public static void clear() { @@ -72,21 +73,19 @@ public class ScreenShotDBInserter implements Runnable { public void run() { while (!AnalyzerManager.isExit()) { List> screenShotData = screenShotDataQueue.poll(); - + if (screenShotData != null && screenShotData.size() != 0) { - for (int i = 0; i < screenShotData.size(); i++) { - List row = screenShotData.get(i); - } - TimelineChartManager.getInstance().getScreenShotTable().insertData(screenShotData); + for (int i = 0; i < screenShotData.size(); i++) { + List row = screenShotData.get(i); + } + TimelineChartManager.getInstance().getScreenShotTable() + .insertData(screenShotData); } } } public static void sendNotify() { - synchronized (screenShotDataQueue) { - screenShotDataQueue.notifyAll(); - } + screenShotDataQueue.wake(); } } - diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBInserter.java index 51b5788..2d5d1d4 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -53,7 +54,7 @@ public class SystemDataDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -61,7 +62,7 @@ public class SystemDataDBInserter implements Runnable { } public static void pushContextData(List> data) { - systemDataQueue.offer(data); + systemDataQueue.offer(data); } public static void clear() { @@ -72,13 +73,13 @@ public class SystemDataDBInserter implements Runnable { public void run() { while (!AnalyzerManager.isExit()) { List> contextData = systemDataQueue.poll(); - + if (contextData != null && contextData.size() != 0) { - for (int i = 0; i < contextData.size(); i++) { - List row = contextData.get(i); -// System.err.print("Count : " + row.size() + ", "); - } -// System.err.println("\n----------------------------"); + for (int i = 0; i < contextData.size(); i++) { + List row = contextData.get(i); + // System.err.print("Count : " + row.size() + ", "); + } + // System.err.println("\n----------------------------"); TimelineChartManager.getInstance().getSystemDataTable() .insertData(contextData); } @@ -86,9 +87,7 @@ public class SystemDataDBInserter implements Runnable { } public static void sendNotify() { - synchronized (systemDataQueue) { - systemDataQueue.notifyAll(); - } + systemDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java index 7ca42d0..55aa0d4 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/SystemDataDBTable.java @@ -38,7 +38,7 @@ public class SystemDataDBTable extends DBTable { private static final String TABLENAME = "TIMELINE_SYSTEM_DATA"; public static enum COLUMN { - TIME, + TIME, CPU_LOAD_APP, CPU_LOAD_TOTAL, PROCESS_COUNT, diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBInserter.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBInserter.java index 79c97cb..05c7059 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBInserter.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBInserter.java @@ -28,6 +28,7 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.util.List; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.swap.logparser.ReadBlockingQueue; import org.tizen.dynamicanalyzer.ui.timeline.common.TimelineChartManager; @@ -41,8 +42,7 @@ public class UIEventDBInserter implements Runnable { if (inserterThread == null || !inserterThread.isAlive()) { synchronized (UIEventDBInserter.class) { if (inserterThread == null || !inserterThread.isAlive()) { - inserterThread = new Thread(null, - new UIEventDBInserter()); + inserterThread = new Thread(null, new UIEventDBInserter()); inserterThread.start(); } } @@ -53,7 +53,7 @@ public class UIEventDBInserter implements Runnable { if (inserterThread != null && inserterThread.isAlive()) { try { sendNotify(); - inserterThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + inserterThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } @@ -61,7 +61,7 @@ public class UIEventDBInserter implements Runnable { } public static void pushContextData(List> data) { - uiEventDataQueue.offer(data); + uiEventDataQueue.offer(data); } public static void clear() { @@ -72,20 +72,19 @@ public class UIEventDBInserter implements Runnable { public void run() { while (!AnalyzerManager.isExit()) { List> uiEventData = uiEventDataQueue.poll(); - + if (uiEventData != null && uiEventData.size() != 0) { - for (int i = 0; i < uiEventData.size(); i++) { - List row = uiEventData.get(i); - } - TimelineChartManager.getInstance().getUIEventTable().insertData(uiEventData); + for (int i = 0; i < uiEventData.size(); i++) { + List row = uiEventData.get(i); + } + TimelineChartManager.getInstance().getUIEventTable() + .insertData(uiEventData); } } } public static void sendNotify() { - synchronized (uiEventDataQueue) { - uiEventDataQueue.notifyAll(); - } + uiEventDataQueue.wake(); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceInputReader.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceInputReader.java index 9c5f990..463fa7e 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceInputReader.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceInputReader.java @@ -57,7 +57,7 @@ public class OpenTraceInputReader implements Runnable { if (null != openTraceInputThread && openTraceInputThread.isAlive()) { try { openTraceInputThread - .join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + .join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/uirecorder/UIRecorderTool.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/uirecorder/UIRecorderTool.java index bce201c..73d62b3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/uirecorder/UIRecorderTool.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/uirecorder/UIRecorderTool.java @@ -27,6 +27,7 @@ package org.tizen.dynamicanalyzer.uirecorder; +import org.tizen.dynamicanalyzer.common.AnalyzerConstants; import org.tizen.dynamicanalyzer.common.AnalyzerManager; import org.tizen.dynamicanalyzer.util.DALogger; @@ -76,7 +77,7 @@ public class UIRecorderTool { try { sendNotify(); DA_LOG.debug("record thread join wait!"); - recordThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + recordThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); } catch (InterruptedException e) { e.printStackTrace(); DA_LOG.debug("record thread join interrupted!"); @@ -87,7 +88,7 @@ public class UIRecorderTool { try { playThread.interrupt(); DA_LOG.debug("replay thread join wait!"); - playThread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME); + playThread.join(AnalyzerConstants.THREAD_JOIN_WAIT_TIME); DA_LOG.debug("replay thread join successed!"); } catch (InterruptedException e) { e.printStackTrace(); -- 2.7.4