Skip to content

Fix NoSuchMethodError when an outdated Markup Blitz is on the classpath - #2781

Merged
ChristianGruen merged 1 commit into
BaseXdb:mainfrom
GuntherRademacher:availability-check
Oct 21, 2026
Merged

ChristianGruen merged 1 commit into
BaseXdb:mainfrom
GuntherRademacher:availability-check

Conversation

@GuntherRademacher

@GuntherRademacher GuntherRademacher commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Running basex-help (in an outdated branch) locally failed with:

HTTP ERROR 500 java.lang.NoSuchMethodError: 'void de.bottlecaps.markup.blitz.Parser.parse(java.lang.String, de.bottlecaps.markup.blitz.ResultHandler, java.lang.Runnable, de.bottlecaps.markup.Blitz$Option[])

basex-help there had pinned

<basexVersion>13.0-SNAPSHOT</basexVersion>
<markupBlitzVersion>1.12</markupBlitzVersion>

but 13.0-SNAPSHOT had since moved to Markup Blitz 1.13 and calls a method that does not exist in 1.12. The existing check in ExternalLib only verifies that classes are present, so it could not detect this.

Changes:

  • ExternalLib entries can now declare an additional compatibility check. For Markup Blitz, it requires 1.13 <= version < 2 (qualifiers such as -SNAPSHOT are ignored).
  • ExternalLib.missing() now returns the first unmet requirement (a class name or a version constraint), and the result is cached.
  • Error messages for fn:invisible-xml and the compression formats now say "unmet requirement" instead of "missing class". An unsupported version is reported cleanly instead of failing with an HTTP 500.

@ChristianGruen
ChristianGruen merged commit 975ba51 into BaseXdb:main Oct 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants