[Title] bug fix of connection to database
authorgreatim <jaewon81.lim@samsung.com>
Thu, 10 Apr 2014 10:49:08 +0000 (19:49 +0900)
committergreatim <jaewon81.lim@samsung.com>
Thu, 10 Apr 2014 10:49:08 +0000 (19:49 +0900)
[Desc.]
[Issue]

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/nl/KernelPageLabels.properties
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/KernelListView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/KernelDataMaker.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAWindowingTableComposite.java

index de91aed..b5e4f2d 100644 (file)
@@ -25,7 +25,7 @@ public class SqlConnectionManager {
                                        Class.forName("org.hsqldb.jdbcDriver");
                                        String dbUrl = "jdbc:hsqldb:"
                                                        + dbFilePath
-                                                       + ";shutdown=true;hsqldb.default_table_type=cached;hsqldb.large_data=true;hdqldb.log_data=false"; //$NON-NLS-1$
+                                                       + ";shutdown=false;hsqldb.default_table_type=cached;hsqldb.large_data=true;hdqldb.log_data=false"; //$NON-NLS-1$
                                        connection = DriverManager.getConnection(dbUrl, "SA", "");
                                        SQLWarning warning = connection.getWarnings();
                                        while (warning != null) {
index 17fe816..b66c516 100644 (file)
@@ -33,7 +33,7 @@ KERNEL_LIST_VIEW_START_PC=Start pc addr
 KERNEL_LIST_VIEW_END_PC=End pc addr
 KERNEL_LIST_VIEW_ENTRY=Entry of func.
 KERNEL_LIST_VIEW_EXIT=Exit of func.
-KERNEL_LIST_VIEW_CORE=Core number
+KERNEL_LIST_VIEW_CORE=CPU Core
 KERNEL_LIST_VIEW_FUNCTION=Function name
 
 KERNEL_STATISTIC_TITLE=Kernel Statistics
index b4adcbd..99ae6e7 100755 (executable)
@@ -127,7 +127,7 @@ public class SqlManager {
                                        + path
                                        + File.separator
                                        + AnalyzerConstants.DATABASE_NAME
-                                       + ";shutdown=true;hsqldb.default_table_type=cached;hsqldb.large_data=true;hdqldb.log_data=false"; //$NON-NLS-1$
+                                       + ";shutdown=false;hsqldb.default_table_type=cached;hsqldb.large_data=true;hdqldb.log_data=false"; //$NON-NLS-1$
                        connection = DriverManager.getConnection(dbUrl, "SA", "");
                        SQLWarning warning = connection.getWarnings();
                        while (warning != null) {
@@ -185,9 +185,9 @@ public class SqlManager {
                        return;
                } else {
                        try {
-                               Statement st = connection.createStatement();
-                               st.execute("SHUTDOWN");
-                               CommonUtil.tryClose(st);
+//                             Statement st = connection.createStatement();
+//                             st.execute("SHUTDOWN");
+//                             CommonUtil.tryClose(st);
                                connection.close();
                        } catch (SQLException se) {
                                if (!se.getSQLState().equals("XJ015")) {
index 4134df2..0c451b2 100644 (file)
@@ -51,7 +51,7 @@ public class KernelListView extends DAViewComposite {
                        KernelPageLabels.KERNEL_LIST_VIEW_END_PC,
                        KernelPageLabels.KERNEL_LIST_VIEW_FUNCTION };
 
-       private int[] columnSizes = { 40, 40, 40, 40, 90, 90, 90, 120, 120, 250 };
+       private int[] columnSizes = { 40, 40, 40, 65, 80, 80, 100, 100, 100, 250 };
 
        private int[] columnAlignment = { SWT.RIGHT, SWT.LEFT, SWT.LEFT, SWT.LEFT,
                        SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT };
@@ -95,7 +95,7 @@ public class KernelListView extends DAViewComposite {
        public void updateView(DAViewData data) {
                if (data instanceof DASelectionData) {
                        DASelectionData selData = (DASelectionData) data;
-                       
+
                        long start = selData.getStartTime();
                        long end = selData.getEndTime();
                        Object odata = selData.getData();
index 0ccf02e..9b7432a 100755 (executable)
@@ -37,6 +37,10 @@ import org.tizen.dynamicanalyzer.swap.model.data.LogData;
 import org.tizen.dynamicanalyzer.swap.model.data.ProfileData;
 
 public class KernelDataMaker {
+       private static final String queryto_withTime = "where %s < %s and %s > %s order by %s";
+       private static final String queryto_withTidAndTime = "where %s = %s and %s < %s and %s > %s order by %s";
+       private static final String queryto_withTid = "where %s = %s group by %s";
+
        public static final int START_TYPE_START = 10;
        public static final int START_TYPE_RESUME = 20;
        public static final int START_TYPE_RETURNED = 30;
@@ -311,9 +315,9 @@ public class KernelDataMaker {
        }
 
        public List<List<Object>> getContextDataFromDB(long start, long end) {
-               String where = "where " + ContextDataDBTable.STARTTIME + " < " + end
-                               + " and " + ContextDataDBTable.ENDTIME + " > " + start
-                               + " order by " + ContextDataDBTable.STARTTIME;
+               String where = String.format(queryto_withTime,
+                               ContextDataDBTable.STARTTIME, end, ContextDataDBTable.ENDTIME,
+                               start, ContextDataDBTable.STARTTIME);
 
                DBTable table = KernelDataManager.getInstance().getContextDataTable();
 
@@ -322,13 +326,20 @@ public class KernelDataMaker {
 
        public List<List<Object>> getFunctionDataFromDB(long start, long end,
                        int tid) {
-               String where = "where ";
+               String where;
+
                if (tid >= 0) {
-                       where = where + FunctionDataDBTable.TID + " = " + tid + " and ";
+                       where = String.format(queryto_withTidAndTime,
+                                       FunctionDataDBTable.TID, tid,
+                                       FunctionDataDBTable.STARTTIME, end,
+                                       FunctionDataDBTable.ENDTIME, start,
+                                       FunctionDataDBTable.STARTTIME);
+               } else {
+                       where = String.format(queryto_withTime,
+                                       FunctionDataDBTable.STARTTIME, end,
+                                       FunctionDataDBTable.ENDTIME, start,
+                                       FunctionDataDBTable.STARTTIME);
                }
-               where = where + FunctionDataDBTable.STARTTIME + " < " + end + " and "
-                               + FunctionDataDBTable.ENDTIME + " > " + start + " order by "
-                               + FunctionDataDBTable.STARTTIME;
 
                DBTable table = KernelDataManager.getInstance().getFunctionDataTable();
 
@@ -336,8 +347,8 @@ public class KernelDataMaker {
        }
 
        public List<List<Object>> getFuncnameFromDB(int tid) {
-               String where = "where " + FunctionDataDBTable.TID + " = "
-                               + tid + " group by " + FunctionDataDBTable.FUNCNAME;
+               String where = String.format(queryto_withTid, FunctionDataDBTable.TID,
+                               tid, FunctionDataDBTable.FUNCNAME);
 
                List<String> selectColumn = new ArrayList<String>();
                selectColumn.add(FunctionDataDBTable.FUNCNAME);
index 2dd0d3b..592a0bb 100644 (file)
@@ -391,13 +391,24 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                        totalItemCount = getItemCountByPid();
                } else {
                        if (totalItemCount == 0) { // open or never trace
-                               if (SqlConnectionManager.isConnected()) {
+                               String tablename = getDBTableName();
+                               if (tablename != null && !tablename.isEmpty()) {
                                        String query = String.format(queryto_GetItemCount,
                                                        getDBTableName(), getSelectQueryCountOption());
                                        List<List<Object>> result = SqlConnectionManager
                                                        .executeQuery(query);
-                                       if(result != null)
-                                               totalItemCount = (Integer) result.get(0).get(0);
+                                       if (result != null) {
+                                               Object object = result.get(0).get(0);
+                                               if (object instanceof Integer) {
+                                                       totalItemCount = (Integer) object;
+                                               } else if (object instanceof Long) {
+                                                       totalItemCount = ((Long) object).intValue();
+                                               } else {
+                                                       System.out
+                                                                       .println("[ERR] result of item count query is not expected!!");
+                                                       totalItemCount = 0;
+                                               }
+                                       }
                                }
                        } else { // stop
                                totalItemCount = getItemCountByPid();
@@ -443,6 +454,11 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
        }
 
        private List<List<Object>> getObjectDataFromDB(int itemCount) {
+               String tableName = getDBTableName();
+               if (tableName == null || tableName.isEmpty()) {
+                       return null;
+               }
+
                int scrollSelection = vScrollbar.getSelection();
                if (scrollSelection > itemCount) { // change PID
                        scrollSelection = 0;
@@ -462,13 +478,18 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                }
 
                String query = String.format(queryto_GetLimitedItem, scrollSelection,
-                               selectedEndIndex + 1, columnString.toString(),
-                               getDBTableName(), getSelectQueryOption());
+                               selectedEndIndex + 1, columnString.toString(), tableName,
+                               getSelectQueryOption());
 
                return SqlConnectionManager.executeQuery(query);
        }
 
        private List<LogData> getLogDataFromDB(int itemCount) {
+               String tableName = getDBTableName();
+               if (tableName == null || tableName.isEmpty()) {
+                       return null;
+               }
+
                int scrollSelection = vScrollbar.getSelection();
                if (scrollSelection > itemCount) { // change PID
                        scrollSelection = 0;
@@ -478,7 +499,7 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                        selectedEndIndex = itemCount;
                }
                List<LogData> outputList = SqlManager.getInstance().selectTableData(
-                               getDBTableName(), getDBTableColumnNames(), scrollSelection,
+                               tableName, getDBTableColumnNames(), scrollSelection,
                                selectedEndIndex + 1, getSelectQueryOption());
                return outputList;
        }
@@ -527,13 +548,16 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
        }
 
        public void setSelectionByTime(long startTime, long endTime) {
-               selectionStartTime = startTime;
-               selectionEndTime = endTime;
-
-               int selectionIndex = SqlManager.getInstance().getSelectionIndex(
-                               getDBTableName(), getTimeColumnName(), selectionStartTime,
-                               getSelectQueryCountOption());
-               vScrollbar.setSelection(selectionIndex - 1);
+               String tableName = getDBTableName();
+               if (tableName != null && !tableName.isEmpty()) {
+                       selectionStartTime = startTime;
+                       selectionEndTime = endTime;
+
+                       int selectionIndex = SqlManager.getInstance().getSelectionIndex(
+                                       tableName, getTimeColumnName(), selectionStartTime,
+                                       getSelectQueryCountOption());
+                       vScrollbar.setSelection(selectionIndex - 1);
+               }
        }
 
        public void setDataType(boolean isLogData, int timeColumnIndex) {