projectdoc Toolbox 5.0.16 Release Notes

Compatibility with Confluence Version 7.18.1 and related releases due to Confluence Security Advisory 2022-06-02 and earlier releases.

Release Date
 

Today we released version 5.0.16 of the projectdoc Toolbox.

This is release provides improvements so that it can be used on Confluence versions fixing Confluence Security Advisory 2022-06-02.

A previous micro or bugfix version of Confluence did introduce a non-backwards compatible library that will result in a runtime failure of the projectdoc Toolbox. This version of the projectdoc Toolbox fixes this issue and allows to run on all supported versions of Confluence. 

The projectdoc Toolbox is an add-on for Confluence supporting agile software development teams to collaborate on process, project, system, and product documentation. 

New and Noteworthy

JSoup Library Update

Confluence pushed the JSoup library from version 1.9.2 to version 1.14.3 in some of the bugfix version of Confluence Server and Confluence Data Center. Since the projectdoc Toolbox uses the provided JSoup library and the JSoup API of version 1.14.3 is not backwards compatible with 1.9.2, the projectdoc Toolbox runs into runtime issues.

Confluence log file with stacktrace
java.lang.NoSuchMethodError: 'void org.jsoup.select.NodeTraversor.<init>(org.jsoup.select.NodeVisitor)'
        at de.smartics.projectdoc.atlassian.confluence.tools.jsoup.JSoupHtmlToText.internalToText(JSoupHtmlToText.java:94)
        at de.smartics.projectdoc.atlassian.confluence.tools.jsoup.JSoupHtmlToText.toText(JSoupHtmlToText.java:89)
        at de.smartics.projectdoc.atlassian.confluence.util.HtmlToText.toText(HtmlToText.java:303)
        at de.smartics.projectdoc.atlassian.confluence.util.HtmlToText.toText(HtmlToText.java:307)
        at de.smartics.projectdoc.atlassian.confluence.document.Utils.normalizeRenderedValue(Utils.java:392)
        at de.smartics.projectdoc.atlassian.confluence.document.Utils.normalizeOriginalValue(Utils.java:461)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.<init>(DocumentPropertyValue.java:344)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.<init>(DocumentPropertyValue.java:282)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.createValid(DocumentPropertyValue.java:551)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.createValid(DocumentPropertyValue.java:532)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:223)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:298)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:286)
        at de.smartics.projectdoc.atlassian.confluence.query.PropertiesDocumentCreator.fakeDocument(PropertiesDocumentCreator.java:229)
        at de.smartics.projectdoc.atlassian.confluence.query.PropertiesDocumentCreator.fetchRenderFromBodyOrFake(PropertiesDocumentCreator.java:216)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.providePropertiesDocument(AbstractDocumentPropertiesMacro.java:279)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.licensedExecute(AbstractDocumentPropertiesMacro.java:202)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.DocumentPropertiesMarkerMacro.licensedExecute(DocumentPropertiesMarkerMacro.java:89)
        at de.smartics.projectdoc.atlassian.confluence.util.LicenseMacro.executeMacro(LicenseMacro.java:225)
        at de.smartics.projectdoc.atlassian.confluence.util.LicenseMacro.execute(LicenseMacro.java:148)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.execute(AbstractDocumentPropertiesMacro.java:152)

With this version the projectdoc Toolbox fixes these issues and supports both version of the JSoup library.

List of Changes

The following changes are part of version 5.0.16 of the projectdoc Toolbox for Confluence

Key Summary T P Description
PDAC-1642 Support JSoup Version 1.14.3 Improvement Blocker (migrated)

A previous micro or bugfix version of Confluence did introduce a non-backwards compatible version of the JSoup library that will result in a runtime failure of the projectdoc Toolbox. This prevents the rendering of a couple of macros that rely on HTML and XML parsing with JSoup.

The API change that affects the projectoc Toolbox is releated to the NodeVisitor and the TextNode classes. For instance:

java.lang.NoSuchMethodError: 'void org.jsoup.select.NodeTraversor.<init>(org.jsoup.select.NodeVisitor)'
        at de.smartics.projectdoc.atlassian.confluence.tools.jsoup.JSoupHtmlToText.internalToText(JSoupHtmlToText.java:94)
        at de.smartics.projectdoc.atlassian.confluence.tools.jsoup.JSoupHtmlToText.toText(JSoupHtmlToText.java:89)
        at de.smartics.projectdoc.atlassian.confluence.util.HtmlToText.toText(HtmlToText.java:303)
        at de.smartics.projectdoc.atlassian.confluence.util.HtmlToText.toText(HtmlToText.java:307)
        at de.smartics.projectdoc.atlassian.confluence.document.Utils.normalizeRenderedValue(Utils.java:392)
        at de.smartics.projectdoc.atlassian.confluence.document.Utils.normalizeOriginalValue(Utils.java:461)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.<init>(DocumentPropertyValue.java:344)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.<init>(DocumentPropertyValue.java:282)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.createValid(DocumentPropertyValue.java:551)
        at de.smartics.projectdoc.atlassian.confluence.document.DocumentPropertyValue.createValid(DocumentPropertyValue.java:532)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:223)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:298)
        at de.smartics.projectdoc.atlassian.confluence.document.ProjectdocDocument.put(ProjectdocDocument.java:286)
        at de.smartics.projectdoc.atlassian.confluence.query.PropertiesDocumentCreator.fakeDocument(PropertiesDocumentCreator.java:229)
        at de.smartics.projectdoc.atlassian.confluence.query.PropertiesDocumentCreator.fetchRenderFromBodyOrFake(PropertiesDocumentCreator.java:216)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.providePropertiesDocument(AbstractDocumentPropertiesMacro.java:279)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.licensedExecute(AbstractDocumentPropertiesMacro.java:202)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.DocumentPropertiesMarkerMacro.licensedExecute(DocumentPropertiesMarkerMacro.java:89)
        at de.smartics.projectdoc.atlassian.confluence.util.LicenseMacro.executeMacro(LicenseMacro.java:225)
        at de.smartics.projectdoc.atlassian.confluence.util.LicenseMacro.execute(LicenseMacro.java:148)
        at de.smartics.projectdoc.atlassian.confluence.macros.document.AbstractDocumentPropertiesMacro.execute(AbstractDocumentPropertiesMacro.java:152) 

We need to update the code of the projectdoc Toolbox to be compatible to version 1.9.2 and 1.14.3 of JSoup.

We should also remove the CDATA workaround due to JSoup issue 406, since this issue is fixed in 1.11.3.

We also need to fix issues where we construct body-based HTML fragments instead of HTML documents. This seems to be valid in 1.9.2, but not in 1.14.3.

PDAC-1641 JSoup internal API Improvement Blocker (migrated)

The use of StringUtil of JSoup is considered internal API. Since in version 1.14.3 the class is in a different package than in 1.9.2, the projectdoc Toolbox has runtime issues.

This issues have been introduced when Confluence updated the JSoup library with a bugfix update.

We need to remove the dependencies to JSoup internal API.

Resources

Release Notes for the projectdoc Toolbox
Relevant information on changes to the projectdoc Toolbox for Confluence introduces by new versions of this app.
Glossary
Terms used in and defined for projectdoc.
FAQs
Questions and answers related to the projectdoc Toolbox and Confluence.