added temporary error logging for duration of testing

This commit is contained in:
Manindra Moharana
2013-07-27 03:22:31 +05:30
parent 7de693ab95
commit 46eb2d290e
3 changed files with 63 additions and 5 deletions

View File

@@ -257,9 +257,9 @@ public class ASTGenerator {
return;
jtree.setModel(new DefaultTreeModel(codeTree));
((DefaultTreeModel) jtree.getModel()).reload();
if (!frame2.isVisible()) {
frame2.setVisible(true);
}
// if (!frame2.isVisible()) {
// frame2.setVisible(true);
// }
// if (!frameAutoComp.isVisible()) {
//
// frameAutoComp.setVisible(true);

View File

@@ -27,8 +27,11 @@ import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
@@ -44,6 +47,9 @@ import javax.swing.JScrollPane;
import javax.swing.border.EtchedBorder;
import javax.swing.table.TableModel;
import javax.swing.text.Document;
import org.eclipse.jdt.core.compiler.IProblem;
import processing.app.*;
import processing.app.syntax.JEditTextArea;
import processing.app.syntax.PdeTextAreaDefaults;
@@ -286,9 +292,53 @@ public class DebugEditor extends JavaEditor implements ActionListener {
dbg.stopDebug();
// remove var.inspector
vi.dispose();
// original dispose
super.dispose();
}
// Added temporarily to dump error log. TODO: Remove this later
public void internalCloseRunner(){
writeErrorsToFile();
super.internalCloseRunner();
}
private void writeErrorsToFile(){
if (errorCheckerService.tempErrorLog.size() == 0)
return;
try {
System.out.println("Writing errors");
StringBuffer sbuff = new StringBuffer();
sbuff.append("Sketch: " + getSketch().getFolder() + ", "
+ new java.sql.Timestamp(new java.util.Date().getTime())+"\n\n");
sbuff.append("ERROR ID, ERROR ARGS, ERROR MSG\n");
for (String errMsg : errorCheckerService.tempErrorLog.keySet()) {
IProblem ip = errorCheckerService.tempErrorLog.get(errMsg);
if(ip != null){
sbuff.append(errorCheckerService.errorMsgSimplifier.getIDName(ip.getID()));
sbuff.append(',');
sbuff.append("{");
for (int i = 0; i < ip.getArguments().length; i++) {
sbuff.append(ip.getArguments()[i]);
if(i < ip.getArguments().length - 1)
sbuff.append('|');
}
sbuff.append("}");
sbuff.append(',');
sbuff.append(ip.getMessage().replace(',', ' '));
sbuff.append("\n");
}
}
System.out.println(sbuff);
File opFile = new File(getSketch().getFolder(), "ErrorLogs"
+ File.separator + "ErrorLog_" + System.currentTimeMillis() + ".csv");
PApplet.saveStream(opFile, new ByteArrayInputStream(sbuff.toString()
.getBytes(Charset.defaultCharset())));
} catch (Exception e) {
System.err.println("Failed to save log file for sketch " + getSketch().getName());
e.printStackTrace();
}
}
/**
* Overrides sketch menu creation to change keyboard shortcuts from "Run".

View File

@@ -10,6 +10,7 @@ import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
@@ -177,7 +178,7 @@ public class ErrorCheckerService implements Runnable{
+ "(void|int|float|double|String|char|byte)"
+ "(\\s*\\[\\s*\\])?\\s+[a-zA-Z0-9]+\\s*\\(", Pattern.MULTILINE);
private ErrorMessageSimplifier errorMsgSimplifier;
protected ErrorMessageSimplifier errorMsgSimplifier;
public ErrorCheckerService(DebugEditor debugEditor) {
this.editor = debugEditor;
@@ -190,6 +191,7 @@ public class ErrorCheckerService implements Runnable{
astGenerator = new ASTGenerator(this);
syntaxErrors = new AtomicBoolean(true);
errorMsgSimplifier = new ErrorMessageSimplifier();
tempErrorLog = new TreeMap<String, IProblem>();
}
/**
@@ -346,6 +348,8 @@ public class ErrorCheckerService implements Runnable{
public boolean hasSyntaxErrors(){
return syntaxErrors.get();
}
protected TreeMap<String, IProblem> tempErrorLog;
private void syntaxCheck() {
syntaxErrors.set(true);
@@ -705,8 +709,12 @@ public class ErrorCheckerService implements Runnable{
errorData[i][1] = editor.getSketch()
.getCode(problemsList.get(i).tabIndex).getPrettyName();
errorData[i][2] = problemsList.get(i).lineNumber + "";
//TODO: This is temporary
if(tempErrorLog.size() < 200)
tempErrorLog.put(problemsList.get(i).message,problemsList.get(i).getIProblem());
}
if (errorWindow != null) {
DefaultTableModel tm = new DefaultTableModel(errorData,
XQErrorTable.columnNames);