[Title] bug fix after refactoring database
authorgreatim <jaewon81.lim@samsung.com>
Wed, 9 Apr 2014 08:34:01 +0000 (17:34 +0900)
committergreatim <jaewon81.lim@samsung.com>
Wed, 9 Apr 2014 08:34:01 +0000 (17:34 +0900)
[Desc.]
[Issue]

12 files changed:
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/DBTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/database/SqlConnectionManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/DBTableManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/sql/SqlManager.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/communicator/Communicator30.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/MessageParser.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/logparser/SWAPLogParser.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/ContextDataDBInserter.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/kernel/data/FunctionDataDBInserter.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/leaks/LeakDetector.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/profiling/ProfilingTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DAWindowingTableComposite.java

index bca9022..d538b2a 100644 (file)
@@ -44,55 +44,59 @@ public abstract class DBTable {
        }
 
        public final void insertData(List<List<Object>> data) {
-               List<String> columnType = new ArrayList<String>();
-               StringBuffer query = new StringBuffer();
-               query.append("insert into ").append(getTableName()).append(" values( ");
+               if (data.size() > 0) {
+                       List<String> columnType = new ArrayList<String>();
+                       StringBuffer query = new StringBuffer();
+                       query.append("insert into ").append(getTableName())
+                                       .append(" values( ");
 
-               int columnsize = columns.size();
-               for (int i = 0; i < columnsize; i++) {
-                       columnType.add(columns.get(i).getType());
+                       int columnsize = columns.size();
+                       for (int i = 0; i < columnsize; i++) {
+                               columnType.add(columns.get(i).getType());
 
-                       if (i == columnsize - 1) {
-                               query.append(" ? )");
-                       } else {
-                               query.append("?, ");
+                               if (i == columnsize - 1) {
+                                       query.append(" ? )");
+                               } else {
+                                       query.append("?, ");
+                               }
                        }
-               }
-               query.append(CommonConstants.SEMICOLON);
+                       query.append(CommonConstants.SEMICOLON);
 
-               // execute prepared with data
-               SqlConnectionManager
-                               .executePrepared(query.toString(), data, columnType);
+                       // execute prepared with data
+                       SqlConnectionManager.executePrepared(query.toString(), data,
+                                       columnType);
+               }
        }
-       
+
        // select data from this table
        // if column list is null, then all column will be selected
-       public final List<List<Object>> selectData(List<String> column, String option) {
+       public final List<List<Object>> selectData(List<String> column,
+                       String option) {
                StringBuffer query = new StringBuffer();
                query.append("select ");
-               
-               if(column != null) {
+
+               if (column != null) {
                        int columnsize = column.size();
                        for (int i = 0; i < columnsize; i++) {
                                query.append(column.get(i));
-                               if(i < columnsize - 1)
+                               if (i < columnsize - 1)
                                        query.append(", ");//$NON-NLS-1$
                        }
                } else {
                        int columnsize = columns.size();
                        for (int i = 0; i < columnsize; i++) {
                                query.append(columns.get(i).getName());
-                               if(i < columnsize - 1)
+                               if (i < columnsize - 1)
                                        query.append(", ");//$NON-NLS-1$
                        }
                }
-               
+
                query.append(" from ").append(getTableName());
                query.append(" ").append(option);
-               
+
                return SqlConnectionManager.executeQuery(query.toString());
        }
-       
+
        public final void createIndexTable(String indexColumn) {
                String queryString = "create index " + getTableName() + "_index on "//$NON-NLS-1$//$NON-NLS-2$
                                + getTableName() + CommonConstants.OPEN_BRACKET + indexColumn
index eb1a3b1..de91aed 100644 (file)
@@ -20,7 +20,7 @@ public class SqlConnectionManager {
        public static boolean establishConnection(String dbFilePath) {
                boolean result = true;
                try {
-                       synchronized (connection) {
+                       synchronized (SqlConnectionManager.class) {
                                if (connection == null) {
                                        Class.forName("org.hsqldb.jdbcDriver");
                                        String dbUrl = "jdbc:hsqldb:"
@@ -54,7 +54,7 @@ public class SqlConnectionManager {
        }
 
        public static void closeConnection() {
-               synchronized (connection) {
+               synchronized (SqlConnectionManager.class) {
                        if (connection != null) {
                                try {
                                        Statement st = connection.createStatement();
@@ -71,6 +71,10 @@ public class SqlConnectionManager {
                }
        }
 
+       public static boolean isConnected() {
+               return (connection != null);
+       }
+
        private static void semaphoreAcquire() {
 
        }
@@ -98,6 +102,10 @@ public class SqlConnectionManager {
        public static void executePrepared(String query, List<List<Object>> data,
                        List<String> columnType) {
                PreparedStatement prep = null;
+
+               if (data.size() == 0)
+                       return;
+
                try {
                        if (connection != null) {
                                prep = connection.prepareStatement(query);
@@ -133,13 +141,13 @@ public class SqlConnectionManager {
 
                                                        try {
                                                                if (columnType.get(i).equals(DBConstants.TEXT)) {
-                                                                       prep.setString(i, (String) col);
+                                                                       prep.setString(i + 1, (String) col);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.BIG_TEXT)) {
-                                                                       prep.setString(i, (String) col);
+                                                                       prep.setString(i + 1, (String) col);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.BIGBIG_TEXT)) {
-                                                                       prep.setString(i, (String) col);
+                                                                       prep.setString(i + 1, (String) col);
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.INTEGER)) {
                                                                        if (col == null) {
@@ -148,7 +156,7 @@ public class SqlConnectionManager {
                                                                                isPrepared = false;
                                                                                break;
                                                                        } else {
-                                                                               prep.setInt(i, (Integer) col);
+                                                                               prep.setInt(i + 1, (Integer) col);
                                                                        }
                                                                } else if (columnType.get(i).equals(
                                                                                DBConstants.LONG)) {
@@ -158,7 +166,7 @@ public class SqlConnectionManager {
                                                                                isPrepared = false;
                                                                                break;
                                                                        } else {
-                                                                               prep.setLong(i, (Long) col);
+                                                                               prep.setLong(i + 1, (Long) col);
                                                                        }
                                                                } else {
                                                                        System.out
index 5ece27e..0a6e3fc 100755 (executable)
@@ -69,14 +69,13 @@ public class DBTableManager {
        public static final int TABLE_INDEX_CONTEXT_SWITCH_DATA = 12;
        public static final int TABLE_INDEX_FUNCTION_CALL_DATA = 13;
        // public static final int TABLE_INDEX_GLES20_CHANGE_INFO = 12;
-       public static int TABLE_COUNT = 14;
 
        public static final String EMPTY = CommonConstants.EMPTY;
        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 = "LONGVARCHAR";//$NON-NLS-1$
-//     public static final String BIG_TEXT = "LONGVARCHAR";//$NON-NLS-1$
+       //      public static final String TEXT = "LONGVARCHAR";//$NON-NLS-1$
+       //      public static final String BIG_TEXT = "LONGVARCHAR";//$NON-NLS-1$
        public static final String INTEGER = "INTEGER";//$NON-NLS-1$
        public static final String LONG = "bigint";//$NON-NLS-1$
        public static final String NOT_NULL = "not null";//$NON-NLS-1$
@@ -168,9 +167,6 @@ public class DBTableManager {
        public List<DBTableInfo> getTableInfos() {
                if (null == tableInfos) {
                        tableInfos = new ArrayList<DBTableInfo>();
-                       for (int i = 0; i < TABLE_COUNT; i++) {
-                               tableInfos.add(null);
-                       }
                }
                return tableInfos;
        }
@@ -191,7 +187,7 @@ public class DBTableManager {
                                        TEXT, TEXT, TEXT, TEXT, TEXT };
                        DBTableInfo projectInfo = new DBTableInfo(TABLE_NAME_PROJECT,
                                        names, options, types);
-                       tableInfos.set(TABLE_INDEX_PROJECT, projectInfo);
+                       tableInfos.add(projectInfo);
                }
 
                // "callstack units" table info block
@@ -202,8 +198,7 @@ public class DBTableManager {
                        String[] types = { TEXT, "VARCHAR(256)", TEXT, TEXT };
                        DBTableInfo callstackUnitsTableInfo = new DBTableInfo(
                                        TABLE_NAME_CALLSTACK_UNITS, names, options, types);
-                       tableInfos
-                                       .set(TABLE_INDEX_CALLSTACK_UNITS, callstackUnitsTableInfo);
+                       tableInfos.add(callstackUnitsTableInfo);
                }
 
                // "callstack data" table info block
@@ -213,7 +208,7 @@ public class DBTableManager {
                        String[] types = { INTEGER, "VARCHAR(1024)" };
                        DBTableInfo callstackDataTableInfo = new DBTableInfo(
                                        TABLE_NAME_CALLSTACK_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_CALLSTACK_DATA, callstackDataTableInfo);
+                       tableInfos.add(callstackDataTableInfo);
                }
 
                // "failed data" table info block
@@ -227,7 +222,7 @@ public class DBTableManager {
                                        TEXT, TEXT, TEXT };
                        DBTableInfo failedDataTableInfo = new DBTableInfo(
                                        TABLE_NAME_FAILED_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_FAILED_DATA, failedDataTableInfo);
+                       tableInfos.add(failedDataTableInfo);
                }
 
                // "leak data" table info block
@@ -242,7 +237,7 @@ public class DBTableManager {
                                        TEXT, TEXT, TEXT, TEXT, TEXT, TEXT };
                        DBTableInfo leakDataTableInfo = new DBTableInfo(
                                        TABLE_NAME_LEAK_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_LEAK_DATA, leakDataTableInfo);
+                       tableInfos.add(leakDataTableInfo);
                }
 
                // "profiling data" table info block
@@ -258,7 +253,7 @@ public class DBTableManager {
                                        "VARCHAR(512)", "VARCHAR(512)", TEXT, TEXT };
                        DBTableInfo profilingDataTableInfo = new DBTableInfo(
                                        TABLE_NAME_PROFILING_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_PROFILING_DATA, profilingDataTableInfo);
+                       tableInfos.add(profilingDataTableInfo);
                }
 
                // "profiling child data" table info block
@@ -269,8 +264,7 @@ public class DBTableManager {
                        String[] types = { TEXT, TEXT, "VARCHAR(1024)" };
                        DBTableInfo profilingChildTableInfo = new DBTableInfo(
                                        TABLE_NAME_PROFILING_CHILD_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_PROFILING_CHILD_DATA,
-                                       profilingChildTableInfo);
+                       tableInfos.add(profilingChildTableInfo);
                }
 
                // target info
@@ -287,7 +281,7 @@ public class DBTableManager {
                                        TEXT, TEXT, TEXT };
                        DBTableInfo targetInfoTableInfo = new DBTableInfo(
                                        TABLE_NAME_TARGET_INFO, names, options, types);
-                       tableInfos.set(TABLE_INDEX_TARGET_INFO, targetInfoTableInfo);
+                       tableInfos.add(targetInfoTableInfo);
                }
 
                // process info
@@ -297,7 +291,7 @@ public class DBTableManager {
                        String[] types = { TEXT, TEXT };
                        DBTableInfo processInfoTableInfo = new DBTableInfo(
                                        TABLE_NAME_PROCESS_INFO, names, options, types);
-                       tableInfos.set(TABLE_INDEX_PROCESS_INFO, processInfoTableInfo);
+                       tableInfos.add(processInfoTableInfo);
                }
 
                // library object
@@ -309,7 +303,7 @@ public class DBTableManager {
                        String[] types = { TEXT, TEXT, TEXT, TEXT, TEXT };
                        DBTableInfo libObjTableInfo = new DBTableInfo(TABLE_NAME_LIB_OBJ,
                                        names, options, types);
-                       tableInfos.set(TABLE_INDEX_LIB_OBJ, libObjTableInfo);
+                       tableInfos.add(libObjTableInfo);
                }
 
                // api name map
@@ -319,7 +313,7 @@ public class DBTableManager {
                        String[] types = { "varchar(1024)" };
                        DBTableInfo apiName = new DBTableInfo(TABLE_NAME_APINAME, names,
                                        options, types);
-                       tableInfos.set(TABLE_INDEX_APINAME, apiName);
+                       tableInfos.add(apiName);
                }
 
                {
@@ -349,9 +343,9 @@ public class DBTableManager {
                                        types[i] = "VARCHAR(20000)";
                                } else if (i == GLContextDBEnum.TEXTURE_OBJ_MIN_FUNC.ordinal()) {
                                        types[i] = "VARCHAR(20000)";
-                               }else if (i == GLContextDBEnum.TEXTURE_UNIT_2D.ordinal()) {
+                               } else if (i == GLContextDBEnum.TEXTURE_UNIT_2D.ordinal()) {
                                        types[i] = "VARCHAR(2000)";
-                               }else if (i == GLContextDBEnum.TEXTURE_UNIT_CUBE.ordinal()) {
+                               } else if (i == GLContextDBEnum.TEXTURE_UNIT_CUBE.ordinal()) {
                                        types[i] = "VARCHAR(2000)";
                                } else {
                                        types[i] = TEXT;
@@ -364,8 +358,7 @@ public class DBTableManager {
 
                        DBTableInfo Gles20ContextTableInfo = new DBTableInfo(
                                        TABLE_NAME_GLES20_CONTEXT_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_GLES20_CONTEXT_DATA,
-                                       Gles20ContextTableInfo);
+                       tableInfos.add(Gles20ContextTableInfo);
 
                        // // gles20 context change info
                        // DBTableInfo Gles20ChangeInfoTableInfo = new DBTableInfo(
@@ -373,36 +366,28 @@ public class DBTableManager {
                        // tableInfos.set(TABLE_INDEX_GLES20_CHANGE_INFO,
                        // Gles20ChangeInfoTableInfo);
                }
-/*
-               // context switch data
-               {
-                       String[] names = { COMMON_COLUMN_SEQ_NUMBER, COMMON_COLUMN_PID,
-                                       COMMON_COLUMN_TID, "CpuNum", CUSTOM_COLUMN_START_TIME,
-                                       "StartPcAddr", CUSTOM_COLUMN_END_TIME, "EndPcAddr" };
-                       String[] options = { NOT_NULL, NOT_NULL, NOT_NULL, EMPTY, EMPTY,
-                                       EMPTY, EMPTY, EMPTY };
-                       String[] types = { INTEGER, INTEGER, INTEGER, INTEGER, LONG, LONG,
-                                       LONG, LONG };
-                       DBTableInfo contextSwitchInfo = new DBTableInfo(
-                                       TABLE_NAME_CONTEXT_SWITCH_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_CONTEXT_SWITCH_DATA, contextSwitchInfo);
-               }
-
-               // function call data
-               {
-                       String[] names = { COMMON_COLUMN_SEQ_NUMBER, COMMON_COLUMN_PID,
-                                       COMMON_COLUMN_TID, "CpuNum", CUSTOM_COLUMN_START_TIME,
-                                       "StartType", "StartPcAddr", CUSTOM_COLUMN_END_TIME,
-                                       "EndType", "EndPcAddr", CUSTOM_COLUMN_FUNCNAME };
-                       String[] options = { NOT_NULL, NOT_NULL, NOT_NULL, EMPTY, EMPTY,
-                                       EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY };
-                       String[] types = { INTEGER, INTEGER, INTEGER, INTEGER, LONG,
-                                       INTEGER, LONG, LONG, INTEGER, LONG, TEXT };
-                       DBTableInfo funcCallInfo = new DBTableInfo(
-                                       TABLE_NAME_FUNCTION_CALL_DATA, names, options, types);
-                       tableInfos.set(TABLE_INDEX_FUNCTION_CALL_DATA, funcCallInfo);
-               }
-*/
+               /*
+                * // context switch data { String[] names = { COMMON_COLUMN_SEQ_NUMBER,
+                * COMMON_COLUMN_PID, COMMON_COLUMN_TID, "CpuNum",
+                * CUSTOM_COLUMN_START_TIME, "StartPcAddr", CUSTOM_COLUMN_END_TIME,
+                * "EndPcAddr" }; String[] options = { NOT_NULL, NOT_NULL, NOT_NULL,
+                * EMPTY, EMPTY, EMPTY, EMPTY, EMPTY }; String[] types = { INTEGER,
+                * INTEGER, INTEGER, INTEGER, LONG, LONG, LONG, LONG }; DBTableInfo
+                * contextSwitchInfo = new DBTableInfo( TABLE_NAME_CONTEXT_SWITCH_DATA,
+                * names, options, types);
+                * tableInfos.set(TABLE_INDEX_CONTEXT_SWITCH_DATA, contextSwitchInfo); }
+                * 
+                * // function call data { String[] names = { COMMON_COLUMN_SEQ_NUMBER,
+                * COMMON_COLUMN_PID, COMMON_COLUMN_TID, "CpuNum",
+                * CUSTOM_COLUMN_START_TIME, "StartType", "StartPcAddr",
+                * CUSTOM_COLUMN_END_TIME, "EndType", "EndPcAddr",
+                * CUSTOM_COLUMN_FUNCNAME }; String[] options = { NOT_NULL, NOT_NULL,
+                * NOT_NULL, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY };
+                * String[] types = { INTEGER, INTEGER, INTEGER, INTEGER, LONG, INTEGER,
+                * LONG, LONG, INTEGER, LONG, TEXT }; DBTableInfo funcCallInfo = new
+                * DBTableInfo( TABLE_NAME_FUNCTION_CALL_DATA, names, options, types);
+                * tableInfos.set(TABLE_INDEX_FUNCTION_CALL_DATA, funcCallInfo); }
+                */
        }
 
        public DBTableInfo getTableInfo(int tableInfoIndex) {
index de24b70..b4adcbd 100755 (executable)
@@ -282,7 +282,7 @@ public class SqlManager {
                        }
                }
 
-               System.out.println("dddd : " + query.toString());
+//             System.out.println("dddd : " + query.toString());
                return query.toString();
        }
 
index b728b25..e66bc72 100755 (executable)
@@ -184,7 +184,7 @@ public class Communicator30 extends BaseCommunicator {
                                length, rear);
 
                System.out.println("print start message");
-               ByteUtils.printByteArrayForStart(ret);
+//             ByteUtils.printByteArrayForStart(ret);
                
                if(PRINT_CONTROL_LOG_TOFILE) {
                        File logPath = new File(
@@ -303,12 +303,12 @@ public class Communicator30 extends BaseCommunicator {
                                functionInstList.add(functionInst);
 
                                // for debug
-                               System.out.print("DEBUG : addr ");
-                               AnalyzerUtil.printHexdecimal(addrSymbol.getAddr());
-                               System.out.print("   symbol " + addrSymbol.getSymbol()
-                                               + "   args ");
-                               ByteUtils.printByteArray(functionInst.getArgs());
-                               System.out.println();
+//                             System.out.print("DEBUG : addr ");
+//                             AnalyzerUtil.printHexdecimal(addrSymbol.getAddr());
+//                             System.out.print("   symbol " + addrSymbol.getSymbol()
+//                                             + "   args ");
+//                             ByteUtils.printByteArray(functionInst.getArgs());
+//                             System.out.println();
                        }
                        appInst.setFunctionCount(size - exSize);
                        // appInst.setFunctionCount(0);
@@ -498,7 +498,7 @@ public class Communicator30 extends BaseCommunicator {
                int length = rtByte.length;
                byte[] msg = ByteUtils.getByte(config, length, rtByte);
 
-               ByteUtils.printByteArrayForStart(msg);
+//             ByteUtils.printByteArrayForStart(msg);
 
                HostResult result = handleControlMessage(devInfo, msg);
 
@@ -972,12 +972,12 @@ public class Communicator30 extends BaseCommunicator {
                                functionInstList.add(functionInst);
 
                                // for debug
-                               System.out.print("LIB : addr ");
-                               AnalyzerUtil.printHexdecimal(addrSymbol.getAddr());
-                               System.out.print("   symbol " + addrSymbol.getSymbol()
-                                               + "   args ");
-                               ByteUtils.printByteArray(functionInst.getArgs());
-                               System.out.println();
+//                             System.out.print("LIB : addr ");
+//                             AnalyzerUtil.printHexdecimal(addrSymbol.getAddr());
+//                             System.out.print("   symbol " + addrSymbol.getSymbol()
+//                                             + "   args ");
+//                             ByteUtils.printByteArray(functionInst.getArgs());
+//                             System.out.println();
                        }
                        size = size - exSize;
                        libInst = ByteUtils.getByte(libInst, binaryPath, size);
@@ -991,7 +991,7 @@ public class Communicator30 extends BaseCommunicator {
                int length = libInst.length;
                msg = ByteUtils.getByte(msg, length, libInst);
 
-               ByteUtils.printByteArrayForStart(msg);
+//             ByteUtils.printByteArrayForStart(msg);
                HostResult result = handleControlMessage(
                                DACommunicator.getSelectedDevice(), msg);
 
index ba13c8e..182fee8 100755 (executable)
@@ -202,7 +202,7 @@ public class MessageParser {
 
                List<LibraryObject> libObjs = pInfo.getLibObjs();
                HashMap<String, LibraryObject> libHash = pInfo.getLibObjHash();
-               System.out.println("LIBCOUNT :: " + dependantLibCount);
+//             System.out.println("LIBCOUNT :: " + dependantLibCount);
                for (int i = 0; i < dependantLibCount; i++) {
                        LibraryObject libObj = new LibraryObject();
                        libObj.setPid(pid);
@@ -219,9 +219,9 @@ public class MessageParser {
                        libObj.setLibPath(libPath);
                        libObjs.add(libObj);
                        libHash.put(libPath, libObj);
-                       System.out.println("LIBPATH :: (" + i + ") " + libPath + "low : "
-                                       + AnalyzerUtil.toHexdecimal(lowestAddr) + " high : "
-                                       + AnalyzerUtil.toHexdecimal(highestAddr));
+//                     System.out.println("LIBPATH :: (" + i + ") " + libPath + "low : "
+//                                     + AnalyzerUtil.toHexdecimal(lowestAddr) + " high : "
+//                                     + AnalyzerUtil.toHexdecimal(highestAddr));
                }
 
                DATime startTime = AnalyzerManager.getProject().getProfileStartTime();
@@ -340,19 +340,19 @@ public class MessageParser {
                        pInfo.getLibObjHash().put(libPath, libObj);
 
                        // log
-                       System.out.println("MAP CHANGED    ADD  "
-                                       + AnalyzerUtil.toHexdecimal(id) + "  libPath : " + libPath
-                                       + "    low : " + AnalyzerUtil.toHexdecimal(lowAddr)
-                                       + "    high: " + AnalyzerUtil.toHexdecimal(highAddr)
-                                       + "  chage time : " + changeTime.toString()
-                                       + "  total count : " + pInfo.getLibObjs().size());
+//                     System.out.println("MAP CHANGED    ADD  "
+//                                     + AnalyzerUtil.toHexdecimal(id) + "  libPath : " + libPath
+//                                     + "    low : " + AnalyzerUtil.toHexdecimal(lowAddr)
+//                                     + "    high: " + AnalyzerUtil.toHexdecimal(highAddr)
+//                                     + "  chage time : " + changeTime.toString()
+//                                     + "  total count : " + pInfo.getLibObjs().size());
                } else {
-                       System.out.println("MAP CHANGED REMOVE  "
-                                       + AnalyzerUtil.toHexdecimal(id) + "  libPath : " + libPath
-                                       + "  low : " + AnalyzerUtil.toHexdecimal(lowAddr)
-                                       + "    high: " + AnalyzerUtil.toHexdecimal(highAddr)
-                                       + "  chage time : " + changeTime.toString()
-                                       + "  total count : " + pInfo.getDepLibCount());
+//                     System.out.println("MAP CHANGED REMOVE  "
+//                                     + AnalyzerUtil.toHexdecimal(id) + "  libPath : " + libPath
+//                                     + "  low : " + AnalyzerUtil.toHexdecimal(lowAddr)
+//                                     + "    high: " + AnalyzerUtil.toHexdecimal(highAddr)
+//                                     + "  chage time : " + changeTime.toString()
+//                                     + "  total count : " + pInfo.getDepLibCount());
 
                        int size = libObjs.size();
                        for (int i = 0; i < size; i++) {
@@ -363,14 +363,14 @@ public class MessageParser {
                                        libObjs.remove(libObj);
                                        pInfo.getLibObjHash().remove(libObj.getLibPath());
 
-                                       System.out.println("LIB UNMAP : "
-                                                       + libObj.getLibPath()
-                                                       + "  low : "
-                                                       + AnalyzerUtil.toHexdecimal(libObj
-                                                                       .getLowestAddress())
-                                                       + " high: "
-                                                       + AnalyzerUtil.toHexdecimal(libObj
-                                                                       .getHighestAddress()));
+//                                     System.out.println("LIB UNMAP : "
+//                                                     + libObj.getLibPath()
+//                                                     + "  low : "
+//                                                     + AnalyzerUtil.toHexdecimal(libObj
+//                                                                     .getLowestAddress())
+//                                                     + " high: "
+//                                                     + AnalyzerUtil.toHexdecimal(libObj
+//                                                                     .getHighestAddress()));
                                        break;
                                }
                        }
index 685a435..f47ccdd 100755 (executable)
@@ -141,8 +141,8 @@ public class SWAPLogParser implements Runnable {
                        int id = log.getId();
                        int seqNum = log.getSeq();
                        if (log instanceof SystemData) {
-                               System.out
-                                               .println("=========systemData is slicing===========\n");
+//                             System.out
+//                                             .println("=========systemData is slicing===========\n");
                                pushLog(log, logPack);
                        } else if (log instanceof ProfileData) {
                                if (!AnalyzerManager.isProcessInfoArrived()) {
index c21fb03..8dbdf5e 100755 (executable)
@@ -72,8 +72,9 @@ public class ContextDataDBInserter implements Runnable {
                while (!AnalyzerManager.isExit()) {\r
                        List<List<Object>> contextData = contextDataQueue.poll();\r
 \r
-                       if (contextData != null) {\r
-                               KernelDataManager.getInstance().getContextDataTable().insertData(contextData);\r
+                       if (contextData != null && contextData.size() != 0) {\r
+                               KernelDataManager.getInstance().getContextDataTable()\r
+                                               .insertData(contextData);\r
                        }\r
                }\r
        }\r
index f15611e..64ee1d8 100755 (executable)
@@ -72,8 +72,9 @@ public class FunctionDataDBInserter implements Runnable {
                while (!AnalyzerManager.isExit()) {\r
                        List<List<Object>> functionData = functionDataQueue.poll();\r
 \r
-                       if (functionData != null) {\r
-                               KernelDataManager.getInstance().getFunctionDataTable().insertData(functionData);\r
+                       if (functionData != null && functionData.size() != 0) {\r
+                               KernelDataManager.getInstance().getFunctionDataTable()\r
+                                               .insertData(functionData);\r
                        }\r
                }\r
        }\r
index be75b4d..1806fe2 100644 (file)
@@ -130,8 +130,8 @@ public class LeakDetector {
                }
 
                if (isDropLog(logData) && log.isInternal()) {
-                       System.out.println("drop log " + log.getApiName() + " check "
-                                       + log.getInternalCall());
+//                     System.out.println("drop log " + log.getApiName() + " check "
+//                                     + log.getInternalCall());
                        return;
                }
 
index 52ff78c..6b7ad3d 100644 (file)
@@ -267,11 +267,11 @@ public class ProfilingTable extends DATreeComposite {
                }
 
                List<String> text = new ArrayList<String>();
-               List<String> data = new ArrayList<String>();
+               List<Object> data = new ArrayList<Object>();
 
                // name
                text.add(input.getName());
-               data.add(Integer.toString(input.getProfileDataMaker().getPid()));
+               data.add(new Integer(input.getProfileDataMaker().getPid()));
 
                // EXCLUSIVE!!
                // cpu time
@@ -284,7 +284,7 @@ public class ProfilingTable extends DATreeComposite {
 
                // elapsed time
                text.add(exeTime);
-               data.add(Long.toString(input.getExclusiveElapsedTime()));
+               data.add(new Long(input.getExclusiveElapsedTime()));
 
                // INCLUSIVE
                // cpu time, cpu rate
@@ -301,11 +301,11 @@ public class ProfilingTable extends DATreeComposite {
                }
                // elapsed time
                text.add(inExeTime);
-               data.add(Long.toString(input.getElapsedTime()));
+               data.add(new Long(input.getElapsedTime()));
 
                // call count
                text.add(callCount);
-               data.add(Integer.toString(input.getCallCount()));
+               data.add(new Integer(input.getCallCount()));
 
                TreeInput output = new TreeInput();
                output.setText(text);
index 73eca33..2dd0d3b 100644 (file)
@@ -385,16 +385,20 @@ public abstract class DAWindowingTableComposite extends DATableComposite {
                table.update();
        }
 
+       // this function can be called before database established
        protected int getItemCount() {
                if (AnalyzerManager.isRunning()) { // trace
                        totalItemCount = getItemCountByPid();
                } else {
-                       if (totalItemCount == 0) { // open
-                               String query = String.format(queryto_GetItemCount,
-                                               getDBTableName(), getSelectQueryCountOption());
-                               List<List<Object>> result = SqlConnectionManager
-                                               .executeQuery(query);
-                               totalItemCount = (Integer) result.get(0).get(0);
+                       if (totalItemCount == 0) { // open or never trace
+                               if (SqlConnectionManager.isConnected()) {
+                                       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);
+                               }
                        } else { // stop
                                totalItemCount = getItemCountByPid();
                        }