Skip to content

JabRef Citation Style Generation Error: Issues in BST Function Processing #12799

Open
@marwanemad07

Description

@marwanemad07

JabRef version

Latest development branch build (please note build date below)

Operating system

Windows

Details on version and operating system

Windows 11

Checked with the latest development build (copy version output from About dialog)

  • I made a backup of my libraries before testing the latest development version.
  • I have tested the latest development version and the problem persists

Steps to reproduce the behaviour

If you haven't encountered these exceptions, download the cell.bst style from CTAN and add it via Preferences -> Entry Preview -> Add the downloaded BST file.

  1. Open a LibreOffice Writer
  2. In JabRef, click view in the toolbar and choose OpenOffice/LibreOffice
  3. In the side panel Connect to LibreOffice
  4. Create a new library
  5. Using web search, search for "SW"
  6. Import all the entries

Appendix

...

Exception 1
ERROR: Error while generating citation style: org.jabref.logic.bst.BstVMException: Expecting two integers and a string for substring$ (line 714)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstSubstring(BstFunctions.java:706)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.callIdentifierOrTree(BstFunctions.java:526)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstIf(BstFunctions.java:518)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.callIdentifierOrTree(BstFunctions.java:526)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstIf(BstFunctions.java:520)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.lambda$visitFunctionCommand$0(BstVMVisitor.java:64)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstCallTypeFunction.execute(BstFunctions.java:334)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitIterateCommand(BstVMVisitor.java:135)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitIterateCommand(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$IterateCommandContext.accept(BstParser.java:305)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitBstFile(BstBaseVisitor.java:21)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFileContext.accept(BstParser.java:117)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVM.render(BstVM.java:83)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVM.render(BstVM.java:91)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstPreviewLayout.generatePreview(BstPreviewLayout.java:61)
	at org.jabref@100.0.0/org.jabref.gui.preview.PreviewViewer.lambda$update$3(PreviewViewer.java:204)
	at org.jabref@100.0.0/org.jabref.logic.util.BackgroundTask$1.call(BackgroundTask.java:73)
	at org.jabref@100.0.0/org.jabref.gui.util.UiTaskExecutor$1.call(UiTaskExecutor.java:191)
	at javafx.graphics@23.0.2/javafx.concurrent.Task$TaskCallable.call(Task.java:1401)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1575)
Exception 2
ERROR: Error while generating citation style: org.jabref.logic.bst.BstVMException: Expecting two integers and a string for substring$ (line 714)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstSubstring(BstFunctions.java:706)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.callIdentifierOrTree(BstFunctions.java:526)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstIf(BstFunctions.java:518)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.callIdentifierOrTree(BstFunctions.java:526)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstIf(BstFunctions.java:520)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitStack(BstBaseVisitor.java:126)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackContext.accept(BstParser.java:744)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.lambda$visitFunctionCommand$0(BstVMVisitor.java:64)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstCallTypeFunction.execute(BstFunctions.java:334)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitIterateCommand(BstVMVisitor.java:135)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitIterateCommand(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$IterateCommandContext.accept(BstParser.java:305)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstBaseVisitor.visitBstFile(BstBaseVisitor.java:21)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFileContext.accept(BstParser.java:117)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVM.render(BstVM.java:83)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVM.render(BstVM.java:91)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstPreviewLayout.generatePreview(BstPreviewLayout.java:61)
	at org.jabref@100.0.0/org.jabref.gui.preview.PreviewViewer.lambda$update$3(PreviewViewer.java:204)
	at org.jabref@100.0.0/org.jabref.logic.util.BackgroundTask$1.call(BackgroundTask.java:73)
	at org.jabref@100.0.0/org.jabref.gui.util.UiTaskExecutor$1.call(UiTaskExecutor.java:191)
	at javafx.graphics@23.0.2/javafx.concurrent.Task$TaskCallable.call(Task.java:1401)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1575)
Exception 3
ERROR: Error while generating citation style: java.lang.IllegalArgumentException: Illegal group reference: group index is missing
	at java.base/java.util.regex.Matcher.appendExpandedReplacement(Matcher.java:1073)
	at java.base/java.util.regex.Matcher.appendReplacement(Matcher.java:1041)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions.bstAddPeriod(BstFunctions.java:295)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstFunctions$BstFunction.execute(BstFunctions.java:45)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.resolveIdentifier(BstVMVisitor.java:238)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:250)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitBstFunction(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$BstFunctionContext.accept(BstParser.java:645)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:272)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstVMVisitor.visitStackitem(BstVMVisitor.java:23)
	at org.jabref@100.0.0/org.jabref.logic.bst.BstParser$StackitemContext.accept(BstParser.java:804)
	at org.antlr.antlr4.runtime@4.13.2/org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visitChildren(AbstractParseTreeVisitor.java:46)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Normal priority

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions