JPlag analysis fails on C# submissions
When executing JPlag plagiarism detection on C# / .NET (MAUI) student submissions, the following interpretation error occurred.
There is no further information on which student submission(s) and which file(s) caused the fail and there are multiple hundreds of them.
As an initial attempt, probably a more verbose error logging should be implemented to support debugging.
2024-01-11-04:44:35_226 [main] [INFO] ParallelComparisonStrategy - Start comparing...
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 3:33 mismatched input ';' expecting {'{', '.'}
line 2:0 extraneous input 'global' expecting {<EOF>, '\u00EF\u00BB\u00BF', 'abstract', 'async', 'class', 'delegate', 'enum', 'extern', 'interface', 'internal', 'namespace', 'new', 'override', 'partial', 'private', 'protected', 'public', 'readonly', 'ref', 'sealed', 'static', 'struct', 'unsafe', 'using', 'virtual', 'volatile', '['}
line 3:0 mismatched input 'global' expecting {<EOF>, 'abstract', 'async', 'class', 'delegate', 'enum', 'extern', 'interface', 'internal', 'namespace', 'new', 'override', 'partial', 'private', 'protected', 'public', 'readonly', 'ref', 'sealed', 'static', 'struct', 'unsafe', 'virtual', 'volatile', '['}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 7:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 3:35 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:28 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 66:34 no viable alternative at input 'new(X, Y);'
line 1:0 token recognition error at: ''
line 7:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:28 mismatched input ';' expecting {'{', '.'}
line 1:28 mismatched input ';' expecting {'{', '.'}
line 1:28 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 21:16 mismatched input '=' expecting {'{', ';'}
line 22:12 mismatched input 'set' expecting {'abstract', 'async', 'class', 'delegate', 'enum', 'extern', 'interface', 'internal', 'namespace', 'new', 'override', 'partial', 'private', 'protected', 'public', 'readonly', 'ref', 'sealed', 'static', 'struct', 'unsafe', 'virtual', 'volatile', '}', '['}
line 25:16 mismatched input 'OnPropertyChanged' expecting {'abstract', 'async', 'class', 'delegate', 'enum', 'extern', 'interface', 'internal', 'namespace', 'new', 'override', 'partial', 'private', 'protected', 'public', 'readonly', 'ref', 'sealed', 'static', 'struct', 'unsafe', 'virtual', 'volatile', '}', '['}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 extraneous input 'global' expecting {<EOF>, '\u00EF\u00BB\u00BF', 'abstract', 'async', 'class', 'delegate', 'enum', 'extern', 'interface', 'internal', 'namespace', 'new', 'override', 'partial', 'private', 'protected', 'public', 'readonly', 'ref', 'sealed', 'static', 'struct', 'unsafe', 'using', 'virtual', 'volatile', '['}
line 1:0 token recognition error at: ''
line 1:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:23 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 42:34 no viable alternative at input 'new(X, Y);'
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:26 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 7:21 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 3:21 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 4:21 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 3:21 mismatched input ';' expecting {'{', '.'}
line 1:0 token recognition error at: ''
line 1:0 token recognition error at: ''
line 65:16 mismatched input '=' expecting {'{', ';'}
line 65:64 mismatched input '(' expecting {'add', 'alias', '__arglist', 'ascending', 'async', 'await', 'by', 'descending', 'dynamic', 'equals', 'from', 'get', 'group', 'into', 'join', 'let', 'nameof', 'on', 'orderby', 'partial', 'remove', 'select', 'set', 'unmanaged', 'var', 'when', 'where', 'yield', IDENTIFIER, '[', '.', '*', '<', '?'}
line 65:65 extraneous input 'new' expecting {'add', 'alias', '__arglist', 'ascending', 'async', 'await', 'bool', 'by', 'byte', 'char', 'decimal', 'descending', 'double', 'dynamic', 'equals', 'float', 'from', 'get', 'group', 'int', 'into', 'join', 'let', 'long', 'nameof', 'object', 'on', 'orderby', 'partial', 'remove', 'sbyte', 'select', 'set', 'short', 'string', 'uint', 'ulong', 'unmanaged', 'ushort', 'var', 'void', 'when', 'where', 'yield', IDENTIFIER, '('}
line 65:82 mismatched input '(' expecting ','
line 65:98 extraneous input ')' expecting ','
Exception in thread "main" java.lang.ClassCastException: class de.jplag.csharp.grammar.CSharpParser$Type_Context cannot be cast to class de.jplag.csharp.grammar.CSharpParser$Local_variable_declarationContext (de.jplag.csharp.grammar.CSharpParser$Type_Context and de.jplag.csharp.grammar.CSharpParser$Local_variable_declarationContext are in unnamed module of loader 'app')
at de.jplag.csharp.grammar.CSharpParserBase.isLocalVariableDeclaration(CSharpParserBase.java:19)
at de.jplag.csharp.grammar.CSharpParser.local_variable_declaration_sempred(CSharpParser.java:19486)
at de.jplag.csharp.grammar.CSharpParser.sempred(CSharpParser.java:19473)
at org.antlr.v4.runtime.atn.SemanticContext$Predicate.eval(SemanticContext.java:101)
at org.antlr.v4.runtime.atn.ParserATNSimulator.evalSemanticContext(ParserATNSimulator.java:1416)
at org.antlr.v4.runtime.atn.ParserATNSimulator.splitAccordingToSemanticValidity(ParserATNSimulator.java:1332)
at org.antlr.v4.runtime.atn.ParserATNSimulator.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(ParserATNSimulator.java:1287)
at org.antlr.v4.runtime.atn.ParserATNSimulator.execATN(ParserATNSimulator.java:447)
at org.antlr.v4.runtime.atn.ParserATNSimulator.adaptivePredict(ParserATNSimulator.java:371)
at de.jplag.csharp.grammar.CSharpParser.type_(CSharpParser.java:590)
at de.jplag.csharp.grammar.CSharpParser.typed_member_declaration(CSharpParser.java:12356)
at de.jplag.csharp.grammar.CSharpParser.common_member_declaration(CSharpParser.java:12179)
at de.jplag.csharp.grammar.CSharpParser.class_member_declaration(CSharpParser.java:11952)
at de.jplag.csharp.grammar.CSharpParser.class_member_declarations(CSharpParser.java:11815)
at de.jplag.csharp.grammar.CSharpParser.class_body(CSharpParser.java:11760)
at de.jplag.csharp.grammar.CSharpParser.class_definition(CSharpParser.java:17960)
at de.jplag.csharp.grammar.CSharpParser.type_declaration(CSharpParser.java:10939)
at de.jplag.csharp.grammar.CSharpParser.namespace_member_declaration(CSharpParser.java:10851)
at de.jplag.csharp.grammar.CSharpParser.namespace_member_declarations(CSharpParser.java:10769)
at de.jplag.csharp.grammar.CSharpParser.namespace_body(CSharpParser.java:10416)
at de.jplag.csharp.grammar.CSharpParser.namespace_declaration(CSharpParser.java:10266)
at de.jplag.csharp.grammar.CSharpParser.namespace_member_declaration(CSharpParser.java:10822)
at de.jplag.csharp.grammar.CSharpParser.namespace_member_declarations(CSharpParser.java:10769)
at de.jplag.csharp.grammar.CSharpParser.compilation_unit(CSharpParser.java:418)
at de.jplag.csharp.CSharpParserAdapter.parseFile(CSharpParserAdapter.java:63)
at de.jplag.csharp.CSharpParserAdapter.parse(CSharpParserAdapter.java:47)
at de.jplag.csharp.Language.parse(Language.java:51)
at de.jplag.Submission.parse(Submission.java:249)
at de.jplag.SubmissionSet.parseSubmissions(SubmissionSet.java:147)
at de.jplag.SubmissionSet.parseAllSubmissions(SubmissionSet.java:103)
at de.jplag.SubmissionSet.<init>(SubmissionSet.java:45)
at de.jplag.SubmissionSetBuilder.buildSubmissionSet(SubmissionSetBuilder.java:78)
at de.jplag.JPlag.run(JPlag.java:55)
at de.jplag.cli.CLI.main(CLI.java:91)
Error: Non-zero result code
``