Skip to content

Prevent storing absolute paths when memory stick mode is enabled#15026

Closed
Nourhan46 wants to merge 6 commits intoJabRef:mainfrom
Nourhan46:fix-for-issue-3590
Closed

Prevent storing absolute paths when memory stick mode is enabled#15026
Nourhan46 wants to merge 6 commits intoJabRef:mainfrom
Nourhan46:fix-for-issue-3590

Conversation

@Nourhan46
Copy link
Copy Markdown

@Nourhan46 Nourhan46 commented Feb 4, 2026

Closes #3590

i check if memory stick mode is true then save relative path , if not save absolute path and then create a Junit class to check if stick mode is true what happened and it passed

this is draft pull request i would appreciate any feedback on logic , implementation and my description in pull request

Steps to test

1- go to folder test file JabRefCliPreferencesTest
2- run the test function

Checklist

  • I own the copyright of the code submitted and I license it under the MIT license
  • I manually tested my changes in running JabRef (always required)
  • I added JUnit tests for changes (if applicable)
  • [/] I added screenshots in the PR description (if change is visible to the user)
  • [/] I added a screenshot in the PR description showing a library with a single entry with me as author and as title the issue number
  • I described the change in CHANGELOG.md in a way that can be understood by the average user (if change is visible to the user)
  • [/] I checked the user documentation for up to dateness and submitted a pull request to our user documentation repository

@github-actions github-actions Bot added good first issue An issue intended for project-newcomers. Varies in difficulty. status: changes-required Pull requests that are not yet complete labels Feb 4, 2026
@Nourhan46 Nourhan46 changed the title my first pull-request to solve issue 3590 Prevent storing absolute paths when memory stick mode is enabled Feb 4, 2026
@github-actions github-actions Bot removed the status: changes-required Pull requests that are not yet complete label Feb 4, 2026
// String delimiter
public static final Character STRINGLIST_DELIMITER = ';';

// RECENT_DATABASES
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why moved? AI slop?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it because when I put it in last of variable the check style give me error in order declaration to solve it I moved it with public static final variables then I put comment to declare the change according the remain code

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It hopefully did not. Try again. - REvert to old code - comment is not requierd.

Copy link
Copy Markdown
Author

@Nourhan46 Nourhan46 Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay i removed unnecessary comment , i am sorry i just try to make my code similar and use the rules used in code of project , what should i do next can give me a hint

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Educate yourself what "revert to old code" could mean.

// String delimiter
public static final Character STRINGLIST_DELIMITER = ';';

public static final String RECENT_DATABASES = "recentDatabases";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert too hard for contributor.

Not sure if AI AI AI AI AI AI AI AI

Copy link
Copy Markdown
Author

@Nourhan46 Nourhan46 Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am sorry i misunderstood , now i make all the changes required , please give me a feed back ,thank you for your effort

@github-actions github-actions Bot added status: changes-required Pull requests that are not yet complete and removed status: changes-required Pull requests that are not yet complete labels Feb 4, 2026
@Nourhan46 Nourhan46 requested a review from koppor February 4, 2026 22:22
@github-actions github-actions Bot added the status: changes-required Pull requests that are not yet complete label Feb 4, 2026
Copy link
Copy Markdown
Member

@koppor koppor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add CHANGELOG.md entry

.map(Path::toAbsolutePath)
.map(Path::toString)
.toList());
Path basePath = Path.of(".").toAbsolutePath();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable only used in if branch -> move there

Path absoultePath = relativePath.toAbsolutePath();
preferences.getLastFilesOpenedPreferences().getFileHistory().add(absoultePath);
List<String> storedList = preferences.getStringList("recentDatabases");
assertEquals(relativePath, Path.of(storedList.get(0)));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getFirst()

import static org.junit.jupiter.api.Assertions.assertEquals;

class JabRefCliPreferencesTest {
@Test
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to "mirror" this test - and for non-memory stick mode?

Comment on lines +14 to +15
var preferences = new JabRefCliPreferences();
preferences.clear();
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In JabRef tests, we DO NOT alter existing preferences. But I think, this is not possible in this case?

Then, we need to go for @Disabled, because we do not want to destroy preferences of developers (which use jabref in der day job)

@github-actions
Copy link
Copy Markdown
Contributor

The requested changes were not addressed for 10 days. Please follow-up in the next 10 days or your PR will be automatically closed. You can check the contributing guidelines for hints on the pull request process.

@github-actions github-actions Bot added the status: stale Issues marked by a bot as "stale". All issues need to be investigated manually. label Feb 15, 2026
@github-actions github-actions Bot removed the status: stale Issues marked by a bot as "stale". All issues need to be investigated manually. label Feb 17, 2026
@testlens-app
Copy link
Copy Markdown

testlens-app Bot commented Feb 17, 2026

🚨 TestLens detected 58 failed tests 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Test Summary

Check Project/Task Test Runs
Source Code Tests / Unit tests (Windows) - file-based :jablib:test AuthorTest > addDotIfAbbreviation(String) > [3] "# Lower-case letters\nasdf\na\n# Numbers\n1\n1 23\n"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromCitationWithMultipleEntries(String, CitationStyle)
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromCitationWithSingleEntry(String, CitationStyle)
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromRawBibliography(String, CitationStyle)
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > bibliographicPropertyMatches(boolean, String) > [3] true, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > hangingIndentPropertyMatches(boolean, String) > [3] false, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > internalCitationStylePresent(String) > [3] "nlm-citation-sequence.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > numericPropertyMatches(boolean, String) > [3] true, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > titleMatches(String, String) > [2] "APA Style 7th edition", "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CSLStyleUtilsTest > titleMatches(String, String) > [3] "NLM/Vancouver: Citing Medicine 2nd edition (citation-sequence)", "nlm-citation-sequence.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > aPABibliography()
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [10] "Foo, B. (n.d.). number. Bib(La)TeX Journal, (3number).\n", BIBTEX, @Article{, author = {Foo, Bar}, journal = {Bib(La)TeX Journal}, number = {3number}, title = {number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [11] "Foo, B. (n.d.). issue + pages. Bib(La)TeX Journal, (9), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9}, journal = {Bib(La)TeX Journal}, pages = {45--67}, title = {issue + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [12] "Foo, B. (n.d.). issue + number. Bib(La)TeX Journal, (3number).\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, number = {3number}, title = {issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [13] "Foo, B. (n.d.). issue + number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [14] "Foo, B. (n.d.). number + pages. Bib(La)TeX Journal, (3number), Article 777.\n", BIBTEX, @Article{, author = {Foo, Bar}, comment = {number + article-number WITH the word article instead of pagerange}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {Article 777}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [15] "Foo, B. (n.d.). issue. Bib(La)TeX Journal, (9issue).\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, title = {issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [16] "Foo, B. (n.d.). number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [17] "Foo, B. (n.d.). number + pages. BibTeX Journal, (3number), 777e23.\n", BIBTEX, @Article{, author = {Foo, Bar}, comment = {number + article-number WITHOUT the word article instead of pagerange}, journal = {BibTeX Journal}, number = {3number}, pages = {777e23}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [18] "Foo, B. (n.d.). eid + issue + number + pages. BibTeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journal = {BibTeX Journal}, number = {3number}, pages = {45--67}, title = {eid + issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [19] "Foo, B. (n.d.). eid + issue. BibTeX Journal, (9issue), Article 6eid.\n", BIBTEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journal = {BibTeX Journal}, title = {eid + issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [23] "Foo, B. (n.d.). eid + issue. Bib(La)TeX Journal, (9issue), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, title = {eid + issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [24] "Foo, B. (n.d.). eid + issue + pages. Bib(La)TeX Journal, (9issue), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, pages = {45--67}, title = {eid + issue + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [25] "Foo, B. (n.d.). eid + issue + number. Bib(La)TeX Journal, (3number), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {eid + issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [26] "Foo, B. (n.d.). eid + issue + number + pages. Bib(La)TeX Journal, (3number), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {eid + issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [31] "Foo, B. (n.d.). eid + number. Bib(La)TeX Journal, (3number), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {eid + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [32] "Foo, B. (n.d.). eid + number + pages. Bib(La)TeX Journal, (3number), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {eid + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [33] "Foo, B. (n.d.). issue + number. Bib(La)TeX Journal, (3number).\n", BIBLATEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests (Windows) - file-based :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [34] "Foo, B. (n.d.). issue + number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBLATEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test AuthorTest > addDotIfAbbreviation(String) > [3] "# Lower-case letters\nasdf\na\n# Numbers\n1\n1 23\n"
Source Code Tests / Unit tests – jablib :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromCitationWithMultipleEntries(String, CitationStyle)
Source Code Tests / Unit tests – jablib :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromCitationWithSingleEntry(String, CitationStyle)
Source Code Tests / Unit tests – jablib :jablib:test CSLFormatUtilsTest > ooHTMLTransformFromRawBibliography(String, CitationStyle)
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > bibliographicPropertyMatches(boolean, String) > [3] true, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > hangingIndentPropertyMatches(boolean, String) > [3] false, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > internalCitationStylePresent(String) > [3] "nlm-citation-sequence.csl"
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > numericPropertyMatches(boolean, String) > [3] true, "nlm-citation-sequence.csl"
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > titleMatches(String, String) > [2] "APA Style 7th edition", "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CSLStyleUtilsTest > titleMatches(String, String) > [3] "NLM/Vancouver: Citing Medicine 2nd edition (citation-sequence)", "nlm-citation-sequence.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > aPABibliography()
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [10] "Foo, B. (n.d.). number. Bib(La)TeX Journal, (3number).\n", BIBTEX, @Article{, author = {Foo, Bar}, journal = {Bib(La)TeX Journal}, number = {3number}, title = {number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [11] "Foo, B. (n.d.). issue + pages. Bib(La)TeX Journal, (9), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9}, journal = {Bib(La)TeX Journal}, pages = {45--67}, title = {issue + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [12] "Foo, B. (n.d.). issue + number. Bib(La)TeX Journal, (3number).\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, number = {3number}, title = {issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [13] "Foo, B. (n.d.). issue + number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [14] "Foo, B. (n.d.). number + pages. Bib(La)TeX Journal, (3number), Article 777.\n", BIBTEX, @Article{, author = {Foo, Bar}, comment = {number + article-number WITH the word article instead of pagerange}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {Article 777}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [15] "Foo, B. (n.d.). issue. Bib(La)TeX Journal, (9issue).\n", BIBTEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journal = {Bib(La)TeX Journal}, title = {issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [16] "Foo, B. (n.d.). number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, journal = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [17] "Foo, B. (n.d.). number + pages. BibTeX Journal, (3number), 777e23.\n", BIBTEX, @Article{, author = {Foo, Bar}, comment = {number + article-number WITHOUT the word article instead of pagerange}, journal = {BibTeX Journal}, number = {3number}, pages = {777e23}, title = {number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [18] "Foo, B. (n.d.). eid + issue + number + pages. BibTeX Journal, (3number), 45–67.\n", BIBTEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journal = {BibTeX Journal}, number = {3number}, pages = {45--67}, title = {eid + issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [19] "Foo, B. (n.d.). eid + issue. BibTeX Journal, (9issue), Article 6eid.\n", BIBTEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journal = {BibTeX Journal}, title = {eid + issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [23] "Foo, B. (n.d.). eid + issue. Bib(La)TeX Journal, (9issue), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, title = {eid + issue}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [24] "Foo, B. (n.d.). eid + issue + pages. Bib(La)TeX Journal, (9issue), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, pages = {45--67}, title = {eid + issue + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [25] "Foo, B. (n.d.). eid + issue + number. Bib(La)TeX Journal, (3number), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {eid + issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [26] "Foo, B. (n.d.). eid + issue + number + pages. Bib(La)TeX Journal, (3number), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {eid + issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [31] "Foo, B. (n.d.). eid + number. Bib(La)TeX Journal, (3number), Article Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {Article 6eid}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {eid + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [32] "Foo, B. (n.d.). eid + number + pages. Bib(La)TeX Journal, (3number), Article 6eid.\n", BIBLATEX, @Article{, author = {Foo, Bar}, eid = {6eid}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {eid + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [33] "Foo, B. (n.d.). issue + number. Bib(La)TeX Journal, (3number).\n", BIBLATEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, title = {issue + number}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"
Source Code Tests / Unit tests – jablib :jablib:test CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String) > [34] "Foo, B. (n.d.). issue + number + pages. Bib(La)TeX Journal, (3number), 45–67.\n", BIBLATEX, @Article{, author = {Foo, Bar}, issue = {9issue}, journaltitle = {Bib(La)TeX Journal}, number = {3number}, pages = {45--67}, title = {issue + number + pages}, _jabref_shared = {sharedId: -1, version: 1}}, "apa.csl"

🏷️ Commit: 9c3c2a9
▶️ Tests: 21186 executed
⚪️ Checks: 49/49 completed

Test Failures (first 5 of 58)

AuthorTest > addDotIfAbbreviation(String) > [3] "# Lower-case letters\nasdf\na\n# Numbers\n1\n1 23\n" (:jablib:test in Source Code Tests / Unit tests (Windows) - file-based)
org.opentest4j.AssertionFailedError: expected: <# Lower-case letters
asdf
a
# Numbers
1
1 23
> but was: <# Lower-case letters
asdf
a
# Numbers
1
1 23>
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
	at org.junit.jupiter.api@6.0.3/org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1188)
	at org.jabref.jablib/org.jabref.model.entry.AuthorTest.addDotIfAbbreviation(AuthorTest.java:76)
CSLFormatUtilsTest > ooHTMLTransformFromCitationWithMultipleEntries(String, CitationStyle) (:jablib:test in Source Code Tests / Unit tests (Windows) - file-based)
java.util.NoSuchElementException: No value present
	at java.base/java.util.Optional.get(Optional.java:143)
	at org.jabref.jablib/org.jabref.logic.openoffice.oocsltext.CSLFormatUtilsTest.ooHTMLTransformFromCitationWithMultipleEntries(CSLFormatUtilsTest.java:386)
CSLFormatUtilsTest > ooHTMLTransformFromCitationWithSingleEntry(String, CitationStyle) (:jablib:test in Source Code Tests / Unit tests (Windows) - file-based)
java.util.NoSuchElementException: No value present
	at java.base/java.util.Optional.get(Optional.java:143)
	at org.jabref.jablib/org.jabref.logic.openoffice.oocsltext.CSLFormatUtilsTest.ooHTMLTransformFromCitationWithSingleEntry(CSLFormatUtilsTest.java:264)
CSLFormatUtilsTest > ooHTMLTransformFromRawBibliography(String, CitationStyle) (:jablib:test in Source Code Tests / Unit tests (Windows) - file-based)
java.util.NoSuchElementException: No value present
	at java.base/java.util.Optional.get(Optional.java:143)
	at org.jabref.jablib/org.jabref.logic.openoffice.oocsltext.CSLFormatUtilsTest.ooHTMLTransformFromRawBibliography(CSLFormatUtilsTest.java:162)
CSLStyleUtilsTest > bibliographicPropertyMatches(boolean, String) > [3] true, "nlm-citation-sequence.csl" (:jablib:test in Source Code Tests / Unit tests (Windows) - file-based)
java.util.NoSuchElementException: No value present
	at java.base/java.util.Optional.get(Optional.java:143)
	at org.jabref.jablib/org.jabref.logic.citationstyle.CSLStyleUtilsTest.bibliographicPropertyMatches(CSLStyleUtilsTest.java:186)

Muted Tests

Select tests to mute in this pull request:

  • AuthorTest > addDotIfAbbreviation(String)
  • CSLFormatUtilsTest > ooHTMLTransformFromCitationWithMultipleEntries(String, CitationStyle)
  • CSLFormatUtilsTest > ooHTMLTransformFromCitationWithSingleEntry(String, CitationStyle)
  • CSLFormatUtilsTest > ooHTMLTransformFromRawBibliography(String, CitationStyle)
  • CSLStyleUtilsTest > bibliographicPropertyMatches(boolean, String)
  • CSLStyleUtilsTest > hangingIndentPropertyMatches(boolean, String)
  • CSLStyleUtilsTest > internalCitationStylePresent(String)
  • CSLStyleUtilsTest > numericPropertyMatches(boolean, String)
  • CSLStyleUtilsTest > titleMatches(String, String)
  • CitationStyleGeneratorTest > aPABibliography()
  • CitationStyleGeneratorTest > cslMapping(String, BibDatabaseMode, BibEntry, String)

Reuse successful test results:

  • ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

  • Rerun jobs

Learn more about TestLens at testlens.app.

@Nourhan46 Nourhan46 requested a review from koppor February 17, 2026 01:06
@koppor koppor removed their request for review February 17, 2026 01:07
@Nourhan46
Copy link
Copy Markdown
Author

i made all changes required , please give me feedback

@Nourhan46 Nourhan46 requested a review from koppor February 17, 2026 02:15
@koppor koppor removed their request for review February 17, 2026 02:15
@Nourhan46 Nourhan46 marked this pull request as ready for review February 17, 2026 02:20
@github-actions
Copy link
Copy Markdown
Contributor

Do not mark a PR as ready-for-review while the CI is running. CI checks need to be completed and passed.

@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Store relative paths in memory stick mode

✨ Enhancement 🧪 Tests

Grey Divider

Walkthroughs

Description
• Store relative paths when memory stick mode enabled
• Store absolute paths when memory stick mode disabled
• Add JUnit tests for both memory stick mode scenarios
Diagram
flowchart LR
  A["File History"] --> B{"Memory Stick Mode?"}
  B -->|"Yes"| C["Relativize Path"]
  B -->|"No"| D["Absolute Path"]
  C --> E["Store in Preferences"]
  D --> E
Loading

Grey Divider

File Changes

1. jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java ✨ Enhancement +12/-4

Conditional path storage based on memory stick mode

• Modified storeFileHistory() method to check memory stick mode
• Store relative paths when memory stick mode is enabled
• Store absolute paths when memory stick mode is disabled
• Uses basePath.relativize() to convert absolute paths to relative

jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java


2. jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java 🧪 Tests +37/-0

Add tests for memory stick mode path storage

• Created new test class with two test methods
• Test storeFileHistoryWhenStickModeIsOn() verifies relative paths stored
• Test storeFileHistoryWhenStickModeIsOff() verifies absolute paths stored
• Tests marked as @Disabled pending further development

jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java


3. CHANGELOG.md 📝 Documentation +1/-0

Document memory stick mode path change

• Added entry documenting memory stick mode relative path storage feature
• References issue #15026

CHANGELOG.md


Grey Divider

Qodo Logo

@koppor koppor marked this pull request as draft February 17, 2026 02:20
@Nourhan46 Nourhan46 requested a review from koppor February 17, 2026 02:23
@github-actions
Copy link
Copy Markdown
Contributor

Do not request reviews if changes are required.
Address the changes first.

@koppor koppor removed their request for review February 17, 2026 02:24
@qodo-free-for-open-source-projects
Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (3) 📎 Requirement gaps (1)

Grey Divider


Action required

1. storeFileHistory uses CWD base 📎 Requirement gap ✓ Correctness
Description
In memory stick mode, storeFileHistory computes relative paths from the current working directory
and unconditionally calls relativize, rather than using the JabRef executable location as the
base. This can store incorrect recent-library entries and may throw at runtime (e.g., differing
roots/drives), breaking persistence.
Code

jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[R1974-1979]

+        if (getInternalPreferences().isMemoryStickMode()) {
+            Path basePath = Path.of(".").toAbsolutePath();
+            putStringList(RECENT_DATABASES, history.stream()
+                                                   .map(path -> basePath.relativize(path))
+                                                   .map(Path::toString)
+                                                   .toList());
Evidence
PR Compliance ID 7 requires recent paths to be stored relative to the JabRef executable location
when memory stick mode is enabled, but the code uses Path.of(".").toAbsolutePath() (current
working directory) as the base. Additionally, PR Compliance ID 3 requires edge-case handling;
calling basePath.relativize(path) without guarding for different roots/drives can throw and is not
handled.

Store Recent Libraries paths relative to JabRef executable when memory stick mode is enabled
Rule 3: Generic: Robust Error Handling and Edge Case Management
jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1974-1979]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
When memory stick mode is enabled, recent-library paths must be stored relative to the JabRef executable location. The current implementation uses the process working directory as the base and unconditionally calls `relativize`, which can produce incorrect relative paths and can throw for non-relativizable paths (e.g., different roots/drives).

## Issue Context
Compliance requires relative paths to be computed from the JabRef executable directory in memory stick mode, while handling edge cases gracefully.

## Fix Focus Areas
- jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1974-1979]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. JabRefCliPreferencesTest is disabled 📘 Rule violation ⛯ Reliability
Description
The newly added tests are annotated with @Disabled, so they will not run in CI and cannot protect
the behavior change from regressions. This violates the requirement that behavioral changes include
reliable, CI-friendly tests.
Code

jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[R12-13]

+@Disabled
+class JabRefCliPreferencesTest {
Evidence
PR Compliance ID 27 requires tests for behavioral changes; the added test class is disabled via
@Disabled, preventing it from executing.

AGENTS.md
jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[12-13]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new JUnit tests are disabled and therefore do not validate the behavior change in CI.

## Issue Context
Behavior changes must be covered by active, reliable tests.

## Fix Focus Areas
- jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[12-37]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. May open duplicate tabs 🐞 Bug ✓ Correctness
Description
Storing relative paths in recent databases makes it more likely that opening a “recent library” uses
a relative Path, but OpenDatabaseAction checks for already-open libraries using equals against the
(absolute) databasePath, so the same library can be opened twice.
Code

jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[R1974-1984]

+        if (getInternalPreferences().isMemoryStickMode()) {
+            Path basePath = Path.of(".").toAbsolutePath();
+            putStringList(RECENT_DATABASES, history.stream()
+                                                   .map(path -> basePath.relativize(path))
+                                                   .map(Path::toString)
+                                                   .toList());
+        } else {
+            putStringList(RECENT_DATABASES, history.stream()
+                                                   .map(Path::toAbsolutePath)
+                                                   .map(Path::toString)
+                                                   .toList());
Evidence
OpenDatabaseAction compares the raw input file against the tab’s databasePath, but it later
normalizes to absolute for loading. If recent libraries are persisted as relative paths (and then
loaded via Path::of), opening from history can pass a relative path that will not equal the
already-open absolute path, bypassing the duplicate-open check.

jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1967-1985]
jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[165-199]
jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[237-243]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
With this PR, recent libraries may be loaded/stored as relative paths. `OpenDatabaseAction.openFiles` checks for already-open libraries using `databasePath.equals(file)` (raw input). Since the loader converts `file` to absolute, an already-open absolute path may never equal a relative one, allowing duplicate tabs.

### Issue Context
- Recent database paths are loaded using `Path::of` (no normalization).
- In memory stick mode, recent database paths are persisted as relative strings.
- `OpenDatabaseAction` compares un-normalized input paths but loads absolute paths.

### Fix Focus Areas
- jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1967-1986]
- jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[165-199]
- jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[237-243]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

4. absoultePath misspelled variable 📘 Rule violation ✓ Correctness
Description
The new test code introduces a misspelled identifier absoultePath, reducing readability and making
the code look unprofessional. This violates the requirement for clear, correctly spelled variable
names.
Code

jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[R19-22]

+        Path relativePath = Path.of("bib", "nour.bib");
+        Path absoultePath = relativePath.toAbsolutePath();
+        preferences.getLastFilesOpenedPreferences().getFileHistory().add(absoultePath);
+        List<String> storedList = preferences.getStringList("recentDatabases");
Evidence
PR Compliance ID 14 requires correctly spelled, intentional variable names; the added identifier
absoultePath is a typo.

AGENTS.md
jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[19-22]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A misspelled variable name (`absoultePath`) was introduced in the new test code.

## Issue Context
Clear, correctly spelled identifiers improve readability and maintainability.

## Fix Focus Areas
- jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[19-35]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. Changelog entry has grammar errors 📘 Rule violation ✧ Quality
Description
The added changelog entry is ungrammatical and uses internal camelCase terminology
(memoryStickMode, relativePath) instead of user-friendly wording. This violates the requirement
to avoid typographical/grammatical errors in changelogs.
Code

CHANGELOG.md[44]

+- when memoryStickMode is on relativePath will be stored [#15026](https://github.com/JabRef/jabref/pull/15026)
Evidence
PR Compliance ID 29 requires changelog text to be free of obvious typos/grammar issues; the added
line is not properly written and is hard to understand for average users.

CHANGELOG.md[44-44]
Best Practice: Learned patterns

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new changelog entry contains grammar issues and internal/camelCase wording.

## Issue Context
Changelog entries should be understandable to average users and free of typos/grammar errors.

## Fix Focus Areas
- CHANGELOG.md[44-44]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Comment on lines +1974 to +1979
if (getInternalPreferences().isMemoryStickMode()) {
Path basePath = Path.of(".").toAbsolutePath();
putStringList(RECENT_DATABASES, history.stream()
.map(path -> basePath.relativize(path))
.map(Path::toString)
.toList());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. storefilehistory uses cwd base 📎 Requirement gap ✓ Correctness

In memory stick mode, storeFileHistory computes relative paths from the current working directory
and unconditionally calls relativize, rather than using the JabRef executable location as the
base. This can store incorrect recent-library entries and may throw at runtime (e.g., differing
roots/drives), breaking persistence.
Agent Prompt
## Issue description
When memory stick mode is enabled, recent-library paths must be stored relative to the JabRef executable location. The current implementation uses the process working directory as the base and unconditionally calls `relativize`, which can produce incorrect relative paths and can throw for non-relativizable paths (e.g., different roots/drives).

## Issue Context
Compliance requires relative paths to be computed from the JabRef executable directory in memory stick mode, while handling edge cases gracefully.

## Fix Focus Areas
- jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1974-1979]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +12 to +13
@Disabled
class JabRefCliPreferencesTest {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. jabrefclipreferencestest is disabled 📘 Rule violation ⛯ Reliability

The newly added tests are annotated with @Disabled, so they will not run in CI and cannot protect
the behavior change from regressions. This violates the requirement that behavioral changes include
reliable, CI-friendly tests.
Agent Prompt
## Issue description
The new JUnit tests are disabled and therefore do not validate the behavior change in CI.

## Issue Context
Behavior changes must be covered by active, reliable tests.

## Fix Focus Areas
- jablib/src/test/java/org/jabref/logic/preferences/JabRefCliPreferencesTest.java[12-37]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +1974 to +1984
if (getInternalPreferences().isMemoryStickMode()) {
Path basePath = Path.of(".").toAbsolutePath();
putStringList(RECENT_DATABASES, history.stream()
.map(path -> basePath.relativize(path))
.map(Path::toString)
.toList());
} else {
putStringList(RECENT_DATABASES, history.stream()
.map(Path::toAbsolutePath)
.map(Path::toString)
.toList());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

3. May open duplicate tabs 🐞 Bug ✓ Correctness

Storing relative paths in recent databases makes it more likely that opening a “recent library” uses
a relative Path, but OpenDatabaseAction checks for already-open libraries using equals against the
(absolute) databasePath, so the same library can be opened twice.
Agent Prompt
### Issue description
With this PR, recent libraries may be loaded/stored as relative paths. `OpenDatabaseAction.openFiles` checks for already-open libraries using `databasePath.equals(file)` (raw input). Since the loader converts `file` to absolute, an already-open absolute path may never equal a relative one, allowing duplicate tabs.

### Issue Context
- Recent database paths are loaded using `Path::of` (no normalization).
- In memory stick mode, recent database paths are persisted as relative strings.
- `OpenDatabaseAction` compares un-normalized input paths but loads absolute paths.

### Fix Focus Areas
- jablib/src/main/java/org/jabref/logic/preferences/JabRefCliPreferences.java[1967-1986]
- jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[165-199]
- jabgui/src/main/java/org/jabref/gui/importer/actions/OpenDatabaseAction.java[237-243]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@jabref-machine
Copy link
Copy Markdown
Collaborator

Your pull request modified git submodules.

Please follow our FAQ on submodules to fix.

@jabref-machine
Copy link
Copy Markdown
Collaborator

JUnit tests of jablib are failing. You can see which checks are failing by locating the box "Some checks were not successful" on the pull request page. To see the test output, locate "Source Code Tests / Unit tests (pull_request)" and click on it.

You can then run these tests in IntelliJ to reproduce the failing tests locally. We offer a quick test running howto in the section Final build system checks in our setup guide.

@github-actions
Copy link
Copy Markdown
Contributor

Your pull request conflicts with the target branch.

Please merge with your code. For a step-by-step guide to resolve merge conflicts, see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line.

@Siedlerchr Siedlerchr closed this Feb 27, 2026
@github-actions
Copy link
Copy Markdown
Contributor

This pull requests was closed without merging. You have been unassigned from the respective issue #3590. In case you closed the PR for yourself, you can re-open it. Please also check After submission of a pull request in CONTRIBUTING.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

good first issue An issue intended for project-newcomers. Varies in difficulty. status: changes-required Pull requests that are not yet complete

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow relative paths in Recent Libraries

4 participants