-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Medium
-
None
-
Affects Version/s: 11.0.0
-
Component/s: Editor - Core
-
Severity 3 - Minor
Issue Summary
In Confluence 11.0, every call to ConfluenceWysiwygConverter#convertXHtmlToWikiMarkup fails with java.lang.NoClassDefFoundError: org/cyberneko/html/parsers/DOMFragmentParser.
DefaultConfluenceWysiwygConverter calls com.atlassian.renderer.wysiwyg.converter.DefaultWysiwygConverter (atlassian-renderer-legacy 6.5.4). That class still references the original NekoHTML package org.cyberneko.html, but the 11.0 webapp only provides org.htmlunit:neko-htmlunit 4.21.0 (package org.htmlunit.cyberneko).
Steps to Reproduce
- Install Confluence 11.0.0.
- Install an app that injects ConfluenceWysiwygConverter (exported as an OSGi service) and calls convertXHtmlToWikiMarkup:
@Bean public ConfluenceWysiwygConverter confluenceWysiwygConverter() { return importOsgiService(ConfluenceWysiwygConverter.class); } // in a class String wiki = converter.convertXHtmlToWikiMarkup("<p>Hello <strong>world</strong></p>", "");
- Trigger the code
Expected Results
The XHTML is converted to wiki markup.
Actual Results
The request fails with HTTP 500.
The below exception is thrown in the atlassian-confluence.log file:
Caused by: java.lang.NoClassDefFoundError: org/cyberneko/html/parsers/DOMFragmentParser at com.atlassian.renderer.wysiwyg.converter.DefaultWysiwygConverter.convertXHtmlToWikiMarkup(DefaultWysiwygConverter.java:418) at com.atlassian.confluence.pages.wysiwyg.DefaultConfluenceWysiwygConverter.convertXHtmlToWikiMarkup(DefaultConfluenceWysiwygConverter.java:26) at com.atlassian.confluence.pages.wysiwyg.DefaultConfluenceWysiwygConverter.convertXHtmlToWikiMarkup(DefaultConfluenceWysiwygConverter.java:38) ... at jdk.proxy4/jdk.proxy4.$Proxy431.convertXHtmlToWikiMarkup(Unknown Source) at com.atlassian.ecohelp.page.WikiServlet.doGet(WikiServlet.java:65) ... Caused by: java.lang.ClassNotFoundException: org.cyberneko.html.parsers.DOMFragmentParser
Workaround
Currently there is no known workaround for this behavior. A workaround will be added here when available