Indexing error when there are percent signs (%) in macros
Activity
Show:
Resolved
Details
Details
Assignee
Reporter
Sprint
None
Labels
Release date
Jan 21, 2024
Requirement Yogi
Linked requirements
Requirement Yogi
Linked requirements
Created January 19, 2024 at 11:07 AM
Updated January 21, 2024 at 10:23 PM
Resolved January 21, 2024 at 10:44 AM
Root cause
We assumed all macros had url-encoded their macro parameters, to pass them in the XML without disruption.
However, only requirement keys are encoded in such a way. We’re decoding the parameters of all macros during the rendering, when none of that is necessary.
Original reason: It was to avoid interference with the way Confluence stores macro parameters. In fact, it wasn’t necessary, according to today’s sources (perhaps it was in Confluence 5.x).
Solution
Instead of decoding all macro parameters, we’ll only decode the requirement keys.
Original description
It seems our macro decoder doesn't handle macro parameters very well, since it produces an exception when encountering strings like "20%, 30%, 40%".
Consequence: It fails the indexation of that requirement or that page.
Source (MacroParser.java:97):
This is false, at least in Confluence 8.6.1, but I’ve certainly introduced it when it was true, so we need to find the origin of this assertion.