[Title] failed api, sort fixed
authorjooyoul_lee <jy.exe.lee@samsung.com>
Thu, 12 Sep 2013 02:23:31 +0000 (11:23 +0900)
committerjooyoul_lee <jy.exe.lee@samsung.com>
Thu, 12 Sep 2013 02:23:31 +0000 (11:23 +0900)
[Desc.]
[Issue]

23 files changed:
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/common/AnalyzerConstants.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/handlers/OpenTraceHandler.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/model/DATime.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/RecordEventObject.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/data/BasicDataMessage.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe/ReplayLogFormat.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/FailedData2.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/LogDataFactory.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/swap/model/probe2/ReplayData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/file/FileApiListTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiListView.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/failed/FailedApiTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningData.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/summary/warning/WarningTable.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/StopLogProcessor.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/TraceStartStopThread.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/toolbar/opentrace/OpenTraceDialog.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/DAMessageBox.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DATableComposite.java
org.tizen.dynamicanalyzer/src/org/tizen/dynamicanalyzer/ui/widgets/table/DefaultTableComparator.java

index e6833a5..40c358a 100644 (file)
@@ -30,7 +30,7 @@ import org.tizen.dynamicanalyzer.nl.AnalyzerLabels;
 \r
 public class AnalyzerConstants {\r
        // if log change occurs then increase save data version!!\r
-       public static final String SAVE_DATA_VERSION = "0.86"; //$NON-NLS-1$\r
+       public static final String SAVE_DATA_VERSION = "0.87"; //$NON-NLS-1$\r
        public static final boolean CHECK_INTERNAL = true;\r
 \r
        public static final String DA_VERSION_SWAP = "3.0";\r
index 94e7679..bc13d97 100644 (file)
@@ -315,8 +315,8 @@ public class OpenTraceHandler extends AbstractHandler {
                        ProcessInfo process = new ProcessInfo();\r
                        process.setPid(Integer.parseInt(info.get(0)));\r
                        DATime startTime = new DATime();\r
-                       startTime.setSec(Long.parseLong(info.get(1)));\r
-                       startTime.setNano(Long.parseLong(info.get(2)));\r
+                       startTime.setSec(Integer.parseInt(info.get(1)));\r
+                       startTime.setNano(Integer.parseInt(info.get(2)));\r
                        process.setStartTime(startTime);\r
                        process.setLowestAddress(Long.parseLong(info.get(3)));\r
                        process.setHighestAddress(Long.parseLong(info.get(4)));\r
index 18b4994..308d36e 100755 (executable)
@@ -54,10 +54,10 @@ import org.tizen.dynamicanalyzer.project.Project;
 import org.tizen.dynamicanalyzer.swap.model.RecordEventObject;
 import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo;
 import org.tizen.dynamicanalyzer.swap.model.data.ApiNameManager;
-import org.tizen.dynamicanalyzer.swap.model.data.BasicDataMessage;
 import org.tizen.dynamicanalyzer.swap.model.data.LibraryObject;
 import org.tizen.dynamicanalyzer.swap.model.data.ProcessInfo;
 import org.tizen.dynamicanalyzer.swap.model.probe.LogFormat;
+import org.tizen.dynamicanalyzer.swap.model.probe.ReplayLogFormat;
 import org.tizen.dynamicanalyzer.swap.model.probe2.FailedData2;
 import org.tizen.dynamicanalyzer.swap.model.probe2.LeakData2;
 import org.tizen.dynamicanalyzer.swap.model.probe2.LogData;
@@ -965,39 +965,46 @@ public class SqlManager {
                return logs;
        }
 
-       public List<BasicDataMessage> getReplayLogs() {
+       public ReplayData getReplayLogs() {
                String query = null;
                Statement stat = null;
                ResultSet rs = null;
                Connection conn = null;
-               List<BasicDataMessage> logs = null;
+               ReplayData output = null;
                try {
                        conn = getConnection();
                        if (null == conn) {
                                return null;
                        }
                        semaphoreAcquire();
-                       StringBuilder columns = new StringBuilder();
-                       columns.append("Rid , ID , SeqNumber , Time ,  payload ");
-                       query = String.format("select %s from %s ;",//$NON-NLS-1$
-                                       columns.toString(), "replay");
+                       StringBuffer buffer = new StringBuffer();
+                       List<String> columnNames = ReplayLogFormat.getInstance()
+                                       .getDBColumnNames();
+                       for (int i = 0; i < columnNames.size(); i++) {
+                               buffer.append(columnNames.get(i));
+                               if (i + 1 != columnNames.size()) {
+                                       buffer.append(",");
+                               }
+                       }
+                       query = String.format("select %s from %s ;", buffer.toString(),
+                                       "replay");
 
                        stat = conn.createStatement();
                        rs = stat.executeQuery(query);
                        if (null == rs) {
                                return null;
                        }
-                       logs = new ArrayList<BasicDataMessage>();
+                       output = new ReplayData();
+                       List<RecordEventObject> eventObjs = output.getRecordEvent();
                        while (rs.next()) {
-                               BasicDataMessage bdm = new BasicDataMessage();
-                               bdm.setId(rs.getInt(2));
-                               bdm.setSeq(rs.getInt(3));
-                               bdm.setTime(rs.getLong(4));
-                               bdm.setPayload(rs.getBytes(5));
-                               logs.add(bdm);
+                               RecordEventObject reObj = new RecordEventObject();
+                               reObj.loadData(rs);
+                               eventObjs.add(reObj);
                        }
+                       
+                       output.setObjectCount(eventObjs.size());
                } catch (SQLException e) {
-                       System.out.println("SQLException - selecte : " + query);
+                       System.out.println("SQLException - select : " + query);
                        e.printStackTrace();
                } finally {
                        AnalyzerUtil.tryClose(stat, rs);
@@ -1005,7 +1012,7 @@ public class SqlManager {
                                semaphoreRelease();
                        }
                }
-               return logs;
+               return output;
        }
 
        public List<List<String>> selectQuery(String dbFilePath,
index 6c8e642..b951fba 100755 (executable)
@@ -46,6 +46,7 @@ import org.tizen.dynamicanalyzer.swap.model.control.RunTimeConfiguration;
 import org.tizen.dynamicanalyzer.swap.model.control.TargetInfo;
 import org.tizen.dynamicanalyzer.swap.model.control.UserSpaceInst;
 import org.tizen.dynamicanalyzer.swap.model.data.BasicDataMessage;
+import org.tizen.dynamicanalyzer.swap.model.probe2.ReplayData;
 import org.tizen.dynamicanalyzer.ui.file.FileChartManager;
 import org.tizen.dynamicanalyzer.ui.summary.profiling.FunctionUsageProfiler;
 import org.tizen.dynamicanalyzer.ui.thread.ThreadChartManager;
@@ -187,15 +188,14 @@ public class Communicator30 extends BaseCommunicator {
                        // on/off , replay start time, count, event objs
                        int onOff = 1;
                        DATime startTime = ReplayTraceHandler.startTime;
-                       List<BasicDataMessage> replayLogs = SqlManager.getInstance()
+                       ReplayData replayData = SqlManager.getInstance()
                                        .getReplayLogs();
-                       int count = replayLogs.size();
+                       int count = replayData.getObjectCount();
                        byte[] eventObjs = null;
                        for (int i = 0; i < count; i++) {
-                               eventObjs = ByteUtils.concatByteArray(eventObjs, replayLogs
-                                               .get(i).getPayload());
+                               eventObjs = ByteUtils.concatByteArray(eventObjs, replayData.getRecordEvent()
+                                               .get(i).getByteValues());
                        }
-
                        replayEvent = ByteUtils.getByte(onOff, startTime.getSec(),
                                        startTime.getNano(), count, eventObjs);
                } else {
@@ -203,11 +203,11 @@ public class Communicator30 extends BaseCommunicator {
                }
 
                // TODO: app inst , replay info added!!
-                byte[] rear = ByteUtils.getByte(appInfo.getByteValue(),
-                rt.getByteValue(), getUserSpaceInst().getByteValue(),
-                replayEvent);
-//             byte[] rear = ByteUtils.getByte(appInfo.getByteValue(),
-//                             rt.getByteValue(), 0, 0);
+               byte[] rear = ByteUtils.getByte(appInfo.getByteValue(),
+                               rt.getByteValue(), getUserSpaceInst().getByteValue(),
+                               replayEvent);
+               // byte[] rear = ByteUtils.getByte(appInfo.getByteValue(),
+               // rt.getByteValue(), 0, 0);
                int length = rear.length;
 
                byte[] ret = ByteUtils.getByte(AnalyzerConstants.MSG_START_SWAP,
@@ -399,43 +399,44 @@ public class Communicator30 extends BaseCommunicator {
 
                if (!targetHashCode.equals(localHashCode)) {
                        String destFilePath = AnalyzerPaths.TEMP_FOLDER_PATH;
-//                                     + File.separator + selectedApp.getExecFileName(appInfo.getAppType());
-                       try{
-                       Runtime rt = Runtime.getRuntime();
-                       command = "/home/casval/tizen-sdk/tools/sdb root on | /home/casval/tizen-sdk/tools/sdb pull "+ targetPath + "  " + destFilePath;
-                       Process process = rt.exec(new String[] {
-                                       "/home/casval/tizen-sdk/tools/sdb", "root", "on"});
-                       process.waitFor();
-                       BufferedReader reader = new BufferedReader(new InputStreamReader(
-                                       process.getInputStream()));
-                       BufferedReader error = new BufferedReader(new InputStreamReader(
-                                       process.getErrorStream()));
-                       String line = reader.readLine();
-                       String errorStr = error.readLine();
-                       if (null == line) {
-                               System.out.println("host md5sum get failed : " + errorStr);
-                               return HostResult.ERR_BIN_INFO_GET_FAIL;
-                       }
+                       // + File.separator +
+                       // selectedApp.getExecFileName(appInfo.getAppType());
+                       try {
+                               Runtime rt = Runtime.getRuntime();
+                               command = "/home/casval/tizen-sdk/tools/sdb root on | /home/casval/tizen-sdk/tools/sdb pull "
+                                               + targetPath + "  " + destFilePath;
+                               Process process = rt.exec(new String[] {
+                                               "/home/casval/tizen-sdk/tools/sdb", "root", "on" });
+                               process.waitFor();
+                               BufferedReader reader = new BufferedReader(
+                                               new InputStreamReader(process.getInputStream()));
+                               BufferedReader error = new BufferedReader(
+                                               new InputStreamReader(process.getErrorStream()));
+                               String line = reader.readLine();
+                               String errorStr = error.readLine();
+                               if (null == line) {
+                                       System.out.println("host md5sum get failed : " + errorStr);
+                                       return HostResult.ERR_BIN_INFO_GET_FAIL;
+                               }
 
-                       }catch(IOException e)
-                       {
+                       } catch (IOException e) {
                                e.printStackTrace();
-                       }catch(InterruptedException e)
-                       {
+                       } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
-//
-//                     SyncResult res = CommunicatorUtils.pull(targetPath, destFilePath);
-//                     if (null != res && res.isOk()) {
-//                             System.out.println("binary copy success!!");//$NON-NLS-1$ 
-//                     } else {
-//                             System.out.println("Failed to get " + targetPath + "  step 2"); //$NON-NLS-1$ 
-//                             return HostResult.ERR_BIN_INFO_GET_FAIL;
-//                     }
-//                     String[] splitName = binaryPath.split(CommonConstants.SLASH);
-//                     binaryPath = AnalyzerPaths.TEMP_FOLDER_PATH + File.separator
-//                                     + new String(splitName[splitName.length - 1]);
-//                     binInfo.setPath(binaryPath);
+                       //
+                       // SyncResult res = CommunicatorUtils.pull(targetPath,
+                       // destFilePath);
+                       // if (null != res && res.isOk()) {
+                       //                              System.out.println("binary copy success!!");//$NON-NLS-1$ 
+                       // } else {
+                       //                              System.out.println("Failed to get " + targetPath + "  step 2"); //$NON-NLS-1$ 
+                       // return HostResult.ERR_BIN_INFO_GET_FAIL;
+                       // }
+                       // String[] splitName = binaryPath.split(CommonConstants.SLASH);
+                       // binaryPath = AnalyzerPaths.TEMP_FOLDER_PATH + File.separator
+                       // + new String(splitName[splitName.length - 1]);
+                       // binInfo.setPath(binaryPath);
                }
                binInfo.setPath(binaryPath);
 
@@ -466,18 +467,19 @@ public class Communicator30 extends BaseCommunicator {
 
        @Override
        public HostResult stopTrace() {
-               byte[] stop = ByteUtils.toBytes(AnalyzerConstants.MSG_STOP_SWAP);
-               int length = 0;
-               byte[] stopMsg = ByteUtils.getByte(stop, length);
-               HostResult result = handleControlMessage(
-                               DACommunicator.getSelectedDevice(), stopMsg);
-
-               if (result.isSuccess()) {
-                       if (isCorrectAck(MSG_STOP_ACK, result)) {
-                               return result;
+               if (DACommunicator.isRunning()) {
+                       byte[] stop = ByteUtils.toBytes(AnalyzerConstants.MSG_STOP_SWAP);
+                       int length = 0;
+                       byte[] stopMsg = ByteUtils.getByte(stop, length);
+                       HostResult result = handleControlMessage(
+                                       DACommunicator.getSelectedDevice(), stopMsg);
+
+                       if (result.isSuccess()) {
+                               if (isCorrectAck(MSG_STOP_ACK, result)) {
+                                       return result;
+                               }
                        }
                }
-
                return HostResult.ERR_MSG_STOP_FAIL;
        }
 
@@ -516,18 +518,23 @@ public class Communicator30 extends BaseCommunicator {
                                controlSock.getOutputStream().write(message);
                        }
 
-                       System.out.println("wait for ack... [send message : " + message
+                       int msgId = ByteUtils.toInt(message);
+                       System.out.println("wait for ack... [send message : " + msgId
                                        + " ]");
                        int readsize = -1;
                        // read buffer size is sufficient??
                        byte[] cbuf = new byte[DACommunicator.READ_BUFFER_SIZE * 2];
                        blocked = true;
+                       System.out.println("blocked");
                        readsize = controlSock.getInputStream().read(cbuf);
                        blocked = false;
+                       System.out.println("unblocked");
                        if (readsize > 0) {
                                byte[] buf = new byte[readsize];
                                System.arraycopy(cbuf, 0, buf, 0, readsize);
                                result = HostResult.SUCCESS;
+                               int ackId = ByteUtils.toInt(buf);
+                               System.out.println("ack id : " + ackId);
                                result.setRet(buf);
                        } else {
                                result = HostResult.ERR_CONTROL_SOCKET_CONNECTION_CLOSED;
index 50b4505..c7db2e4 100755 (executable)
@@ -147,9 +147,9 @@ public class MessageParser {
                int index = MSG_HEADER_SIZE;
                pid = ByteUtils.toInt(data, index);
                index += INT_SIZE;
-               long sec = ByteUtils.toInt(data, index);
+               int sec = ByteUtils.toInt(data, index);
                index += INT_SIZE;
-               long nano = ByteUtils.toInt(data, index);
+               int nano = ByteUtils.toInt(data, index);
                index += INT_SIZE;
                startTime.setSec(sec);
                startTime.setNano(nano);
@@ -273,7 +273,7 @@ public class MessageParser {
                                }
 
                                //LOG!
-                               ByteUtils.printByteArray(header);
+//                             ByteUtils.printByteArray(header);
                                
                                int id = ByteUtils.toInt(header, 0);
                                int payloadSize = ByteUtils.toInt(header,
index 719c418..ce4a57a 100644 (file)
@@ -1,23 +1,27 @@
 package org.tizen.dynamicanalyzer.swap.model;
 
 public class DATime {
-       private long sec = 0;
-       private long nano = 0;
+       private int sec = 0;
+       private int nano = 0;
 
-       public long getSec() {
+       public int getSec() {
                return sec;
        }
 
-       public void setSec(long sec) {
+       public void setSec(int sec) {
                this.sec = sec;
        }
 
-       public long getNano() {
+       public int getNano() {
                return nano;
        }
 
-       public void setNano(long nano) {
+       public void setNano(int nano) {
                this.nano = nano;
        }
 
+       public byte[] getByteValues() {
+               return ByteUtils.getByte(sec, nano);
+       }
+
 }
index 8c57d43..0053a01 100644 (file)
@@ -1,12 +1,12 @@
 package org.tizen.dynamicanalyzer.swap.model;
 
 import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.tizen.dynamicanalyzer.common.AnalyzerConstants;
-import org.tizen.dynamicanalyzer.swap.model.probe2.LogDataFactory;
+import org.tizen.dynamicanalyzer.swap.model.probe2.LogData;
 
-public class RecordEventObject {
+public class RecordEventObject extends LogData {
        private DATime eventTime = null;
        private int eventId = 0;
        private int eventType = 0;
@@ -56,15 +56,30 @@ public class RecordEventObject {
        public void makePreparedStatement(PreparedStatement prep)
                        throws SQLException {
 
-               int logNum = LogDataFactory
-                               .getLogCountById(AnalyzerConstants.MSG_DATA_RECORD);
+               super.makePreparedStatement(prep);
+               int index = LogData.STATE_COUNT + 1;
 
-               prep.setInt(1, logNum);
-               prep.setLong(2, eventTime.getSec());
-               prep.setLong(3, eventTime.getNano());
-               prep.setInt(4, eventId);
-               prep.setInt(5, eventType);
-               prep.setInt(6, eventCode);
-               prep.setInt(7, eventValue);
+               prep.setLong(index++, eventTime.getSec());
+               prep.setLong(index++, eventTime.getNano());
+               prep.setInt(index++, eventId);
+               prep.setInt(index++, eventType);
+               prep.setInt(index++, eventCode);
+               prep.setInt(index++, eventValue);
+       }
+
+       public void loadData(ResultSet rs) throws SQLException {
+               super.loadData(rs);
+               int index = LogData.STATE_COUNT + 1;
+               eventTime.setSec(rs.getInt(index++));
+               eventTime.setNano(rs.getInt(index++));
+               eventId = rs.getInt(index++);
+               eventType = rs.getInt(index++);
+               eventCode = rs.getInt(index++);
+               eventValue = rs.getInt(index++);
+       }
+
+       public byte[] getByteValues() {
+               return ByteUtils.getByte(eventTime.getByteValues(), eventId, eventType,
+                               eventCode, eventValue);
        }
 }
index 0eeef98..9fd809b 100644 (file)
@@ -79,13 +79,13 @@ public class BasicDataMessage {
                id = mappingId(id);
                seq = Integer.parseInt(input[LogCenterConstants.SEQUENCE_NUMBER_INDEX]);
                time = Long.parseLong(input[LogCenterConstants.TIME_INDEX]);
-               long sec = time / 10000;
-               long nano = time % 10000;
+               int sec = (int)(time / 10000);
+               int nano = (int)(time % 10000);
                nano *= 100000;
 
                DATime startTime = AnalyzerManager.getProject().getStartTime();
-               long startSec = AnalyzerManager.getProject().getStartTime().getSec();
-               long startNano = AnalyzerManager.getProject().getStartTime().getNano();
+               int startSec = AnalyzerManager.getProject().getStartTime().getSec();
+               int startNano = AnalyzerManager.getProject().getStartTime().getNano();
 
                if (0 == startSec && 0 == startNano) {
                        startTime.setSec(sec);
index c1e2aba..8ac22c1 100644 (file)
@@ -17,21 +17,21 @@ public class ReplayLogFormat extends LogFormat {
 
        private ReplayLogFormat() {
                setName(NAME);
-               String[] dcn = { "Rid", "SeqNumber", "Nano", "EventId", "EventType",
-                               "EventCode", "EventValue" };
+               String[] dcn = { "Rid", "MessageId", "SeqNumber", "Time", "Sec", "Nano", "EventId",
+                               "EventType", "EventCode", "EventValue" };
                dbColumnNames = new ArrayList<String>();
                dbColumnNames.addAll(Arrays.asList(dcn));
 
-               Integer[] dct = { I, L, L, I, I, I, I };
+               Integer[] dct = { I, I, L, L, I, I, I, I, I, I };
                dbColumnTypes = new ArrayList<Integer>();
                dbColumnTypes.addAll(Arrays.asList(dct));
 
-               String[] tcn = { "SeqNumber", "Nano", "EventId", "EventType", "EventCode",
-                               "EventValue" };
+               String[] tcn = { "Rid", "MessageId", "SeqNumber", "Time", "Sec", "Nano", "EventId",
+                               "EventType", "EventCode", "EventValue" };
                tableColumnNames = new ArrayList<String>();
                tableColumnNames.addAll(Arrays.asList(tcn));
 
-               Integer[] types = { I, L, L, I, I, I, I };
+               Integer[] types = { I, I, L, L, I, I, I, I, I, I };
                logColumnTypes = new ArrayList<Integer>();
                logColumnTypes.addAll(Arrays.asList(types));
        }
index 3141ead..55c162e 100755 (executable)
@@ -39,7 +39,7 @@ public class FailedData2 {
        public static final int CALLER_INDEX = 8;
 
        private static int LogNum = 0;
-       // private LogData data;
+       private LogData data;
 
        private int id = -1;
        private int seq = -1;
@@ -60,6 +60,7 @@ public class FailedData2 {
                ret = plog.getReturn();
                err = plog.getErrno();
                callerPc = plog.getCallerPcAddr();
+               data = log;
        }
 
        public FailedData2(List<String> input) {
@@ -110,4 +111,12 @@ public class FailedData2 {
        public long getCallerPc() {
                return callerPc;
        }
+
+       public LogData getData() {
+               return data;
+       }
+
+       public void setData(LogData data) {
+               this.data = data;
+       }
 }
index ec38343..dc1fcde 100644 (file)
@@ -226,10 +226,10 @@ public class LogDataFactory {
                        // system log
                        output = new SystemData();
                        break;
-               case MSG_DATA_RECORD:
-                       // replay log
-                       output = new ReplayData();
-                       break;
+//             case MSG_DATA_RECORD:
+//                     // replay log
+//                     output = new ReplayData();
+//                     break;
                case MSG_CONTEXT_SWITCH_ENTRY:
                case MSG_CONTEXT_SWITCH_EXIT:
                        output = new ContextSwitchData();
index 1e1b0c8..f9799cd 100644 (file)
@@ -29,9 +29,9 @@ public class ReplayData extends LogData {
                seq = ByteUtils.toInt(data, index);
                index += INT_SIZE;
 
-               long sec = ByteUtils.toInt(data, index);
+               int sec = ByteUtils.toInt(data, index);
                index += INT_SIZE;
-               long nano = ByteUtils.toInt(data, index);
+               int nano = ByteUtils.toInt(data, index);
                index += INT_SIZE;
                DATime eventTime = new DATime();
                eventTime.setSec(sec);
@@ -53,6 +53,11 @@ public class ReplayData extends LogData {
 
                for (int i = 0; i < count; i++) {
                        RecordEventObject recordObj = new RecordEventObject();
+                       
+                       recordObj.setId(id);
+                       recordObj.setSeq(seq);
+                       recordObj.setTime(time);
+                       
                        // event time
                        recordObj.setEventTime(eventTime);
 
@@ -89,4 +94,5 @@ public class ReplayData extends LogData {
        public List<RecordEventObject> getRecordEvent() {
                return recordEvent;
        }
+       
 }
index 047b7ad..dae50fa 100644 (file)
@@ -114,27 +114,37 @@ public class FileApiListTable extends DAApiListTableComposite {
                        content = contents.get(i);
                        FileData contentTemp = content.getContents();
                        List<String> contentText = new ArrayList<String>();
+                       List<String> contentData = new ArrayList<String>();
 
                        int seq = contentTemp.getSeq();
                        contentText.add(0, Integer.toString(seq));
+                       contentData.add(Integer.toString(seq));
                        long time = contentTemp.getTime();
                        contentText.add(Formatter.toTimeFormat(time));
+                       contentData.add(Long.toString(time));
                        contentText.add(contentTemp.getApiName());
+                       contentData.add(contentTemp.getApiName());
                        contentText.add(contentTemp.getArgs());
+                       contentData.add(contentTemp.getArgs());
                        contentText.add(Integer.toString(contentTemp.getTid()));
+                       contentData.add(Integer.toString(contentTemp.getTid()));
                        contentText.add(Long.toString(contentTemp.getReturn()));
+                       contentData.add(Long.toString(contentTemp.getReturn()));
                        String errMsg = ErrorCodeManager.getInatance()
                                        .getErrorCode(contentTemp.getErrno()).name();
                        if (null == errMsg) {
                                errMsg = "undefined error code"; //$NON-NLS-1$
                        }
                        contentText.add(errMsg);
+                       contentData.add(errMsg);
                        contentText.add(Long.toString(contentTemp.getFileSize()));
+                       contentData.add(Long.toString(contentTemp.getFileSize()));
 
                        DATableDataFormat tableData = new DATableDataFormat(
                                        contentTemp.getSeq());
                        // contentTemp.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
                        tableData.setLogData(contentTemp);
+                       tableData.getData().addAll(contentData);
                        TableInput tableInput = new TableInput();
                        tableInput.setText(contentText);
                        tableInput.setData(tableData);
index 75498d3..4b3ec49 100644 (file)
@@ -97,7 +97,7 @@ public class FailedApiListView extends DAView {
 
        @Override
        public void updateView() {
-//             tableComp.updateTable();
+               tableComp.updateTable();
        }
 
        @Override
index a445de3..eb7ff16 100644 (file)
@@ -126,6 +126,7 @@ public class FailedApiTable extends DATableComposite {
                        DATableDataFormat tableData = new DATableDataFormat(
                                        failedData.getSeq());
                        tableData.setObject(failedData);
+                       tableData.setLogData(failedData.getData());
 
                        TableInput tableInput = new TableInput();
                        tableInput.setText(text);
index cedb20b..24bc0aa 100644 (file)
@@ -40,6 +40,7 @@ public class WarningData {
        private List<String> data = null;
        private String key = null;
        private long callerPc = -1;
+       private LogData logData = null;
 
        public WarningData(int wCase, LogData data, String key) {
                seq = uNum++;
@@ -47,6 +48,7 @@ public class WarningData {
                warningCase = wCase;
                this.key = key;
                callerPc = ((ProbeCommonData) data).getCallerPcAddr();
+               logData = data;
        }
 
        public List<String> getData() {
@@ -79,4 +81,12 @@ public class WarningData {
        public long getCallerPc() {
                return callerPc;
        }
+
+       public LogData getLogData() {
+               return logData;
+       }
+
+       public void setLogData(LogData logData) {
+               this.logData = logData;
+       }
 }
index 45974ff..6b1bf21 100644 (file)
@@ -86,52 +86,52 @@ public class WarningTable extends DATableComposite {
        }
 
        protected List<TableInput> makeTableInput() {
-//             List<WarningData> warningList = null;
-//             if (isRange) {
-//                     warningList = RangeDataManager.getInstance().getWarningChecker()
-//                                     .getWarningData();
-//             } else {
-//                     warningList = AnalyzerManager.getWarningChecker().getWarningData();
-//             }
-//             List<TableInput> input = new ArrayList<TableInput>();
-//             int size = warningList.size();
-//             for (int i = 0; i < size; i++) {
-//                     // create text
-//                     List<String> text = new ArrayList<String>();
-//                     WarningData warningData = warningList.get(i);
-//                     List<String> warningInput = warningData.getData();
-//
-//                     text.add(warningInput.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
-//                     {
-//                             if (AnalyzerConstants.MSG_PROBE_FILE == warningData
-//                                             .getCategory()) {
-//                                     String fdType = warningInput
-//                                                     .get(LogCenterConstants.RESOURCE_FDTYPE_INDEX);
-//                                     int type = Integer.parseInt(fdType);
-//                                     if (type == LogCenterConstants.FD_TYPE_FILE) {
-//                                             text.add(SummaryLabels.WARNING_TABLE_FILE);
-//                                     } else {
-//                                             text.add(SummaryLabels.WARNING_TABLE_SOCKET);
-//                                     }
-//                             } else {
-//                                     text.add(LogCenterConstants
-//                                                     .getLogCenterNameFromId(warningData.getCategory()));
-//                             }
-//                     }
-//                     String message = WarningChecker.messageMaker(warningData, true);
-//                     text.add(message);
-//                     // create images
-//
-//                     // create DATableDataFormat
-//                     DATableDataFormat tableData = new DATableDataFormat(
-//                                     warningData.getSeq());
-//                     tableData.getData().addAll(warningData.getData());
-//                     TableInput tableInput = new TableInput();
-//                     tableInput.setText(text);
-//                     tableInput.setData(tableData);
-//                     input.add(tableInput);
-//             }
-//             return input;
-               return null;
+               List<WarningData> warningList = null;
+               if (isRange) {
+                       warningList = RangeDataManager.getInstance().getWarningChecker()
+                                       .getWarningData();
+               } else {
+                       warningList = AnalyzerManager.getWarningChecker().getWarningData();
+               }
+               List<TableInput> input = new ArrayList<TableInput>();
+               int size = warningList.size();
+               for (int i = 0; i < size; i++) {
+                       // create text
+                       List<String> text = new ArrayList<String>();
+                       WarningData warningData = warningList.get(i);
+                       List<String> warningInput = warningData.getData();
+
+                       text.add(warningInput.get(LogCenterConstants.SEQUENCE_NUMBER_INDEX));
+                       {
+                               if (AnalyzerConstants.MSG_PROBE_FILE == warningData
+                                               .getCategory()) {
+                                       String fdType = warningInput
+                                                       .get(LogCenterConstants.RESOURCE_FDTYPE_INDEX);
+                                       int type = Integer.parseInt(fdType);
+                                       if (type == LogCenterConstants.FD_TYPE_FILE) {
+                                               text.add(SummaryLabels.WARNING_TABLE_FILE);
+                                       } else {
+                                               text.add(SummaryLabels.WARNING_TABLE_SOCKET);
+                                       }
+                               } else {
+                                       text.add(LogCenterConstants
+                                                       .getLogCenterNameFromId(warningData.getCategory()));
+                               }
+                       }
+                       String message = WarningChecker.messageMaker(warningData, true);
+                       text.add(message);
+                       // create images
+
+                       // create DATableDataFormat
+                       DATableDataFormat tableData = new DATableDataFormat(
+                                       warningData.getSeq());
+                       tableData.getData().addAll(warningData.getData());
+                       tableData.setLogData(warningData.getLogData());
+                       TableInput tableInput = new TableInput();
+                       tableInput.setText(text);
+                       tableInput.setData(tableData);
+                       input.add(tableInput);
+               }
+               return input;
        }
 }
index 6f28471..e32c170 100644 (file)
@@ -72,6 +72,20 @@ public class StopLogProcessor implements Runnable {
                Project project = AnalyzerManager.getProject();
                int percent = 0;
 
+               int exitCount = 0;
+               while (DACommunicator.isWaitControlMessage() && exitCount < 1000) {
+                       System.out.println("wait for STOP ACK message...");
+                       try {
+                               Thread.sleep(10);
+                               exitCount++;
+                               if (exitCount % 20 == 0) {
+                                       StopProcessManager.getInstance().setValue(percent++);
+                               }
+                       } catch (InterruptedException e) {
+                               e.printStackTrace();
+                       }
+               }
+
                if (DACommunicator.isSWAPVersion()) {
                        SWAPLogParser.stopLogParser();
                } else {
@@ -93,33 +107,22 @@ public class StopLogProcessor implements Runnable {
                percent += 10;
                StopProcessManager.getInstance().setValue(percent);
 
-               LogInserter.stopInsertLogThread();
+               UIDataManager.getInstance().stopUpdateLogThread();
                percent += 10;
                StopProcessManager.getInstance().setValue(percent);
 
-               UIDataManager.getInstance().stopUpdateLogThread();
+               UpdateViewTimer.stop();
                percent += 10;
                StopProcessManager.getInstance().setValue(percent);
 
-               UpdateViewTimer.stop();
+               LogInserter.stopInsertLogThread();
                percent += 10;
                StopProcessManager.getInstance().setValue(percent);
 
-               System.out.println("record thread stop");
                UIRecorderTool.getInstance().stop();
                percent += 10;
                StopProcessManager.getInstance().setValue(percent);
 
-               int exitCount = 0;
-               while (DACommunicator.isWaitControlMessage() && exitCount < 60) {
-                       System.out.println("wait for control ack message...");
-                       try {
-                               Thread.sleep(100);
-                               exitCount++;
-                       } catch (InterruptedException e) {
-                               e.printStackTrace();
-                       }
-               }
                /* save Project */
                System.out.println(" save project and others..."); //$NON-NLS-1$
 
index 4d17bfa..9d7c8f3 100644 (file)
@@ -77,8 +77,6 @@ public class TraceStartStopThread implements Runnable {
                                });
                                ShortCutManager.getInstance().setEnabled(true);
                        } else {
-                               // AnalyzerUtil
-                               // .setRecordState(RecordStateSourceProvider.RECORD_READY);
                                AnalyzerManager.setRunningState(false);
                                final String msg = isStarted.toString();
                                Display.getDefault().syncExec(new Runnable() {
@@ -138,7 +136,7 @@ public class TraceStartStopThread implements Runnable {
                        }
                });
 
-               // DACommunicator.sendStopMessage();
+//              DACommunicator.sendStopMessage();
                DACommunicator.stopTrace();
        }
 }
index cbe6324..4bfc1a3 100644 (file)
@@ -509,7 +509,7 @@ public class OpenTraceDialog extends DAMessageBox {
        private boolean setDetailsInfo(String path) {
                boolean isSuccess = true;
                List<String> pInfo = SqlManager.getInstance().getDetailsInfo(path);
-               if (null == pInfo || pInfo.isEmpty() || pInfo.size() < 9) {
+               if (null == pInfo || pInfo.isEmpty() || pInfo.size() < 8) {
                        return false;
                }
                createTime = pInfo.get(AnalyzerConstants.PROJECT_CREATE_TIME_INDEX);
index 09c440a..e6167ce 100644 (file)
@@ -26,8 +26,6 @@
 
 package org.tizen.dynamicanalyzer.ui.widgets;
 
-import javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction;
-
 import org.eclipse.jface.window.Window.IExceptionHandler;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWTException;
index f0dc5e2..b7c5c3b 100644 (file)
@@ -352,7 +352,7 @@ public abstract class DATableComposite extends Composite {
                        return;
                }
                if (null != comparator) {
-//                     Collections.sort(input, comparator);
+                       Collections.sort(input, comparator);
                }
                int[] sels = new int[selSeqs.size()];
                int iii = 0;
index acef260..2b596b0 100644 (file)
@@ -76,8 +76,8 @@ public class DefaultTableComparator implements Comparator<Object> {
                        List<String> data1 = tableData1.getData();
                        List<String> data2 = tableData2.getData();
 
-                       str1 = data1.get(sourceColumn);
-                       str2 = data2.get(sourceColumn);
+                       str1 = data1.get(column);
+                       str2 = data2.get(column);
                } else {
                        List<String> text1 = item1.getText();
                        List<String> text2 = item2.getText();