Skip to content

Update from Java25 to Java26#15357

Draft
koppor wants to merge 13 commits intomainfrom
update-to-jdk26
Draft

Update from Java25 to Java26#15357
koppor wants to merge 13 commits intomainfrom
update-to-jdk26

Conversation

@koppor
Copy link
Copy Markdown
Member

@koppor koppor commented Mar 17, 2026

PR Description

Updates from JDK25 to JDK26

Dockerfile cannot be updated (yet), because there is no JDK26 image (yet) - https://hub.docker.com/_/maven

Open issues

Steps to test

See CI passing

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

@testlens-app

This comment has been minimized.

@Siedlerchr
Copy link
Copy Markdown
Member

Let's wait a couple of days until it's available on every platform. Despite that, we should stick with jdk25 for a while as this is lts so that the linux people can still build packages

@testlens-app

This comment has been minimized.

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

Docker fixed - thanks to #15194 (comment)

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

lts so that the linux people can still build packages

People use gradle. We have the foojay toolchain activated. JDK is downloaded automatically. They do not need to change the runtime for gradle. They only need Java 17 - https://docs.gradle.org/current/userguide/compatibility.html

IntelliJ is also no issue: https://blog.jetbrains.com/idea/2026/03/java-26-in-intellij-idea/

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

Not sure about this JBang issue:

java.lang.module.FindException: Module jdk.jsobject not found, required by javafx.web

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

JavaFX GUI tests

(java:4400): dbind-WARNING **: 17:56:39.266: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
2026-03-17 17:58:30 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()

@testlens-app

This comment has been minimized.

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

OK, Foojay is 503 - "as usual"

35.90    > Cannot find a Java installation on your machine (Linux 6.6.87.2-microsoft-standard-WSL2 amd64) matching: {languageVersion=26, vendor=Amazon Corretto, implementation=vendor-specific, nativeImageCapable=false}. Some toolchain resolvers had internal failures: foojay (Requesting vendor list failed: <html>
35.90      <head><title>503 Service Temporarily Unavailable</title></head>
35.90      <body>
35.90      <center><h1>503 Service Temporarily Unavailable</h1></center>
35.90      <hr><center>nginx</center>
35.90      </body>
35.90      </html>
35.90      ).

@testlens-app

This comment has been minimized.

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

Adding the extra debian package is because of https://gist.github.com/jeffcogswell/62395900725acef1c0a5a608f7eb7a05

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026



* What went wrong:
Execution failed for task ':jabgui:modernizer'.
> java.lang.reflect.InvocationTargetException

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

WiX issues:

java.io.IOException: Command [light.exe, -nologo, -spdb, -ext, WixUtilExtension, -out, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\a.msi, -ext, WixUIExtension, -b, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\config, -sice:ICE27, -loc, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\config\MsiInstallerStrings_de.wxl, -loc, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\config\MsiInstallerStrings_en.wxl, -loc, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\config\MsiInstallerStrings_ja.wxl, -loc, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\config\MsiInstallerStrings_zh_CN.wxl, -cultures:en-us, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\main.wixobj, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\bundle.wixobj, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\ui.wixobj, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\InstallDirNotEmptyDlg.wixobj, C:\Users\RUNNER~1\AppData\Local\Temp\jdk.jpackage3589011933114023290\wixobj\os-condition.wixobj] in D:\a\jabref\jabref\jabgui\build\packages\windows-latest\JabRef exited with 103 code

@testlens-app

This comment has been minimized.

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 17, 2026

Not sure why our test reports at gradle output are broken

@koppor
Copy link
Copy Markdown
Member Author

koppor commented Mar 23, 2026

Regarding Docker, currently only SAP Java 26 available

grafik

@testlens-app

This comment has been minimized.

@testlens-app
Copy link
Copy Markdown

testlens-app Bot commented Mar 25, 2026

🚨 TestLens detected 77 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
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > abstractIsCleanedUp()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > findFullTextByDOI()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > findFullTextByTitle()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > findFullTextByTitleWithCurlyBracket()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > findFullTextByTitleWithCurlyBracketAndPartOfAuthor()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > searchEntryByOldId()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > searchEntryByPartOfTitle()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > searchEntryByPartOfTitleWithAcuteAccent()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ArXivFetcherTest > supportsPhraseSearch()
Fetcher Tests / Fetcher tests :jablib:fetcherTest CompositeIdFetcherTest > performSearchByIdReturnsCorrectEntryForIdentifier(String, BibEntry, String) > 1 "performSearchByIdReturnsCorrectEntryForArXivId"
Fetcher Tests / Fetcher tests :jablib:fetcherTest CrawlerTest > whetherAllFilesAreCreated()
Fetcher Tests / Fetcher tests :jablib:fetcherTest CrossRefCitationFetcherTest > getReferences()
Fetcher Tests / Fetcher tests :jablib:fetcherTest CrossRefTest > performSearchByIdFindsPaperWithoutTitle()
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidPlainCitationParserTest > grobidPerformSearchCorrectResultTest(String, BibEntry, String) > "example1"
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidPlainCitationParserTest > grobidPerformSearchCorrectResultTest(String, BibEntry, String) > "example2"
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidPlainCitationParserTest > grobidPerformSearchCorrectResultTest(String, BibEntry, String) > "example3"
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidPlainCitationParserTest > grobidPerformSearchCorrectResultTest(String, BibEntry, String) > "example4"
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidPlainCitationParserTest > grobidPerformSearchWithEmptyStringTest()
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidServiceTest > extractsReferencesFromPdf()
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidServiceTest > processEmptyStringTest()
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidServiceTest > processPdfTest()
Fetcher Tests / Fetcher tests :jablib:fetcherTest GrobidServiceTest > processValidCitationTest()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ISIDOREFetcherTest > author()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ISIDOREFetcherTest > checkThesis()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ISIDOREFetcherTest > noResults()
Fetcher Tests / Fetcher tests :jablib:fetcherTest LibraryOfCongressTest > performSearchById()
Fetcher Tests / Fetcher tests :jablib:fetcherTest MedlineFetcherTest > searchByIDSari()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > getURLForQueryBuildsSearchUrl()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > getURLForQueryWithLucene()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > parserParsesResultsArray()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > parserParsesSingleWorkObject()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > searchByQueryFindsEntry()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenAlexFetcherTest > searchByQuotedQueryFindsEntry()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenLibraryIsbnFetcherTest > authorsAreCorrectlyFormatted()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenLibraryIsbnFetcherTest > isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenLibraryIsbnFetcherTest > searchByIdSuccessfulWithLongISBN()
Fetcher Tests / Fetcher tests :jablib:fetcherTest OpenLibraryIsbnFetcherTest > searchByIdSuccessfulWithShortISBN()
Fetcher Tests / Fetcher tests :jablib:fetcherTest PdfMergeMetadataImporterTest > fetchArxivInformationForPdfWithArxivId()
Fetcher Tests / Fetcher tests :jablib:fetcherTest PdfMergeMetadataImporterTest > importRelativizesFilePath()
Fetcher Tests / Fetcher tests :jablib:fetcherTest PdfMergeMetadataImporterTest > pdfMetadataExtractedFrom2024SPLCBecker()
Fetcher Tests / Fetcher tests :jablib:fetcherTest SemanticScholarTest > getDocument()
Fetcher Tests / Fetcher tests :jablib:fetcherTest URLDownloadTest > test429ErrorThrowsFetcherClientException()
Fetcher Tests / Fetcher tests :jablib:fetcherTest URLDownloadTest > test503ErrorThrowsFetcherServerException()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ZbMATHTest > searchByEntryFindsEntry()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ZbMATHTest > searchByIdFindsEntry()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ZbMATHTest > searchByIdInEntryFindsEntry()
Fetcher Tests / Fetcher tests :jablib:fetcherTest ZbMATHTest > searchByQueryFindsEntry()
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseApacheCommonsLang3
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseAssertJ
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseGuiInLogic
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseJackson2
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseJavaAWT
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseLogicInModel
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUsePaths
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > doNotUseSwing
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > restrictStandardStreams
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > restrictToSlf4jLogger
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > restrictUsagesInLogic
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > restrictUsagesInModel
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > shouldNotCallUriCreateMethod
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > shouldUseJSpecifyAnnotations
Source Code Tests / Unit tests – jabgui :jabgui:test JabGuiArchitectureTests > useStreamsOfResources
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseApacheCommonsLang3
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseAssertJ
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseGuiInLogic
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseJackson2
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseJavaAWT
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseLogicInModel
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUsePaths
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > doNotUseSwing
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > restrictStandardStreams
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > restrictToSlf4jLogger
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > restrictUsagesInLogic
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > restrictUsagesInModel
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > shouldNotCallUriCreateMethod
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > shouldUseJSpecifyAnnotations
Source Code Tests / Unit tests – jablib :jablib:test JabLibArchitectureTests > useStreamsOfResources

🏷️ Commit: 9999d63
▶️ Tests: 8253 executed
⚪️ Checks: 56/56 completed

Test Failures (first 5 of 77)

ArXivFetcherTest > abstractIsCleanedUp() (:jablib:fetcherTest in Fetcher Tests / Fetcher tests)
org.jabref.logic.importer.FetcherException: arXiv API request failed
URL: https://export.arxiv.org/api/query?id_list=2407.02238&start=0&max_results=1
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.callApi(ArXivFetcher.java:535)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.queryApi(ArXivFetcher.java:477)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.searchForEntryById(ArXivFetcher.java:417)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.performSearchById(ArXivFetcher.java:609)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.lambda$asyncPerformSearchById$0(ArXivFetcher.java:600)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1789)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1781)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:511)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1450)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2019)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: https://export.arxiv.org/api/query?id_list=2407.02238&start=0&max_results=1
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1756)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1326)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1307)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:223)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.callApi(ArXivFetcher.java:532)
	... 10 more
Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: https://export.arxiv.org/api/query?id_list=2407.02238&start=0&max_results=1
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1705)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1307)
	at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:493)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:307)
	at org.jabref.logic.importer.fetcher.ArXivFetcher$ArXiv.callApi(ArXivFetcher.java:528)
	... 10 more
ArXivFetcherTest > findFullTextByDOI() (:jablib:fetcherTest in Fetcher Tests / Fetcher tests)
org.opentest4j.AssertionFailedError: expected: <Optional[https://arxiv.org/pdf/cond-mat/0406246v1]> but was: <Optional.empty>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1188)
	at org.jabref.logic.importer.fetcher.ArXivFetcherTest.findFullTextByDOI(ArXivFetcherTest.java:202)
expected actual
Optional[https://arxiv.org/pdf/cond-mat/0406246v1] Optional.empty
ArXivFetcherTest > findFullTextByTitle() (:jablib:fetcherTest in Fetcher Tests / Fetcher tests)
org.opentest4j.AssertionFailedError: expected: <Optional[https://arxiv.org/pdf/cond-mat/0406246v1]> but was: <Optional.empty>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1188)
	at org.jabref.logic.importer.fetcher.ArXivFetcherTest.findFullTextByTitle(ArXivFetcherTest.java:229)
expected actual
Optional[https://arxiv.org/pdf/cond-mat/0406246v1] Optional.empty
ArXivFetcherTest > findFullTextByTitleWithCurlyBracket() (:jablib:fetcherTest in Fetcher Tests / Fetcher tests)
org.opentest4j.AssertionFailedError: expected: <Optional[https://arxiv.org/pdf/2010.15942v3]> but was: <Optional.empty>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1188)
	at org.jabref.logic.importer.fetcher.ArXivFetcherTest.findFullTextByTitleWithCurlyBracket(ArXivFetcherTest.java:236)
expected actual
Optional[https://arxiv.org/pdf/2010.15942v3] Optional.empty
ArXivFetcherTest > findFullTextByTitleWithCurlyBracketAndPartOfAuthor() (:jablib:fetcherTest in Fetcher Tests / Fetcher tests)
org.opentest4j.AssertionFailedError: expected: <Optional[https://arxiv.org/pdf/2010.15942v3]> but was: <Optional.empty>
	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:158)
	at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:139)
	at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:201)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:184)
	at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:179)
	at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1188)
	at org.jabref.logic.importer.fetcher.ArXivFetcherTest.findFullTextByTitleWithCurlyBracketAndPartOfAuthor(ArXivFetcherTest.java:268)
expected actual
Optional[https://arxiv.org/pdf/2010.15942v3] Optional.empty

Muted Tests

Select tests to mute in this pull request:

  • ArXivFetcherTest > abstractIsCleanedUp()
  • ArXivFetcherTest > findFullTextByDOI()
  • ArXivFetcherTest > findFullTextByTitle()
  • ArXivFetcherTest > findFullTextByTitleWithCurlyBracket()
  • ArXivFetcherTest > findFullTextByTitleWithCurlyBracketAndPartOfAuthor()
  • ArXivFetcherTest > searchEntryByOldId()
  • ArXivFetcherTest > searchEntryByPartOfTitle()
  • ArXivFetcherTest > searchEntryByPartOfTitleWithAcuteAccent()
  • ArXivFetcherTest > supportsPhraseSearch()
  • CompositeIdFetcherTest > performSearchByIdReturnsCorrectEntryForIdentifier(String, BibEntry, String)
  • CrawlerTest > whetherAllFilesAreCreated()
  • CrossRefCitationFetcherTest > getReferences()
  • CrossRefTest > performSearchByIdFindsPaperWithoutTitle()
  • GrobidPlainCitationParserTest > grobidPerformSearchCorrectResultTest(String, BibEntry, String)
  • GrobidPlainCitationParserTest > grobidPerformSearchWithEmptyStringTest()
  • GrobidServiceTest > extractsReferencesFromPdf()
  • GrobidServiceTest > processEmptyStringTest()
  • GrobidServiceTest > processPdfTest()
  • GrobidServiceTest > processValidCitationTest()
  • ISIDOREFetcherTest > author()
  • ISIDOREFetcherTest > checkThesis()
  • ISIDOREFetcherTest > noResults()
  • JabGuiArchitectureTests > doNotUseApacheCommonsLang3
  • JabGuiArchitectureTests > doNotUseAssertJ
  • JabGuiArchitectureTests > doNotUseGuiInLogic
  • JabGuiArchitectureTests > doNotUseJackson2
  • JabGuiArchitectureTests > doNotUseJavaAWT
  • JabGuiArchitectureTests > doNotUseLogicInModel
  • JabGuiArchitectureTests > doNotUsePaths
  • JabGuiArchitectureTests > doNotUseSwing
  • JabGuiArchitectureTests > restrictStandardStreams
  • JabGuiArchitectureTests > restrictToSlf4jLogger
  • JabGuiArchitectureTests > restrictUsagesInLogic
  • JabGuiArchitectureTests > restrictUsagesInModel
  • JabGuiArchitectureTests > shouldNotCallUriCreateMethod
  • JabGuiArchitectureTests > shouldUseJSpecifyAnnotations
  • JabGuiArchitectureTests > useStreamsOfResources
  • JabLibArchitectureTests > doNotUseApacheCommonsLang3
  • JabLibArchitectureTests > doNotUseAssertJ
  • JabLibArchitectureTests > doNotUseGuiInLogic
  • JabLibArchitectureTests > doNotUseJackson2
  • JabLibArchitectureTests > doNotUseJavaAWT
  • JabLibArchitectureTests > doNotUseLogicInModel
  • JabLibArchitectureTests > doNotUsePaths
  • JabLibArchitectureTests > doNotUseSwing
  • JabLibArchitectureTests > restrictStandardStreams
  • JabLibArchitectureTests > restrictToSlf4jLogger
  • JabLibArchitectureTests > restrictUsagesInLogic
  • JabLibArchitectureTests > restrictUsagesInModel
  • JabLibArchitectureTests > shouldNotCallUriCreateMethod
  • JabLibArchitectureTests > shouldUseJSpecifyAnnotations
  • JabLibArchitectureTests > useStreamsOfResources
  • LibraryOfCongressTest > performSearchById()
  • MedlineFetcherTest > searchByIDSari()
  • OpenAlexFetcherTest > getURLForQueryBuildsSearchUrl()
  • OpenAlexFetcherTest > getURLForQueryWithLucene()
  • OpenAlexFetcherTest > parserParsesResultsArray()
  • OpenAlexFetcherTest > parserParsesSingleWorkObject()
  • OpenAlexFetcherTest > searchByQueryFindsEntry()
  • OpenAlexFetcherTest > searchByQuotedQueryFindsEntry()
  • OpenLibraryIsbnFetcherTest > authorsAreCorrectlyFormatted()
  • OpenLibraryIsbnFetcherTest > isbnNeitherAvailableOnEbookDeNorOrViaOpenLibrary()
  • OpenLibraryIsbnFetcherTest > searchByIdSuccessfulWithLongISBN()
  • OpenLibraryIsbnFetcherTest > searchByIdSuccessfulWithShortISBN()
  • PdfMergeMetadataImporterTest > fetchArxivInformationForPdfWithArxivId()
  • PdfMergeMetadataImporterTest > importRelativizesFilePath()
  • PdfMergeMetadataImporterTest > pdfMetadataExtractedFrom2024SPLCBecker()
  • SemanticScholarTest > getDocument()
  • URLDownloadTest > test429ErrorThrowsFetcherClientException()
  • URLDownloadTest > test503ErrorThrowsFetcherServerException()
  • ZbMATHTest > searchByEntryFindsEntry()
  • ZbMATHTest > searchByIdFindsEntry()
  • ZbMATHTest > searchByIdInEntryFindsEntry()
  • ZbMATHTest > searchByQueryFindsEntry()

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.

@github-actions github-actions Bot added the status: changes-required Pull requests that are not yet complete label Apr 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 3, 2026

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.

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

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: Unit tests – jabgui

Failed stage: Run jabgui tests [❌]

Failed test name: JabGuiArchitectureTests

Failure summary:

The GitHub Action failed because the Gradle test task :jabgui:test had failing tests and exited with
code 1.
- In > Task :jabgui:test, the suite JabGuiArchitectureTests reported 15 failures, each
throwing java.lang.AssertionError at ArchRule.java:201 (log lines 1718-1748).
- Gradle then aborted
with Execution failed for task ':jabgui:test'. > There were failing tests and returned exit code 1
(log lines 1768-1777).
- After the build failure, an additional error occurred while formatting the
JUnit XML report: ./jabgui/build/test-results/test/TEST-org.jabref.gui.JabGuiArchitectureTests.xml
could not be parsed due to CData section too big found (log line 2089), indicating the test report
output was too large for the formatter/parser.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

393:  Cache restored successfully
394:  Restored cache entry with key gradle-wrapper-zips-v1-c60c4e15206cf12947d60e5f29c3c1ca to /home/runner/.gradle/wrapper/dists/gradle-9.5.0-rc-2-bin/c98wggobnx6mxdelpdlhruof5 in 3623ms
395:  Received 507510784 of 3478526647 (14.6%), 119.7 MBs/sec
396:  Received 390070272 of 512690876 (76.1%), 91.6 MBs/sec
397:  Received 512690876 of 512690876 (100.0%), 101.7 MBs/sec
398:  Cache Size: ~489 MB (512690876 B)
399:  [command]/usr/bin/tar -xf /home/runner/work/_temp/a7b662f8-665c-4504-95b2-f1714a8201d3/cache.tzst -P -C /home/runner/work/jabref/jabref --use-compress-program unzstd
400:  Received 696254464 of 3478526647 (20.0%), 131.0 MBs/sec
401:  Received 964689920 of 3478526647 (27.7%), 151.1 MBs/sec
402:  Cache restored successfully
403:  Restored cache entry with key gradle-dependencies-v1-843a5c7d4e425ede1fb46c0ff7e172f4 to /home/runner/.gradle/caches/modules-*/files-*/*/*/*/* in 6813ms
404:  Received 1270874112 of 3478526647 (36.5%), 170.9 MBs/sec
405:  Received 1598029824 of 3478526647 (45.9%), 188.2 MBs/sec
406:  Received 1879048192 of 3478526647 (54.0%), 196.9 MBs/sec
407:  Received 2088763392 of 3478526647 (60.0%), 203.7 MBs/sec
408:  ##[warning]Failed to restore gradle-transforms-v1-9b124757605e4cc174378b631c0820a3: RestError: The specified blob does not exist.
409:  RequestId:719a85c2-501e-00bf-28f4-cfaf21000000
410:  Time:RestError: The specified blob does not exist.
411:  RequestId:719a85c2-501e-00bf-28f4-cfaf21000000
...

475:  32M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-darwin-amd64/18.3.0
476:  32M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-darwin-amd64
477:  32M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-darwin-arm64v8/18.3.0/a136c96f228e931b3c78149a0ae5c0262b6772f8
478:  32M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-darwin-arm64v8/18.3.0
479:  32M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-darwin-arm64v8
480:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64-alpine/18.3.0/28ba722f0ddf4f8b06f91d4d7dbfb28e4b696e1f
481:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64-alpine/18.3.0
482:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64-alpine
483:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64/18.3.0/b96022d00103daccc3f1d0dfcf2f7da2cd6ef3b0
484:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64/18.3.0
485:  15M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-linux-amd64
486:  25M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-windows-amd64/18.3.0/12b0fdca566bd1610c027b1edb90643611a1920a
487:  25M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-windows-amd64/18.3.0
488:  25M    ./caches/modules-2/files-2.1/io.zonky.test.postgres/embedded-postgres-binaries-windows-amd64
489:  130M    ./caches/modules-2/files-2.1/io.zonky.test.postgres
490:  5.1M    ./caches/modules-2/files-2.1/io.github.eisop/dataflow-errorprone/3.41.0-eisop1/3fc86eff95c549e42c41fd7c01c2a57ed46a5a94
491:  5.1M    ./caches/modules-2/files-2.1/io.github.eisop/dataflow-errorprone/3.41.0-eisop1
492:  5.1M    ./caches/modules-2/files-2.1/io.github.eisop/dataflow-errorprone
493:  5.1M    ./caches/modules-2/files-2.1/io.github.eisop
...

1012:  SpringerNatureAPIKey: ***
1013:  GRADLE_OPTS: -Xmx4g
1014:  JAVA_OPTS: -Xmx4g
1015:  JAVA_HOME: /opt/hostedtoolcache/Java_Corretto_jdk/26.0.0-35.2/x64
1016:  JAVA_HOME_26_X64: /opt/hostedtoolcache/Java_Corretto_jdk/26.0.0-35.2/x64
1017:  GRADLE_ACTION_ID: gradle/actions/setup-gradle
1018:  GRADLE_USER_HOME: /home/runner/.gradle
1019:  GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
1020:  GRADLE_BUILD_ACTION_CACHE_RESTORED: true
1021:  DEVELOCITY_INJECTION_INIT_SCRIPT_NAME: gradle-actions.inject-develocity.init.gradle
1022:  DEVELOCITY_INJECTION_CUSTOM_VALUE: gradle-actions
1023:  GITHUB_DEPENDENCY_GRAPH_ENABLED: false
1024:  CACHE_KEY: d043**************************67
1025:  ##[endgroup]
1026:  [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/work/jabref/jabref --files-from manifest.txt --use-compress-program zstdmt
1027:  Failed to save: Unable to reserve cache with key cache-apt-pkgs_d0438739d6d8f8445564fd9c039ae367, another job may be creating this cache.
1028:  ##[warning]Cache save failed.
1029:  ##[group]Run rm -rf ~/cache-apt-pkgs
...

1065:  JAVA_HOME_26_X64: /opt/hostedtoolcache/Java_Corretto_jdk/26.0.0-35.2/x64
1066:  GRADLE_ACTION_ID: gradle/actions/setup-gradle
1067:  GRADLE_USER_HOME: /home/runner/.gradle
1068:  GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
1069:  GRADLE_BUILD_ACTION_CACHE_RESTORED: true
1070:  DEVELOCITY_INJECTION_INIT_SCRIPT_NAME: gradle-actions.inject-develocity.init.gradle
1071:  DEVELOCITY_INJECTION_CUSTOM_VALUE: gradle-actions
1072:  GITHUB_DEPENDENCY_GRAPH_ENABLED: false
1073:  CACHE_KEY: d043**************************67
1074:  CI: true
1075:  ##[endgroup]
1076:  Starting a Gradle Daemon (subsequent builds will be faster)
1077:  Parallel Configuration Cache is an incubating feature.
1078:  Calculating task graph as no cached configuration is available for tasks: :jabgui:check
1079:  Kotlin does not yet support 26 JDK target, falling back to Kotlin JVM_25 JVM target
1080:  > Task :build-logic:checkKotlinGradlePluginConfigurationErrors SKIPPED
1081:  > Task :build-logic:generateExternalPluginSpecBuilders FROM-CACHE
1082:  > Task :build-logic:extractPrecompiledScriptPluginPlugins
1083:  > Task :build-logic:generateScriptPluginAdapters
1084:  > Task :build-logic:pluginDescriptors
1085:  > Task :build-logic:processResources
1086:  > Task :build-logic:compilePluginsBlocks
1087:  > Task :build-logic:generatePrecompiledScriptPluginAccessors
1088:  > Task :build-logic:compileKotlin
1089:  Kotlin does not yet support 26 JDK target, falling back to Kotlin JVM_25 JVM target
1090:  w: ⚠️ Inconsistent JVM Target Compatibility Between Java and Kotlin Tasks
1091:  Inconsistent JVM-target compatibility detected for tasks 'compileJava' (26) and 'compileKotlin' (25).
1092:  This will become an error in Gradle 8.0.
1093:  Solution: Consider using JVM Toolchain: https://kotl.in/gradle/jvm/toolchain
...

1704:  WARNING: Use --enable-native-access=app.testlens.instrumentation.junit to avoid a warning for callers in this module
1705:  WARNING: Restricted methods will be blocked in a future release unless native access is enabled
1706:  2026-04-19 12:07:24 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()
1707:  INFO: Gradle Test Executor 11 finished executing tests.
1708:  2026-04-19 12:07:25 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()
1709:  INFO: Gradle Test Executor 12 started executing tests.
1710:  WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
1711:  WARNING: sun.misc.Unsafe::allocateMemory has been called by app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$2 (file:/home/runner/.gradle/caches/modules-2/files-2.1/app.testlens/junit-platform-instrumentation/1.7.0/bd6ee843596df9ecd96c10e0c57f8122ddd2b7b5/junit-platform-instrumentation-1.7.0.jar)
1712:  WARNING: Please consider reporting this to the maintainers of class app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$2
1713:  WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release
1714:  WARNING: A restricted method in java.lang.System has been called
1715:  WARNING: java.lang.System::loadLibrary has been called by app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil in module app.testlens.instrumentation.junit (file:/home/runner/.gradle/caches/modules-2/files-2.1/app.testlens/junit-platform-instrumentation/1.7.0/bd6ee843596df9ecd96c10e0c57f8122ddd2b7b5/junit-platform-instrumentation-1.7.0.jar)
1716:  WARNING: Use --enable-native-access=app.testlens.instrumentation.junit to avoid a warning for callers in this module
1717:  WARNING: Restricted methods will be blocked in a future release unless native access is enabled
1718:  > Task :jabgui:test
1719:  JabGuiArchitectureTests > doNotUseApacheCommonsLang3 FAILED
1720:  java.lang.AssertionError at ArchRule.java:201
1721:  JabGuiArchitectureTests > doNotUseSwing FAILED
1722:  java.lang.AssertionError at ArchRule.java:201
1723:  JabGuiArchitectureTests > doNotUseJackson2 FAILED
1724:  java.lang.AssertionError at ArchRule.java:201
1725:  JabGuiArchitectureTests > doNotUseAssertJ FAILED
1726:  java.lang.AssertionError at ArchRule.java:201
1727:  JabGuiArchitectureTests > doNotUseJavaAWT FAILED
1728:  java.lang.AssertionError at ArchRule.java:201
1729:  JabGuiArchitectureTests > doNotUsePaths FAILED
1730:  java.lang.AssertionError at ArchRule.java:201
1731:  JabGuiArchitectureTests > useStreamsOfResources FAILED
1732:  java.lang.AssertionError at ArchRule.java:201
1733:  JabGuiArchitectureTests > doNotUseLogicInModel FAILED
1734:  java.lang.AssertionError at ArchRule.java:201
1735:  JabGuiArchitectureTests > doNotUseGuiInLogic FAILED
1736:  java.lang.AssertionError at ArchRule.java:201
1737:  JabGuiArchitectureTests > restrictUsagesInModel FAILED
1738:  java.lang.AssertionError at ArchRule.java:201
1739:  JabGuiArchitectureTests > restrictUsagesInLogic FAILED
1740:  java.lang.AssertionError at ArchRule.java:201
1741:  JabGuiArchitectureTests > restrictToSlf4jLogger FAILED
1742:  java.lang.AssertionError at ArchRule.java:201
1743:  JabGuiArchitectureTests > restrictStandardStreams FAILED
1744:  java.lang.AssertionError at ArchRule.java:201
1745:  JabGuiArchitectureTests > shouldNotCallUriCreateMethod FAILED
1746:  java.lang.AssertionError at ArchRule.java:201
1747:  JabGuiArchitectureTests > shouldUseJSpecifyAnnotations FAILED
1748:  java.lang.AssertionError at ArchRule.java:201
1749:  2026-04-19 12:07:54 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()
1750:  INFO: Gradle Test Executor 12 finished executing tests.
1751:  2026-04-19 12:07:55 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()
1752:  INFO: Gradle Test Executor 13 started executing tests.
1753:  WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
1754:  WARNING: sun.misc.Unsafe::allocateMemory has been called by app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$2 (file:/home/runner/.gradle/caches/modules-2/files-2.1/app.testlens/junit-platform-instrumentation/1.7.0/bd6ee843596df9ecd96c10e0c57f8122ddd2b7b5/junit-platform-instrumentation-1.7.0.jar)
1755:  WARNING: Please consider reporting this to the maintainers of class app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$2
1756:  WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release
1757:  WARNING: A restricted method in java.lang.System has been called
1758:  WARNING: java.lang.System::loadLibrary has been called by app.testlens.shaded.io.grpc.netty.shaded.io.netty.util.internal.NativeLibraryUtil in module app.testlens.instrumentation.junit (file:/home/runner/.gradle/caches/modules-2/files-2.1/app.testlens/junit-platform-instrumentation/1.7.0/bd6ee843596df9ecd96c10e0c57f8122ddd2b7b5/junit-platform-instrumentation-1.7.0.jar)
1759:  WARNING: Use --enable-native-access=app.testlens.instrumentation.junit to avoid a warning for callers in this module
1760:  WARNING: Restricted methods will be blocked in a future release unless native access is enabled
1761:  2026-04-19 12:09:53 [Test worker] org.gradle.api.internal.tasks.testing.worker.TestWorker.execute()
1762:  INFO: Gradle Test Executor 13 finished executing tests.
1763:  > Task :jabgui:test
1764:  831 tests completed, 15 failed, 8 skipped
1765:  > Task :jabgui:test FAILED
1766:  gradle/actions: Writing build results to /home/runner/work/_temp/.gradle-actions/build-results/__run-1776600267914.json
1767:  [Incubating] Problems report is available at: file:///home/runner/work/jabref/jabref/build/reports/problems/problems-report.html
1768:  FAILURE: Build failed with an exception.
1769:  * What went wrong:
1770:  Execution failed for task ':jabgui:test'.
1771:  > There were failing tests. See the report at: file:///home/runner/work/jabref/jabref/jabgui/build/reports/tests/test/index.html
1772:  * Try:
1773:  > Run with --scan to get full insights from a Build Scan (powered by Develocity).
1774:  BUILD FAILED in 5m 34s
1775:  33 actionable tasks: 30 executed, 3 from cache
1776:  Configuration cache entry stored.
1777:  ##[error]Process completed with exit code 1.
1778:  ##[group]Run awalsh128/cache-apt-pkgs-action@latest
...

2074:  JAVA_OPTS: -Xmx4g
2075:  JAVA_HOME: /opt/hostedtoolcache/Java_Corretto_jdk/26.0.0-35.2/x64
2076:  JAVA_HOME_26_X64: /opt/hostedtoolcache/Java_Corretto_jdk/26.0.0-35.2/x64
2077:  GRADLE_ACTION_ID: gradle/actions/setup-gradle
2078:  GRADLE_USER_HOME: /home/runner/.gradle
2079:  GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
2080:  GRADLE_BUILD_ACTION_CACHE_RESTORED: true
2081:  DEVELOCITY_INJECTION_INIT_SCRIPT_NAME: gradle-actions.inject-develocity.init.gradle
2082:  DEVELOCITY_INJECTION_CUSTOM_VALUE: gradle-actions
2083:  GITHUB_DEPENDENCY_GRAPH_ENABLED: false
2084:  CACHE_KEY: b4c5**************************a7
2085:  ##[endgroup]
2086:  Formatting results...
2087:  Formatting ./jabgui/build/test-results/test/TEST-org.jabref.gui.JabGuiArchitectureTests.xml
2088:  =====================================================
2089:  ./jabgui/build/test-results/test/TEST-org.jabref.gui.JabGuiArchitectureTests.xml:75689: parser error : CData section too big found
2090:  at org.junit.platform.engine@6.0.3/org.junit.platform.engine.support.hierarchic
2091:  ^
2092:  ./jabgui/build/test-results/test/TEST-org.jabref.gui.JabGuiArchitectureTests.xml:75713: parser error : internal error: detected an error in element content
2093:  at org.junit.platform.engine@6.0.3/org.junit.platform.engine.support.hierarchic

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

Labels

status: changes-required Pull requests that are not yet complete

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants