@@ -76,29 +76,33 @@ public class RubyScriptNodeModel extends NodeModel {
7676
7777 private boolean snippetMode ;
7878
79- private class ScriptError {
80- public int errorLine ;
81- public int errorColumn ;
82- public String errorType ;
83- public String errorText ;
84- public String errorTrace ;
79+ public class ScriptError {
80+ public int lineNum ;
81+ public int columnNum ;
82+ public String type ;
83+ public String text ;
84+ public String trace ;
8585 public String msg ;
8686
8787 public ScriptError () {
8888 clear ();
8989 }
9090
9191 public void clear () {
92- errorLine = -1 ;
93- errorColumn = -1 ;
94- errorType = "--UnKnown--" ;
95- errorText = "--UnKnown--" ;
96- errorTrace = "" ;
92+ lineNum = -1 ;
93+ columnNum = -1 ;
94+ type = "--UnKnown--" ;
95+ text = "--UnKnown--" ;
96+ trace = "" ;
9797 msg = "" ;
9898 }
9999 }
100100
101101 private ScriptError m_script_error ;
102+
103+ public ScriptError getErrorData () {
104+ return m_script_error ;
105+ }
102106
103107 protected RubyScriptNodeModel (int inNumInputs , int inNumOutputs , boolean snippetMode ) {
104108 super (inNumInputs , inNumOutputs );
@@ -319,7 +323,7 @@ protected final BufferedDataTable[] execute(final BufferedDataTable[] inData,
319323 } else {
320324 findErrorSource (e , script_fn );
321325 logger .error ("Script error in line: "
322- + m_script_error .errorLine );
326+ + m_script_error .lineNum );
323327 }
324328 throw new CanceledExecutionException (e .getMessage ());
325329 }
@@ -338,7 +342,6 @@ protected final BufferedDataTable[] execute(final BufferedDataTable[] inData,
338342 */
339343 protected final DataTableSpec [] configure (final DataTableSpec [] inSpecs )
340344 throws InvalidSettingsException {
341- m_script_error .clear ();
342345
343346 appendCols &= numInputs > 0 ;
344347 // append the property columns to the data table spec
@@ -445,6 +448,8 @@ protected final void loadValidatedSettingsFrom(final NodeSettingsRO settings)
445448 appendCols = settings .getBoolean (APPEND_COLS , true );
446449 columnNames = settings .getStringArray (COLUMN_NAMES );
447450 columnTypes = settings .getStringArray (COLUMN_TYPES );
451+
452+ m_script_error .clear ();
448453 }
449454
450455 /**
@@ -484,12 +489,12 @@ private int findErrorSource(Throwable thr, String filename) {
484489 Matcher mLine = pLineS .matcher (err );
485490 if (mLine .find ()) {
486491 logger .debug ("SyntaxError error line: " + mLine .group (1 ));
487- m_script_error .errorText = mLine .group (2 ) == null ? m_script_error .errorText
492+ m_script_error .text = mLine .group (2 ) == null ? m_script_error .text
488493 : mLine .group (2 );
489- logger .debug ("SyntaxError: " + m_script_error .errorText );
490- m_script_error .errorLine = Integer .parseInt (mLine .group (1 ));
491- m_script_error .errorColumn = -1 ;
492- m_script_error .errorType = "SyntaxError" ;
494+ logger .debug ("SyntaxError: " + m_script_error .text );
495+ m_script_error .lineNum = Integer .parseInt (mLine .group (1 ));
496+ m_script_error .columnNum = -1 ;
497+ m_script_error .type = "SyntaxError" ;
493498 }
494499 } else {
495500 // if (err.startsWith("(NameError)")) {
@@ -500,48 +505,48 @@ private int findErrorSource(Throwable thr, String filename) {
500505 Pattern type = Pattern .compile ("(?<=\\ ()(\\ w*)" );
501506 Matcher mLine = type .matcher (err );
502507 if (mLine .find ()) {
503- m_script_error .errorType = mLine .group (1 );
508+ m_script_error .type = mLine .group (1 );
504509 }
505510 Throwable cause = thr .getCause ();
506511 // cause.printStackTrace();
507512 for (StackTraceElement line : cause .getStackTrace ()) {
508513 if (line .getFileName ().equals (filename )) {
509- m_script_error .errorText = cause .getMessage ();
510- m_script_error .errorColumn = -1 ;
511- m_script_error .errorLine = line .getLineNumber ();
512- m_script_error .errorText = thr .getMessage ();
514+ m_script_error .text = cause .getMessage ();
515+ m_script_error .columnNum = -1 ;
516+ m_script_error .lineNum = line .getLineNumber ();
517+ m_script_error .text = thr .getMessage ();
513518
514519 Pattern knimeType = Pattern
515520 .compile ("(?<=org.knime.)(.*)(?=:)" );
516521 Matcher mKnimeType = knimeType
517- .matcher (m_script_error .errorText );
522+ .matcher (m_script_error .text );
518523
519524 if (mKnimeType .find ()) {
520- m_script_error .errorType = mKnimeType .group (1 );
525+ m_script_error .type = mKnimeType .group (1 );
521526 }
522527
523- m_script_error .errorType = "RuntimeError" ;
528+ m_script_error .type = "RuntimeError" ;
524529
525530 break ;
526531 }
527532 }
528533 }
529534
530535 m_script_error .msg = "script" ;
531- if (m_script_error .errorLine != -1 ) {
536+ if (m_script_error .lineNum != -1 ) {
532537 m_script_error .msg += " stopped with error in line "
533- + m_script_error .errorLine ;
534- if (m_script_error .errorColumn != -1 ) {
538+ + m_script_error .lineNum ;
539+ if (m_script_error .columnNum != -1 ) {
535540 m_script_error .msg += " at column "
536- + m_script_error .errorColumn ;
541+ + m_script_error .columnNum ;
537542 }
538543 } else {
539544 m_script_error .msg += "] stopped with error at line --unknown--" ;
540545 }
541546
542- if (m_script_error .errorType == "RuntimeError" ) {
543- logger .error (m_script_error .msg + "\n " + m_script_error .errorType
544- + " ( " + m_script_error .errorText + " )" );
547+ if (m_script_error .type == "RuntimeError" ) {
548+ logger .error (m_script_error .msg + "\n " + m_script_error .type
549+ + " ( " + m_script_error .text + " )" );
545550
546551 Throwable cause = thr .getCause ();
547552 // cause.printStackTrace();
@@ -563,19 +568,19 @@ private int findErrorSource(Throwable thr, String filename) {
563568 builder .append ('\n' );
564569 }
565570
566- m_script_error .errorTrace = builder .toString ();
567- if (m_script_error .errorTrace .length () > 0 ) {
571+ m_script_error .trace = builder .toString ();
572+ if (m_script_error .trace .length () > 0 ) {
568573 logger .error ("\n --- Traceback --- error source first\n "
569574 + "line: class ( method ) file \n "
570- + m_script_error .errorTrace
575+ + m_script_error .trace
571576 + "--- Traceback --- end --------------" );
572577 }
573578
574- } else if (m_script_error .errorType != "SyntaxError" ) {
579+ } else if (m_script_error .type != "SyntaxError" ) {
575580 logger .error (m_script_error .msg );
576581 logger .error ("Could not evaluate error source nor reason. Analyze StackTrace!" );
577582 logger .error (err );
578583 }
579- return m_script_error .errorLine ;
584+ return m_script_error .lineNum ;
580585 }
581586}
0 commit comments