From 38820de6eee13c962a231279c349a42ef0f9bb2a Mon Sep 17 00:00:00 2001 From: greatim Date: Mon, 22 Sep 2014 01:45:33 +0900 Subject: [PATCH] DB: remove old database class totally remove old database class totally refactor selectData function of DBTable class Change-Id: I28375a1398f1762987f309d93d2d133e7d61296c Signed-off-by: greatim --- .../tizen/dynamicanalyzer/database/DBTable.java | 48 ++++++- .../tizen/dynamicanalyzer/database/IResultSet.java | 8 ++ .../dynamicanalyzer/project/DeviceStatusInfo.java | 2 +- .../project/ProcessInformation.java | 27 ++-- .../dynamicanalyzer/project/ProcessMemoryMap.java | 2 +- .../org/tizen/dynamicanalyzer/project/Project.java | 4 +- .../project/data/BinaryInfoDBTable.java | 19 +++ .../project/data/FunctionNameDBTable.java | 16 +++ .../project/data/MemoryMapDBTable.java | 20 +++ .../project/data/ProcessInfoDBTable.java | 20 +++ .../swap/logparser/SWAPLogParser.java | 1 - .../ui/info/callstack/CallStackDataDBTable.java | 17 ++- .../ui/info/callstack/CallStackUnitDBTable.java | 24 +++- .../ui/info/screenshot/ScreenShotDBTable.java | 17 +++ .../ui/kernel/data/ContextDataDBTable.java | 24 +++- .../ui/kernel/data/FunctionDataDBTable.java | 25 ++++ .../ui/kernel/data/KernelDataMaker.java | 53 ++++---- .../ui/summary/failed/FailedApiDataDBTable.java | 34 ++++- .../ui/summary/failed/FailedApiDataMaker.java | 51 ++++++- .../ui/summary/leaks/LeakDataMaker.java | 146 ++++++++++++++++++--- .../summary/profiling/FunctionSampleDBTable.java | 22 +++- .../profiling/ProfilingChildDataDBTable.java | 20 ++- .../ui/summary/profiling/ProfilingDataDBTable.java | 27 +++- .../ui/summary/warning/WarningDataMaker.java | 81 +++++++++++- .../ui/timeline/CustomDataDBTable.java | 17 +++ .../ui/timeline/SystemDataDBTable.java | 34 +++++ .../ui/timeline/TargetProcessDBTable.java | 29 +++- .../ui/timeline/UIEventDBTable.java | 21 +++ .../timeline/calltrace/FunctionEntryDBTable.java | 26 +++- .../ui/timeline/calltrace/FunctionExitDBTable.java | 20 ++- .../ui/timeline/common/TimelineChartManager.java | 14 +- 31 files changed, 775 insertions(+), 94 deletions(-) create mode 100644 org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/IResultSet.java diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBTable.java index 0537520..71c1116 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBTable.java @@ -27,13 +27,14 @@ package org.tizen.dynamicanalyzer.database; import java.sql.Array; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.constant.CommonConstants; -public abstract class DBTable implements IPreparedStatement { +public abstract class DBTable implements IPreparedStatement, IResultSet { private List columns = new ArrayList(); // instance initializing block @@ -116,9 +117,13 @@ public abstract class DBTable implements IPreparedStatement { } } + public final List> selectAllColumnData(String option) { + return selectData(null, option, this); + } + // select data from this table // if column list is null, then all column will be selected - public final List> selectData(List column, String option) { + public final List> selectData(List column, String option, IResultSet irs) { StringBuffer query = new StringBuffer(); query.append("select "); @@ -143,7 +148,18 @@ public abstract class DBTable implements IPreparedStatement { query.append(" ").append(option); } - return SqlConnectionManager.executeQuery(query.toString()); + List> resultdata = new ArrayList>(); + ResultSet rs = SqlConnectionManager.executeQueryRS(query.toString()); + if (rs != null) { + List row = irs.extractDataFromResultSet(rs); + if (row != null && !row.isEmpty()) { + resultdata.add(row); + } + + SqlConnectionManager.releaseResultSet(rs); + } + + return resultdata; } public final void createIndexTable() { @@ -183,4 +199,30 @@ public abstract class DBTable implements IPreparedStatement { e.printStackTrace(); } } + + @SuppressWarnings("unchecked") + protected List getArrayFromResultSet(ResultSet rs, int index, T type) { + try { + Array sqlArray = rs.getArray(index); + if (sqlArray == null) { + return null; + } else { + List rlist = new ArrayList(); + Object[] objarray = (Object[]) sqlArray.getArray(); + int len = objarray.length; + for (int i = 0; i < len; i++) { + rlist.add((T) objarray[i]); + } + return rlist; + } + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + } + + // default implementation of IResultSet + public List extractDataFromResultSet(ResultSet rs) { + return null; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/IResultSet.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/IResultSet.java new file mode 100644 index 0000000..244be8a --- /dev/null +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/IResultSet.java @@ -0,0 +1,8 @@ +package org.tizen.dynamicanalyzer.database; + +import java.sql.ResultSet; +import java.util.List; + +public interface IResultSet { + public List extractDataFromResultSet(ResultSet rs); +} diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/DeviceStatusInfo.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/DeviceStatusInfo.java index 2687b64..67431e8 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/DeviceStatusInfo.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/DeviceStatusInfo.java @@ -280,7 +280,7 @@ public class DeviceStatusInfo { } public void openBinaryInfo(DBTable table) { - List> datas = table.selectData(null, null); + List> datas = table.selectAllColumnData(null); List keylist = new ArrayList(); List valuelist = new ArrayList(); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessInformation.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessInformation.java index 396ee94..964b3eb 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessInformation.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessInformation.java @@ -25,6 +25,8 @@ */ package org.tizen.dynamicanalyzer.project; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -171,18 +173,21 @@ public class ProcessInformation { processMemSnapshots.clear(); String query = String.format(QUERY_DISTINCT_TIME, table.getTableName(), getPid()); - List> distinctdata = SqlConnectionManager.executeQuery(query); - if (distinctdata != null) { - int rowsize = distinctdata.size(); - for (int i = 0; i < rowsize; i++) { - List rowdata = distinctdata.get(i); - long time = ((Long) rowdata.get(0)).longValue(); - - ProcessMemoryMap pmap = new ProcessMemoryMap(getPid(), time); - pmap.openMemoryMap(table); - - processMemSnapshots.put(Long.valueOf(time), pmap); + ResultSet rs = SqlConnectionManager.executeQueryRS(query); + if (rs != null) { + try { + while (rs.next()) { + long time = rs.getLong(1); + ProcessMemoryMap pmap = new ProcessMemoryMap(getPid(), time); + pmap.openMemoryMap(table); + + processMemSnapshots.put(Long.valueOf(time), pmap); + } + } catch (SQLException e) { + e.printStackTrace(); } + + SqlConnectionManager.releaseResultSet(rs); } } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessMemoryMap.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessMemoryMap.java index e46431d..4bc39ba 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessMemoryMap.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/ProcessMemoryMap.java @@ -152,7 +152,7 @@ public class ProcessMemoryMap { binaryByBinaryID.clear(); String where = String.format(WHERE_PID_TIME, pid, capturedTime); - List> memdatas = table.selectData(null, where); + List> memdatas = table.selectAllColumnData(where); if (memdatas != null) { int rsize = memdatas.size(); for (int i = 0; i < rsize; i++) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java index 0680d37..43ccb76 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/Project.java @@ -720,7 +720,7 @@ public class Project { } private void openFunctionInfo() { - List> datas = functionNameTable.selectData(null, null); + List> datas = functionNameTable.selectAllColumnData(null); if (null == datas) { Logger.error("failed - load function names"); } else { @@ -755,7 +755,7 @@ public class Project { private void openProcessInfo() { processInfos.clear(); - List> datas = processInfoTable.selectData(null, null); + List> datas = processInfoTable.selectAllColumnData(null); int rowsize = datas.size(); for (int i = 0; i < rowsize; i++) { List data = datas.get(i); diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/BinaryInfoDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/BinaryInfoDBTable.java index a3105ee..7bc10f0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/BinaryInfoDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/BinaryInfoDBTable.java @@ -26,7 +26,9 @@ package org.tizen.dynamicanalyzer.project.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.DALimit; @@ -104,4 +106,21 @@ public class BinaryInfoDBTable extends DBTable { public String getTableName() { return TABLENAME; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(rs.getString(3)); + row.add(rs.getString(4)); + row.add(rs.getString(5)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/FunctionNameDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/FunctionNameDBTable.java index 75ee92c..1049f7f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/FunctionNameDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/FunctionNameDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.project.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.DALimit; @@ -87,4 +89,18 @@ public class FunctionNameDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(rs.getString(2)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/MemoryMapDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/MemoryMapDBTable.java index c47bc67..5787ecd 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/MemoryMapDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/MemoryMapDBTable.java @@ -26,7 +26,9 @@ package org.tizen.dynamicanalyzer.project.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -102,4 +104,22 @@ public class MemoryMapDBTable extends DBTable { public String getTableName() { return TABLENAME; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Long.valueOf(rs.getLong(2))); + row.add(Long.valueOf(rs.getLong(3))); + row.add(Long.valueOf(rs.getLong(4))); + row.add(Integer.valueOf(rs.getInt(5))); + row.add(Boolean.valueOf(rs.getBoolean(6))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/ProcessInfoDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/ProcessInfoDBTable.java index afbc014..f9d8d41 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/ProcessInfoDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/project/data/ProcessInfoDBTable.java @@ -26,7 +26,9 @@ package org.tizen.dynamicanalyzer.project.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.DALimit; @@ -106,4 +108,22 @@ public class ProcessInfoDBTable extends DBTable { public String getTableName() { return TABLENAME; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Long.valueOf(rs.getLong(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Boolean.valueOf(rs.getBoolean(5))); + row.add(rs.getString(6)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } 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 dffd964..4a16486 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 @@ -40,7 +40,6 @@ import org.tizen.dynamicanalyzer.common.SymbolManager; import org.tizen.dynamicanalyzer.communicator.CommunicatorUtils; import org.tizen.dynamicanalyzer.communicator.DACommunicator; import org.tizen.dynamicanalyzer.constant.CommonConstants; -import org.tizen.dynamicanalyzer.project.ImageInfo; import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants; import org.tizen.dynamicanalyzer.swap.model.data.ContextSwitchData; import org.tizen.dynamicanalyzer.swap.model.data.LogData; diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackDataDBTable.java index 2f3e9b5..22d0c80 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackDataDBTable.java @@ -27,6 +27,7 @@ package org.tizen.dynamicanalyzer.ui.info.callstack; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @@ -34,6 +35,7 @@ import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; public class CallStackDataDBTable extends DBTable { private static final String TABLENAME="CallStackData"; @@ -71,7 +73,20 @@ public class CallStackDataDBTable extends DBTable { List selectColumn = new ArrayList(); selectColumn.add(COLUMN.PCADDR.name); - return selectData(selectColumn, where); + return selectData(selectColumn, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } @Override diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackUnitDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackUnitDBTable.java index 056e85d..ede3d4d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackUnitDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/callstack/CallStackUnitDBTable.java @@ -27,15 +27,17 @@ package org.tizen.dynamicanalyzer.ui.info.callstack; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; -import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.database.DBColumn; import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; -public class CallStackUnitDBTable extends DBTable { +public class CallStackUnitDBTable extends DBTable implements IResultSet { private static final String TABLENAME="CallStackUnits"; public enum COLUMN { @@ -66,7 +68,7 @@ public class CallStackUnitDBTable extends DBTable { } public List> getCallStackUnitsFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -90,4 +92,20 @@ public class CallStackUnitDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Long.valueOf(rs.getLong(4))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenShotDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenShotDBTable.java index eab9b21..c9265dd 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenShotDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/info/screenshot/ScreenShotDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.info.screenshot; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -81,5 +83,20 @@ public class ScreenShotDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(rs.getString(2)); + row.add(Integer.valueOf(rs.getInt(3))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } 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 000a148..915f435 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 @@ -1,14 +1,17 @@ package org.tizen.dynamicanalyzer.ui.kernel.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; -public class ContextDataDBTable extends DBTable { +public class ContextDataDBTable extends DBTable implements IResultSet { private static final String TABLENAME = "ContextSwitchData"; public enum COLUMN { @@ -72,4 +75,23 @@ public class ContextDataDBTable extends DBTable { return isPrepared; } + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } 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 ed6071f..c76dafd 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 @@ -1,7 +1,9 @@ package org.tizen.dynamicanalyzer.ui.kernel.data; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -82,4 +84,27 @@ public class FunctionDataDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Integer.valueOf(rs.getInt(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(Integer.valueOf(rs.getInt(9))); + row.add(Long.valueOf(rs.getLong(10))); + row.add(Integer.valueOf(rs.getInt(11))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } 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 a893b73..c5e9b26 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 @@ -26,11 +26,14 @@ package org.tizen.dynamicanalyzer.ui.kernel.data; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Stack; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; import org.tizen.dynamicanalyzer.swap.channel.data.DataChannelConstants; import org.tizen.dynamicanalyzer.swap.model.data.ContextSwitchData; import org.tizen.dynamicanalyzer.swap.model.data.LogData; @@ -91,8 +94,7 @@ public class KernelDataMaker { KernelDataPerThread kdata = findKernelData(tid); if (kdata == null) { // thread id is not exist in thread id - kdata = new KernelDataPerThread(csdata.getPid(), tid, - csdata); + kdata = new KernelDataPerThread(csdata.getPid(), tid, csdata); threads.add(kdata); } else { // thread id is exist in thread id array if (kdata.getCorelog() != null) { @@ -110,8 +112,7 @@ public class KernelDataMaker { pfdata.setPcAddr(csdata.getPcAddr()); pfdata.setCpuNum(csdata.getCpuNum()); - prefunc_type.set(prefunc_type.size() - 1, - START_TYPE_RESUME); + prefunc_type.set(prefunc_type.size() - 1, START_TYPE_RESUME); } } } @@ -274,8 +275,7 @@ public class KernelDataMaker { if (!prefunc.isEmpty() && !prefunc_type.isEmpty()) { prefunc.peek().setTime(fndata.getTime()); prefunc.peek().setPcAddr(fndata.getPcAddr()); - prefunc_type.set(prefunc_type.size() - 1, - START_TYPE_RETURNED); + prefunc_type.set(prefunc_type.size() - 1, START_TYPE_RETURNED); } } } @@ -291,8 +291,7 @@ public class KernelDataMaker { contextDataList.clear(); @SuppressWarnings("unchecked") - List> flist = (List>) functionDataList - .clone(); + List> flist = (List>) functionDataList.clone(); functionDataList.clear(); ContextDataDBInserter.pushContextData(clist); @@ -308,41 +307,36 @@ public class KernelDataMaker { } public List> getContextDataFromDB(long start, long end) { - String where = String.format(queryto_withTime, - ContextDataDBTable.COLUMN.STARTTIME.name, end, - ContextDataDBTable.COLUMN.ENDTIME.name, start, + String where = String.format(queryto_withTime, ContextDataDBTable.COLUMN.STARTTIME.name, + end, ContextDataDBTable.COLUMN.ENDTIME.name, start, ContextDataDBTable.COLUMN.STARTTIME.name); DBTable table = KernelDataManager.getInstance().getContextDataTable(); - return table.selectData(null, where); + return table.selectAllColumnData(where); } - public List> getFunctionDataFromDB(long start, long end, - int tid) { + public List> getFunctionDataFromDB(long start, long end, int tid) { String where; if (tid >= 0) { - where = String.format(queryto_withTidAndTime, - FunctionDataDBTable.COLUMN.TID.name, tid, + where = String.format(queryto_withTidAndTime, 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.COLUMN.STARTTIME.name, end, + where = String.format(queryto_withTime, FunctionDataDBTable.COLUMN.STARTTIME.name, end, FunctionDataDBTable.COLUMN.ENDTIME.name, start, FunctionDataDBTable.COLUMN.STARTTIME.name); } DBTable table = KernelDataManager.getInstance().getFunctionDataTable(); - return table.selectData(null, where); + return table.selectAllColumnData(where); } public List> getFuncnameFromDB(int tid) { - String where = String.format(queryto_withTid, - FunctionDataDBTable.COLUMN.TID.name, tid, + String where = String.format(queryto_withTid, FunctionDataDBTable.COLUMN.TID.name, tid, FunctionDataDBTable.COLUMN.FUNCID.name); List selectColumn = new ArrayList(); @@ -350,13 +344,26 @@ public class KernelDataMaker { DBTable table = KernelDataManager.getInstance().getFunctionDataTable(); - return table.selectData(selectColumn, where); + return table.selectData(selectColumn, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } public List getThreadData() { return threads; } - + public void addThreadData(KernelDataPerThread data) { threads.add(data); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataDBTable.java index f9deaae..5fb8090 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.summary.failed; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.DALimit; @@ -37,9 +39,9 @@ import org.tizen.dynamicanalyzer.database.DBTable; public class FailedApiDataDBTable extends DBTable { private static final String TABLENAME = "FailedAPIData"; - + public static final String SEQUENCE_NUMBER = DBConstants.DBCOLUMN_SEQUENCE_NUMBER; - public static final String API_ID = "API_ID"; + public static final String API_ID = "API_ID"; public static final String PROCESS_ID = DBConstants.DBCOLUMN_PROCESS_ID; public static final String START_TIME = DBConstants.DBCOLUMN_START_TIME; public static final String ARGUMENT = DBConstants.DBCOLUMN_ARGUMENT; @@ -48,7 +50,7 @@ public class FailedApiDataDBTable extends DBTable { public static final String CALLER_PC_ADDRESS = DBConstants.DBCOLUMN_CALLER_PC_ADDRESS; public static final String CALLER_LIBRARY_NAME = DBConstants.DBCOLUMN_CALLER_LIBRARY_NAME; public static final String MESSAGE_ID = "MESSAGE_ID"; - + public final static int COLUMN_INDEX_SEQUENCE_NUMBER = 0; public final static int COLUMN_INDEX_API_ID = 1; public final static int COLUMN_INDEX_PROCESS_ID = 2; @@ -84,7 +86,7 @@ public class FailedApiDataDBTable extends DBTable { @Override public boolean prepare(PreparedStatement prep, List rowData) { boolean isPrepared = true; - + int columnsize = getColumnSize(); if (columnsize != rowData.size()) { isPrepared = false; @@ -105,7 +107,29 @@ public class FailedApiDataDBTable extends DBTable { isPrepared = false; } } - + return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Long.valueOf(rs.getLong(4))); + row.add(rs.getString(5)); + row.add(rs.getString(6)); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(rs.getString(9)); + row.add(Integer.valueOf(rs.getInt(10))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataMaker.java index 2893707..96a8336 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiDataMaker.java @@ -26,10 +26,13 @@ package org.tizen.dynamicanalyzer.ui.summary.failed; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; import org.tizen.dynamicanalyzer.swap.model.data.LogData; import org.tizen.dynamicanalyzer.swap.model.data.ProbeCommonData; import org.tizen.dynamicanalyzer.ui.summary.SummaryDataManager; @@ -131,7 +134,29 @@ public class FailedApiDataMaker { columns.add(FailedApiDataDBTable.CALLER_LIBRARY_NAME); columns.add(FailedApiDataDBTable.MESSAGE_ID); - return table.selectData(columns, null); + return table.selectData(columns, null, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Long.valueOf(rs.getLong(4))); + row.add(rs.getString(5)); + row.add(rs.getString(6)); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(rs.getString(9)); + row.add(Integer.valueOf(rs.getInt(10))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } public List> getFailedApiDataFromDBForRange(Long startTime, Long endTime) { @@ -151,6 +176,28 @@ public class FailedApiDataMaker { columns.add(FailedApiDataDBTable.CALLER_LIBRARY_NAME); columns.add(FailedApiDataDBTable.MESSAGE_ID); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Long.valueOf(rs.getLong(4))); + row.add(rs.getString(5)); + row.add(rs.getString(6)); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(rs.getString(9)); + row.add(Integer.valueOf(rs.getInt(10))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java index be13cdc..e746549 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDataMaker.java @@ -26,6 +26,8 @@ package org.tizen.dynamicanalyzer.ui.summary.leaks; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -38,6 +40,7 @@ import org.tizen.dynamicanalyzer.common.DALimit; import org.tizen.dynamicanalyzer.common.Global; import org.tizen.dynamicanalyzer.common.path.PathManager; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; import org.tizen.dynamicanalyzer.logparser.LogCenterConstants; import org.tizen.dynamicanalyzer.nl.AnalyzerLabels; import org.tizen.dynamicanalyzer.resources.ImageResources; @@ -72,7 +75,8 @@ public class LeakDataMaker { int size = inputs.size(); for (int i = 0; i < size; i++) { LogData input = (LogData) inputs.get(i); - if (input == null) continue; + if (input == null) + continue; if (isHeapMemoryOverflow()) break; switch (leakDetector.runLeakDetect(input)) { @@ -106,13 +110,13 @@ public class LeakDataMaker { FreeDataDBInserter.startThread(); } } - + public void makeData() { HashMap leaks = leakDetector.getLeakHash(); for (Integer key : leaks.keySet()) { makeLeakData(leaks.get(key)); } - + if (leakDataList.size() > 0) { @SuppressWarnings("unchecked") List> lList = (List>) leakDataList.clone(); @@ -137,10 +141,10 @@ public class LeakDataMaker { dialog.open(); } }); - + flag = true; - } - + } + return flag; } @@ -221,15 +225,16 @@ public class LeakDataMaker { freeDataList.add(dbFreeData); } - + public void makeLeakData(CurrentLeakData input) { ArrayList dbLeakData = new ArrayList(); - - if (input == null) return; + + if (input == null) + return; dbLeakData.add(Integer.valueOf(input.getSequenceNumber())); dbLeakData.add(Long.valueOf(input.getAllocatedValue())); dbLeakData.add(Integer.valueOf(input.getPid())); - + leakDataList.add(dbLeakData); } @@ -255,22 +260,60 @@ public class LeakDataMaker { columns.add(MemoryAllocationDataDBTable.COLUMN.CALLER_LIBRARY_NAME.name); columns.add(MemoryAllocationDataDBTable.COLUMN.MESSAGE_ID.name); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(rs.getString(8)); + row.add(rs.getString(9)); + row.add(rs.getString(10)); + row.add(Integer.valueOf(rs.getInt(11))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } - + public List> getLeakDataFromDB() { DBTable table = SummaryDataManager.getInstance().getLeakDataDBTable(); List columns = new ArrayList(); columns.add(LeakDataDBTable.COLUMN.SEQUENCE_NUMBER.name); columns.add(LeakDataDBTable.COLUMN.ALLOCATED_VALUE.name); columns.add(LeakDataDBTable.COLUMN.PROCESS_ID.name); - - return table.selectData(columns, null); + + return table.selectData(columns, null, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Long.valueOf(rs.getLong(2))); + row.add(Integer.valueOf(rs.getInt(3))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } public List> getLeakDataWithSeq(List leakSequenceNumbers) { - String where = String - .format(query_withSeqList, MemoryAllocationDataDBTable.COLUMN.SEQUENCE_NUMBER.name); + String where = String.format(query_withSeqList, + MemoryAllocationDataDBTable.COLUMN.SEQUENCE_NUMBER.name); int size = leakSequenceNumbers.size(); for (int i = 0; i < size - 1; i++) { where += String.valueOf(leakSequenceNumbers.get(i)) + ", "; @@ -291,13 +334,36 @@ public class LeakDataMaker { columns.add(MemoryAllocationDataDBTable.COLUMN.CALLER_LIBRARY_NAME.name); columns.add(MemoryAllocationDataDBTable.COLUMN.MESSAGE_ID.name); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(rs.getString(8)); + row.add(rs.getString(9)); + row.add(rs.getString(10)); + row.add(Integer.valueOf(rs.getInt(11))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } public List> getLeakDataForRange() { return rangeDataList; } - + public void clearLeakDataForRange() { if (!rangeDataList.isEmpty()) rangeDataList.clear(); @@ -305,7 +371,7 @@ public class LeakDataMaker { public void makeLeakDataForRange(Long startTime, Long endTime) { clearLeakDataForRange(); - + int[] pids = Global.getProject().getProcessIDs(); for (int i = 0; i < pids.length; i++) { List> allocDataList = getAllocationDataWithPidFromDBForRange(startTime, @@ -376,7 +442,30 @@ public class LeakDataMaker { columns.add(MemoryAllocationDataDBTable.COLUMN.CALLER_LIBRARY_NAME.name); columns.add(MemoryAllocationDataDBTable.COLUMN.MESSAGE_ID.name); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(rs.getString(8)); + row.add(rs.getString(9)); + row.add(rs.getString(10)); + row.add(Integer.valueOf(rs.getInt(11))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } private List> getFreeDataWithPidFromDBForRange(Long startTime, Long endTime, @@ -391,6 +480,21 @@ public class LeakDataMaker { columns.add(FreeDataDBTable.COLUMN.FREE_TIME.name); columns.add(FreeDataDBTable.COLUMN.ALLOCATED_ADDRESS.name); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Long.valueOf(rs.getLong(2))); + row.add(Long.valueOf(rs.getLong(3))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/FunctionSampleDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/FunctionSampleDBTable.java index 1737375..597e369 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/FunctionSampleDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/FunctionSampleDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.summary.profiling; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.constant.CommonConstants; @@ -80,7 +82,7 @@ public class FunctionSampleDBTable extends DBTable { } public List> getFunctionSampleFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -106,4 +108,22 @@ public class FunctionSampleDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Long.valueOf(rs.getLong(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Byte.valueOf(rs.getByte(6))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingChildDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingChildDataDBTable.java index 4298edc..b82686d 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingChildDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingChildDataDBTable.java @@ -27,10 +27,11 @@ package org.tizen.dynamicanalyzer.ui.summary.profiling; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; -import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.database.DBColumn; import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; @@ -64,7 +65,7 @@ public class ProfilingChildDataDBTable extends DBTable { } public List> getProfilingChildDataFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -87,4 +88,19 @@ public class ProfilingChildDataDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingDataDBTable.java index e3af65e..9dee30f 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingDataDBTable.java @@ -27,10 +27,11 @@ package org.tizen.dynamicanalyzer.ui.summary.profiling; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; -import org.tizen.dynamicanalyzer.constant.CommonConstants; import org.tizen.dynamicanalyzer.database.DBColumn; import org.tizen.dynamicanalyzer.database.DBConstants; import org.tizen.dynamicanalyzer.database.DBTable; @@ -78,7 +79,7 @@ public class ProfilingDataDBTable extends DBTable { } public List> getProfilingDataFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -108,4 +109,26 @@ public class ProfilingDataDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Byte.valueOf(rs.getByte(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Integer.valueOf(rs.getInt(5))); + row.add(Integer.valueOf(rs.getInt(6))); + row.add(Integer.valueOf(rs.getInt(7))); + row.add(Integer.valueOf(rs.getInt(8))); + row.add(Long.valueOf(rs.getLong(9))); + row.add(Long.valueOf(rs.getLong(10))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningDataMaker.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningDataMaker.java index 2770426..7aa2e85 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningDataMaker.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningDataMaker.java @@ -26,10 +26,13 @@ package org.tizen.dynamicanalyzer.ui.summary.warning; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBTable; +import org.tizen.dynamicanalyzer.database.IResultSet; import org.tizen.dynamicanalyzer.swap.model.data.LogData; import org.tizen.dynamicanalyzer.swap.model.data.ProbeCommonData; import org.tizen.dynamicanalyzer.ui.summary.SummaryDataManager; @@ -119,7 +122,21 @@ public class WarningDataMaker { DBTable table = SummaryDataManager.getInstance().getWarningDataDBTable(); - List> warningList = table.selectData(columns, where); + List> warningList = table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(rs.getString(1)); + row.add(Integer.valueOf(rs.getInt(2))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); if (warningList != null) { if (warningList.size() > 0) { // same warning data is existed return true; @@ -149,7 +166,28 @@ public class WarningDataMaker { columns.add(WarningDataDBTable.CALLER_PC_ADDRESS); columns.add(WarningDataDBTable.CALLER_LIBRARY_NAME); - return table.selectData(columns, null); + return table.selectData(columns, null, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Integer.valueOf(rs.getInt(6))); + row.add(rs.getString(7)); + row.add(Long.valueOf(rs.getLong(8))); + row.add(rs.getString(9)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } public String getFullWarningMessageByLogSeq(int seq) { @@ -159,7 +197,21 @@ public class WarningDataMaker { columns.add(WarningDataDBTable.WARNING_CASE); DBTable table = SummaryDataManager.getInstance().getWarningDataDBTable(); - List> result = table.selectData(columns, where); + List> result = table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(rs.getString(1)); + row.add(Integer.valueOf(rs.getInt(2))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); String message = null; if (result != null) { @@ -188,6 +240,27 @@ public class WarningDataMaker { columns.add(WarningDataDBTable.CALLER_PC_ADDRESS); columns.add(WarningDataDBTable.CALLER_LIBRARY_NAME); - return table.selectData(columns, where); + return table.selectData(columns, where, new IResultSet() { + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Integer.valueOf(rs.getInt(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Integer.valueOf(rs.getInt(6))); + row.add(rs.getString(7)); + row.add(Long.valueOf(rs.getLong(8))); + row.add(rs.getString(9)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } + }); } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBTable.java index 08717a1..c4aebaf 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/CustomDataDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -79,4 +81,19 @@ public class CustomDataDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Float.valueOf(rs.getFloat(3))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } \ No newline at end of file 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 6d157bb..cda1a81 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 @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -155,4 +157,36 @@ public class SystemDataDBTable extends DBTable { } return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Float.valueOf(rs.getFloat(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(Long.valueOf(rs.getLong(9))); + row.add(Long.valueOf(rs.getLong(10))); + row.add(Long.valueOf(rs.getLong(11))); + row.add(Long.valueOf(rs.getLong(12))); + row.add(Long.valueOf(rs.getLong(13))); + row.add(getArrayFromResultSet(rs, 14, Long.valueOf(0))); + row.add(getArrayFromResultSet(rs, 15, Long.valueOf(0))); + row.add(getArrayFromResultSet(rs, 16, Float.valueOf(0))); + row.add(getArrayFromResultSet(rs, 17, Float.valueOf(0))); + row.add(getArrayFromResultSet(rs, 18, Integer.valueOf(0))); + row.add(getArrayFromResultSet(rs, 19, Float.valueOf(0))); + row.add(getArrayFromResultSet(rs, 20, Integer.valueOf(0))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java index b9b1da9..279a8cc 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/TargetProcessDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -108,7 +110,7 @@ public class TargetProcessDBTable extends DBTable { prep.setLong(++index, (Long) (rowData.get(COLUMN.MEMORY_RESIDENT.ordinal()))); prep.setLong(++index, (Long) (rowData.get(COLUMN.MEMORY_SHARED.ordinal()))); prep.setLong(++index, (Long) (rowData.get(COLUMN.MEMORY_PSS.ordinal()))); - prep.setLong(++index, (Integer) (rowData.get(COLUMN.THREAD_COUNT.ordinal()))); + prep.setInt(++index, (Integer) (rowData.get(COLUMN.THREAD_COUNT.ordinal()))); prep.setLong(++index, (Long) (rowData.get(COLUMN.HEAP_ALLOCATION_TOTAL_BYTE.ordinal()))); setArrayToPreparedStatement(COLUMN.HEAP_ALLOCATION_NAME.ordinal(), @@ -127,4 +129,29 @@ public class TargetProcessDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Float.valueOf(rs.getFloat(3))); + row.add(Long.valueOf(rs.getLong(4))); + row.add(Long.valueOf(rs.getLong(5))); + row.add(Long.valueOf(rs.getLong(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Integer.valueOf(rs.getInt(8))); + row.add(Long.valueOf(rs.getLong(9))); + row.add(getArrayFromResultSet(rs, 10, String.valueOf(0))); + row.add(getArrayFromResultSet(rs, 11, Long.valueOf(0))); + row.add(getArrayFromResultSet(rs, 12, Integer.valueOf(0))); + row.add(getArrayFromResultSet(rs, 13, Float.valueOf(0))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBTable.java index 7387a10..18526e3 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/UIEventDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.database.DBColumn; @@ -97,4 +99,23 @@ public class UIEventDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Integer.valueOf(rs.getInt(4))); + row.add(Integer.valueOf(rs.getInt(5))); + row.add(rs.getString(6)); + row.add(Integer.valueOf(rs.getInt(7))); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionEntryDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionEntryDBTable.java index 51104b4..05a24c8 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionEntryDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionEntryDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline.calltrace; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.common.DALimit; @@ -94,7 +96,7 @@ public class FunctionEntryDBTable extends DBTable { } public List> getFunctionEntryFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -128,4 +130,26 @@ public class FunctionEntryDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Integer.valueOf(rs.getInt(2))); + row.add(Integer.valueOf(rs.getInt(3))); + row.add(Byte.valueOf(rs.getByte(4))); + row.add(Integer.valueOf(rs.getInt(5))); + row.add(Integer.valueOf(rs.getInt(6))); + row.add(Long.valueOf(rs.getLong(7))); + row.add(Long.valueOf(rs.getLong(8))); + row.add(Long.valueOf(rs.getLong(9))); + row.add(rs.getString(10)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionExitDBTable.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionExitDBTable.java index 9aadaf0..4407dd2 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionExitDBTable.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/calltrace/FunctionExitDBTable.java @@ -27,7 +27,9 @@ package org.tizen.dynamicanalyzer.ui.timeline.calltrace; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.List; import org.tizen.dynamicanalyzer.constant.CommonConstants; @@ -85,7 +87,7 @@ public class FunctionExitDBTable extends DBTable { } public List> getFunctionExitFromDB() { - return selectData(null, CommonConstants.EMPTY); + return selectAllColumnData(null); } @Override @@ -112,4 +114,20 @@ public class FunctionExitDBTable extends DBTable { return isPrepared; } + + @Override + public List extractDataFromResultSet(ResultSet rs) { + List row = new ArrayList(); + try { + row.add(Long.valueOf(rs.getLong(1))); + row.add(Long.valueOf(rs.getLong(2))); + row.add(Long.valueOf(rs.getLong(3))); + row.add(rs.getString(4)); + } catch (SQLException e) { + e.printStackTrace(); + return null; + } + + return row; + } } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java index e69bc00..31a1fc9 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/timeline/common/TimelineChartManager.java @@ -676,7 +676,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer public List> getSystemDataFromDB(long start, long end) { String where = "where TIME BETWEEN " + start + " AND " + end + " ORDER BY " + SystemDataDBTable.TIME; - List> result = systemDataTable.selectData(null, where); + List> result = systemDataTable.selectAllColumnData(where); if (result != null) { return result; @@ -688,11 +688,11 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer public List getSystemDataFromDB(long time) { String where = "where TIME = (SELECT MAX(TIME) FROM TIMELINE_SYSTEM_DATA WHERE TIME <= " + time + ")"; - List> result = systemDataTable.selectData(null, where); + List> result = systemDataTable.selectAllColumnData(where); if (result == null || result.isEmpty()) { where = "where TIME = (SELECT MIN(time) FROM TIMELINE_SYSTEM_DATA)"; - result = systemDataTable.selectData(null, where); + result = systemDataTable.selectAllColumnData(where); if (result == null || result.isEmpty()) { return new ArrayList(); } else { @@ -706,7 +706,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer public List> getUIEventDataFromDB(long start, long end) { String where = "where TIME BETWEEN " + start + " AND " + end + " ORDER BY " + UIEventDBTable.TIME; - List> result = uiEventDBTable.selectData(null, where); + List> result = uiEventDBTable.selectAllColumnData(where); if (result != null) { return result; @@ -719,7 +719,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer String where = "where TIME BETWEEN " + start + " AND " + end + " ORDER BY " + ScreenShotDBTable.TIME; List> result = ScreenshotDataManager.getInstance().getScreenShotTable() - .selectData(null, where); + .selectAllColumnData(where); if (result != null) { return result; @@ -731,7 +731,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer public List> getCustomDataFromDB(long start, long end) { String where = "where TIME BETWEEN " + start + " AND " + end + " ORDER BY " + CustomDataDBTable.TIME; - List> result = customDataDBTable.selectData(null, where); + List> result = customDataDBTable.selectAllColumnData(where); if (result != null) { return result; @@ -745,7 +745,7 @@ public class TimelineChartManager extends PageDataManager implements IDAChartSer String where = "where TIME BETWEEN " + start + " AND " + end + " ORDER BY " + TargetProcessDBTable.TIME; - List> queryResult = targetProcessDBTable.selectData(null, where); + List> queryResult = targetProcessDBTable.selectAllColumnData(where); if (queryResult == null) { return processedResult; } -- 2.7.4