Skip to content

Fix for issue #577, avoid using reflection#578

Merged
vsch merged 1 commit intovsch:masterfrom
palexdev:fix_#577
Apr 16, 2025
Merged

Fix for issue #577, avoid using reflection#578
vsch merged 1 commit intovsch:masterfrom
palexdev:fix_#577

Conversation

@palexdev
Copy link
Contributor

It seems like with small changes to getUniverseSlow everything works fine while also avoid using reflection, which can be troublesome for GraalVM native images

Signed-off-by: palexdev <alessandro.parisi406@gmail.com>
@fbricon
Copy link

fbricon commented Jan 15, 2024

@vsch any chance this PR can get some attention pretty please?

@cosieLq
Copy link

cosieLq commented Apr 8, 2025

Hi, is there any update when this PR will possibly get released?

@vsch vsch merged commit bcfe84a into vsch:master Apr 16, 2025
@sake92
Copy link

sake92 commented May 24, 2025

Hi, is there any update when this PR will possibly get released?

You can use https://jitpack.io/ resolution in the meantime (while waiting for a proper maven central release).
For example with gradle:

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
  }
}
dependencies {
  implementation 'com.github.vsch.flexmark-java:flexmark-all:-SNAPSHOT'
}

@kwin
Copy link

kwin commented Feb 15, 2026

Another issue uncovered by NonDex is also fixed with this PR:

java.base/java.lang.Thread.getStackTrace(Thread.java:2451)
java.base/edu.illinois.nondex.common.NonDex.printStackTraceIfUniqueDebugPoint(NonDex.java:165)
java.base/edu.illinois.nondex.common.NonDex.shouldExplore(NonDex.java:136)
java.base/edu.illinois.nondex.common.NonDex.getPermutation(NonDex.java:106)
java.base/edu.illinois.nondex.shuffling.ControlNondeterminism.shuffle(ControlNondeterminism.java:93)
java.base/java.lang.Class.getFields(Class.java:2096)
com.vladsch.flexmark.util.misc.BitFieldSet$UniverseLoader.getUniverseSlow(BitFieldSet.java:44)
com.vladsch.flexmark.util.misc.BitFieldSet.getBitMasks(BitFieldSet.java:99)
com.vladsch.flexmark.util.misc.BitFieldSet.setUnsigned(BitFieldSet.java:949)
com.vladsch.flexmark.util.misc.BitFieldSet.setBitField(BitFieldSet.java:979)
com.vladsch.flexmark.util.sequence.LineInfo$Preformatted.<init>(LineInfo.java:38)
com.vladsch.flexmark.util.sequence.LineInfo$Preformatted.<clinit>(LineInfo.java:29)
com.vladsch.flexmark.util.sequence.LineAppendableImpl.getLineRange(LineAppendableImpl.java:340)
com.vladsch.flexmark.util.sequence.LineAppendableImpl.addLineRange(LineAppendableImpl.java:355)
com.vladsch.flexmark.util.sequence.LineAppendableImpl.appendImpl(LineAppendableImpl.java:489)
com.vladsch.flexmark.util.sequence.LineAppendableImpl.appendImpl(LineAppendableImpl.java:540)
com.vladsch.flexmark.util.sequence.LineAppendableImpl.append(LineAppendableImpl.java:548)
com.vladsch.flexmark.util.html.HtmlAppendableBase.rawPre(HtmlAppendableBase.java:111)
com.vladsch.flexmark.html.renderer.CoreNodeRenderer.renderHtmlBlock(CoreNodeRenderer.java:521)
com.vladsch.flexmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:473)
com.vladsch.flexmark.html.renderer.NodeRenderingHandler.render(NodeRenderingHandler.java:16)
com.vladsch.flexmark.html.HtmlRenderer$MainNodeRenderer.renderNode(HtmlRenderer.java:779)
com.vladsch.flexmark.html.HtmlRenderer$MainNodeRenderer.renderChildrenNode(HtmlRenderer.java:798)
com.vladsch.flexmark.html.HtmlRenderer$MainNodeRenderer.renderChildren(HtmlRenderer.java:790)
com.vladsch.flexmark.html.renderer.CoreNodeRenderer.render(CoreNodeRenderer.java:113)
com.vladsch.flexmark.html.renderer.NodeRenderingHandler.render(NodeRenderingHandler.java:16)
com.vladsch.flexmark.html.HtmlRenderer$MainNodeRenderer.renderNode(HtmlRenderer.java:761)
com.vladsch.flexmark.html.HtmlRenderer$MainNodeRenderer.render(HtmlRenderer.java:683)
com.vladsch.flexmark.html.HtmlRenderer.render(HtmlRenderer.java:213)
com.vladsch.flexmark.html.HtmlRenderer.render(HtmlRenderer.java:197)

(stack trace is for Flexmark 0.62.2).
That leads to slightly different HTML output depending on the order of the fields being returned by Class.getFields()

This was detected in apache/maven-doxia#1017.

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.

6 participants