[Title] fix some database exception 16/20016/1
authorgreatim <jaewon81.lim@samsung.com>
Thu, 24 Apr 2014 14:07:36 +0000 (23:07 +0900)
committergreatim <jaewon81.lim@samsung.com>
Thu, 24 Apr 2014 14:07:36 +0000 (23:07 +0900)
[Desc.]
[Issue]

Change-Id: I0b1ad226a5afcb6cdefa86b2a2cf90510d4114aa

org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/PageDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java

index 353fcb0..ba4fcf9 100644 (file)
@@ -8,14 +8,19 @@ 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$
 
+       // length of string type column
+       public static final int TEXT_LEN = 256;
+       public static final int BIG_TEXT_LEN = 1024;
+       public static final int BIGBIG_TEXT_LEN = 16384;
+
        // types type constant
        public static final String VARCHAR = "VARCHAR";//$NON-NLS-1$
-       public static final String TEXT = "VARCHAR(256)";//$NON-NLS-1$
-       public static final String BIG_TEXT = "VARCHAR(1024)";//$NON-NLS-1$
-       public static final String BIGBIG_TEXT = "VARCHAR(16384)";//$NON-NLS-1$
+       public static final String TEXT = "VARCHAR(" + TEXT_LEN + ")";//$NON-NLS-1$
+       public static final String BIG_TEXT = "VARCHAR(" + BIG_TEXT_LEN + ")";//$NON-NLS-1$
+       public static final String BIGBIG_TEXT = "VARCHAR(" + BIGBIG_TEXT_LEN + ")";//$NON-NLS-1$
        public static final String INTEGER = "INTEGER";//$NON-NLS-1$
        public static final String LONG = "BIGINT";//$NON-NLS-1$
-       
+
        // common column name
        public static final String COMMON_COLUMN_RID = "Rid";//$NON-NLS-1$
        public static final String COMMON_COLUMN_ID = "Id";//$NON-NLS-1$
index a8a341c..4883070 100644 (file)
@@ -142,13 +142,22 @@ public class SqlConnectionManager {
 
                                                        try {
                                                                if (columnType.get(i).equals(DBConstants.TEXT)) {
-                                                                       prep.setString(i + 1, (String) col);
+                                                                       String colstr = (String) col;
+                                                                       if (colstr.length() > DBConstants.TEXT_LEN)
+                                                                               colstr = colstr.substring(0, DBConstants.TEXT_LEN);
+                                                                       prep.setString(i + 1, colstr);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.BIG_TEXT)) {
-                                                                       prep.setString(i + 1, (String) col);
+                                                                       String colstr = (String) col;
+                                                                       if (colstr.length() > DBConstants.BIG_TEXT_LEN)
+                                                                               colstr = colstr.substring(0, DBConstants.BIG_TEXT_LEN);
+                                                                       prep.setString(i + 1, colstr);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.BIGBIG_TEXT)) {
-                                                                       prep.setString(i + 1, (String) col);
+                                                                       String colstr = (String) col;
+                                                                       if (colstr.length() > DBConstants.BIGBIG_TEXT_LEN)
+                                                                               colstr = colstr.substring(0, DBConstants.BIGBIG_TEXT_LEN);
+                                                                       prep.setString(i + 1, colstr);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.INTEGER)) {
                                                                        if (col == null) {
index 3ad2e08..2ccdcaa 100755 (executable)
@@ -532,7 +532,13 @@ public class SqlManager {
                                List<String> rowData = input.get(i);
                                int columnSize = rowData.size();
                                for (int j = 0; j < columnSize; j++) {
-                                       prep.setString(j + 1, rowData.get(j));
+                                       String rstr = rowData.get(j);
+                                       if(rstr != null && rstr.length() > 256) {
+                                               rstr = rstr.substring(0,  256);
+                                               prep.setString(j + 1, rstr);
+                                       } else {
+                                               prep.setString(j + 1, rstr);
+                                       }
                                }
                                prep.addBatch();
 
@@ -769,6 +775,9 @@ public class SqlManager {
                        int dataRowSize = input.size();
                        for (int i = 0; i < dataRowSize; i++) {
                                String data = input.get(i);
+                               if(data.length() > 1024) {
+                                       data = data.substring(0, 1024);
+                               }
                                prep.setString(1, data);
                                prep.addBatch();
                        }
index f953945..3f11320 100644 (file)
@@ -2,6 +2,7 @@ package org.tizen.dynamicanalyzer.swap.logparser;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.tizen.dynamicanalyzer.common.AnalyzerManager;
 import org.tizen.dynamicanalyzer.database.DBTable;
@@ -48,6 +49,7 @@ public abstract class PageDataManager implements Runnable {
        public final void stopThread() {
                if (thread != null && thread.isAlive()) {
                        try {
+                               onThreadStop();
                                sendNotify();
                                thread.join(AnalyzerManager.THREAD_JOIN_WAIT_TIME);
                                thread = null;
@@ -69,4 +71,13 @@ public abstract class PageDataManager implements Runnable {
                logPackQueue.wake();
        }
        
+       protected void onThreadStop() {
+       }
+       
+       protected void saveData(Map<String, String> dataMap) {
+       }
+       
+       protected void openData(Map<String, String> dataMap) {
+       }
+       
 }
index 959dad6..46533f0 100644 (file)
@@ -36,6 +36,11 @@ public class DATime {
                nano = 0;
        }
        
+       public DATime(int sec, int nano) {
+               this.sec = sec;
+               this.nano = nano;
+       }
+       
        public DATime(String timestring) {
                fromString(timestring);
        }
index 5a7ba01..85b3179 100644 (file)
@@ -273,7 +273,12 @@ public class ProfileData extends LogData {
                prep.setInt(index++, cpuNum);
                prep.setString(index++, args);
                prep.setString(index++, ret);
-               prep.setString(index++, apiName);
+               if ((apiName != null) && apiName.length() > 256) {
+                       String substr = apiName.substring(0, 256);
+                       prep.setString(index++, substr);
+               } else {
+                       prep.setString(index++, apiName);
+               }
                prep.setString(index++, libName);
                prep.setString(index++, callstack);
        }
index fcc8072..cee30e5 100644 (file)
@@ -154,14 +154,15 @@ public class NetworkDataManager extends PageDataManager {
        }
 
        public void openProcess() {
-               setSeriesListFromDB();
-       }
-
-       public void stopProcess() {
-               insertNotEndTimeSeries();
+               // set series list from DB
+               if (seriesList.size() == 0) {
+                       seriesList = seriesDBManager.select(0, 999999999);
+               }
        }
 
-       private void insertNotEndTimeSeries() {
+       @Override
+       protected void onThreadStop() {
+               // insert rest of the data to DB
                for (int i = 0; i < seriesList.size(); i++) {
                        NetworkSeriesType seriesType = seriesList.get(i);
                        if (seriesType.getEndTime() < 0) {
@@ -170,12 +171,6 @@ public class NetworkDataManager extends PageDataManager {
                }
        }
 
-       private void setSeriesListFromDB() {
-               if (seriesList.size() == 0) {
-                       seriesList = seriesDBManager.select(0, 999999999);
-               }
-       }
-
        public List<NetworkSeriesType> getSeriesList() {
                return seriesList;
        }
index 102cd3e..bb36933 100644 (file)
@@ -36,14 +36,13 @@ import org.tizen.dynamicanalyzer.logparser.LogParser;
 import org.tizen.dynamicanalyzer.project.Project;
 import org.tizen.dynamicanalyzer.sql.SqlManager;
 import org.tizen.dynamicanalyzer.swap.logparser.SWAPLogParser;
-import org.tizen.dynamicanalyzer.ui.network.data.NetworkDataManager;
 import org.tizen.dynamicanalyzer.ui.page.UpdateViewTimer;
 import org.tizen.dynamicanalyzer.uirecorder.UIRecorderTool;
 import org.tizen.dynamicanalyzer.util.DALogger;
 
 public class StopLogProcessor implements Runnable {
        private static final DALogger DA_LOG = DALogger.getInstance();
-       
+
        private static Thread stopLogProcessThread = null;
 
        private static int count = 0;
@@ -70,13 +69,14 @@ public class StopLogProcessor implements Runnable {
 
        @Override
        public void run() {
-               DA_LOG.performance("TEST", "DA end", "Run stop log process thread", DALogger.testState.START);
+               DA_LOG.performance("TEST", "DA end", "Run stop log process thread",
+                               DALogger.testState.START);
                Project project = AnalyzerManager.getProject();
                int percent = 0;
 
                int exitCount = 0;
                while (DACommunicator.isWaitControlMessage() && exitCount < 1000) {
-//                     System.out.println("wait for STOP ACK message...");
+                       // System.out.println("wait for STOP ACK message...");
                        try {
                                Thread.sleep(10);
                                exitCount++;
@@ -127,7 +127,6 @@ public class StopLogProcessor implements Runnable {
                        SqlManager.getInstance().saveApiNames();
                        SqlManager.getInstance().closeConnection();
                        SqlConnectionManager.closeConnection();
-                       NetworkDataManager.getInstance().stopProcess();
                        DA_LOG.debug("insert to db complete..."); //$NON-NLS-1$
                        percent += 10;
                        StopProcessManager.getInstance().setValue(percent);
@@ -138,7 +137,8 @@ public class StopLogProcessor implements Runnable {
                        @Override
                        public void run() {
                                StopProcessManager.getInstance().stopTrace();
-                               DA_LOG.performance("TEST", "DA end", "Run stop log process thread", DALogger.testState.END);
+                               DA_LOG.performance("TEST", "DA end",
+                                               "Run stop log process thread", DALogger.testState.END);
                        }
                });
 
@@ -150,7 +150,7 @@ public class StopLogProcessor implements Runnable {
                                ToolbarArea.getInstance().setSettingsButtonEnablement(true);
                        }
                });
-               
+
                DA_LOG.performance("TEST", DALogger.testState.END);
                count--;
        }