From 434d2d067cb0800b11c6d2e92bcb86bc6243c934 Mon Sep 17 00:00:00 2001 From: greatim Date: Thu, 24 Apr 2014 23:07:36 +0900 Subject: [PATCH] [Title] fix some database exception [Desc.] [Issue] Change-Id: I0b1ad226a5afcb6cdefa86b2a2cf90510d4114aa --- .../tizen/dynamicanalyzer/database/DBConstants.java | 13 +++++++++---- .../database/SqlConnectionManager.java | 15 ++++++++++++--- .../src/org/tizen/dynamicanalyzer/sql/SqlManager.java | 11 ++++++++++- .../swap/logparser/PageDataManager.java | 11 +++++++++++ .../org/tizen/dynamicanalyzer/swap/model/DATime.java | 5 +++++ .../dynamicanalyzer/swap/model/data/ProfileData.java | 7 ++++++- .../ui/network/data/NetworkDataManager.java | 19 +++++++------------ .../dynamicanalyzer/ui/toolbar/StopLogProcessor.java | 14 +++++++------- 8 files changed, 67 insertions(+), 28 deletions(-) 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 353fcb0..ba4fcf9 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBConstants.java @@ -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$ 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 a8a341c..4883070 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java @@ -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) { diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java index 3ad2e08..2ccdcaa 100755 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java @@ -532,7 +532,13 @@ public class SqlManager { List 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(); } 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 f953945..3f11320 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 @@ -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 dataMap) { + } + + protected void openData(Map dataMap) { + } + } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java index 959dad6..46533f0 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/DATime.java @@ -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); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java index 5a7ba01..85b3179 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/ProfileData.java @@ -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); } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java index fcc8072..cee30e5 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/network/data/NetworkDataManager.java @@ -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 getSeriesList() { return seriesList; } diff --git a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java index 102cd3e..bb36933 100644 --- a/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java +++ b/org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java @@ -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--; } -- 2.7.4