Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Frequently Asked Questions (FAQ)

Following is a list of common errors encountered by developers which lead to failing tests, with their common solutions:

Failing tests

Failing Checkstyle tests

JabRef follows a pre-defined style of code for uniformity and maintainability that must be adhered to during development. To set up warnings and auto-fixes conforming to these style rules in your IDE, follow Step 3 of the process to set up a local workspace in the documentation. Ideally, follow all the set up rules in the documentation end-to-end to avoid typical set-up errors.
Note: The steps provided in the documentation are for IntelliJ, which is the preferred IDE for Java development. The checkstyle.xml is also available for VSCode, in the same directory as mentioned in the steps.

Failing OpenRewrite tests

Execute the Gradle task rewriteRun from the rewrite group of the Gradle Tool window in IntelliJ to apply the automated refactoring and pass the test:
Executing Gradle task rewriteRun

Background: OpenRewrite is an automated refactoring ecosystem for source code.

org.jabref.logic.l10n.LocalizationConsistencyTest findMissingLocalizationKeys FAILED

You have probably used Strings that are visible on the UI (to the user) but not wrapped them using Localization.lang(...) and added them to the localization properties file.

Read more about the background and format of localization in JabRef here.

org.jabref.logic.l10n.LocalizationConsistencyTest findObsoleteLocalizationKeys FAILED

Navigate to the unused key-value pairs in the file and remove them. You can always click on the details of the failing test to pinpoint which keys are unused.

Background: There are localization keys in the localization properties file that are not used in the code, probably due to the removal of existing code. Read more about the background and format of localization in JabRef here.

org.jabref.logic.citationstyle.CitationStyle discoverCitationStyles ERROR: Could not find any citation style. Tried with /ieee.csl.

Check the directory src/main/resources/csl-styles. If it is missing or empty, run git submodule update. Now, check inside if ieee.csl exists. If it does not, run git reset --hard inside that directory.

java.lang.IllegalArgumentException: Unable to load locale en-US ERROR: Could not generate BibEntry citation. The CSL engine could not create a preview for your item.

Check the directory src/main/resources/csl-locales. If it is missing or empty, run git submodule update. If still not fixed, run git reset --hard inside that directory.

org.jabref.architecture.MainArchitectureTest restrictStandardStreams FAILED

Check if you’ve used System.out.println(...) (the standard output stream) to log anything into the console. This is an architectural violation, as you should use the Logger instead for logging. More details on how to log can be found here.

org.jabref.architecture.MainArchitectureTest doNotUseLogicInModel FAILED

One common case when this test fails is when you put any class purely containing business logic inside the model package (i.e., inside the directory org/jabref/model/). To fix this, shift the class to a sub-package within the logic package (i.e., the directoryorg/jabref/logic/). An efficient way to do this is to use IntelliJ’s built-in refactoring capabilities - right-click on the file, go to “Refactor” and use “Move Class”. The import statement for all the classes using this class will be automatically adjusted according to the new location.
Moving a file using refactor

More information on the architecture can be found at ../getting-into-the-code/high-level-documentation.md.

Gradle outpus

ANTLR Tool version 4.12.0 used for code generation does not match the current runtime version 4.13.1

Execute the Gradle task clean from the build group of the Gradle Tool Window in IntelliJ:
Executing Gradle task clean

BstVMVisitor.java:157: error: package BstParser does not exist

Execute gradle task clean from the build group of the Gradle Tool Window in IntelliJ.