Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-7727

Replace EOL'ed pegdown by flexmark-java for Java 9 compatibility

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.5, 7.0
    • Component/s: general/build
    • Labels:
    • Lucene Fields:
      New

      Description

      The documentation tasks use a library called "pegdown" to convert Markdown to HTML. Unfortunately, the developer of pegdown EOLed it and points the users to a faster replacement: flexmark-java (https://github.com/vsch/flexmark-java).

      This would not be important for us, if pegdown would work with Java 9, but it is also affected by the usual "setAccessible into private Java APIs" issue (see my talk at FOSDEM: https://fosdem.org/2017/schedule/event/jigsaw_challenges/).

      The migration should not be too hard, its just a bit of Groovy Code rewriting and dependency changes.

      This is the pegdown problem:

      Caused by: java.lang.RuntimeException: Could not determine whether class 'org.pegdown.Parser$$parboiled' has already been loaded
              at org.parboiled.transform.AsmUtils.findLoadedClass(AsmUtils.java:213)
              at org.parboiled.transform.ParserTransformer.transformParser(ParserTransformer.java:35)
              at org.parboiled.Parboiled.createParser(Parboiled.java:54)
              ... 50 more
      Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) accessible: module java.base does not "opens java.lang" to unnamed module @551b6736
              at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:335)
              at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:278)
              at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196)
              at java.base/java.lang.reflect.Method.setAccessible(Method.java:190)
              at org.parboiled.transform.AsmUtils.findLoadedClass(AsmUtils.java:206)
              ... 52 more
      

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              uschindler Uwe Schindler
              Reporter:
              uschindler Uwe Schindler

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment