mirror of
https://github.com/processing/processing4.git
synced 2026-02-07 23:59:21 +01:00
added temporary error logging for duration of testing
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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".
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user