There are 2 updates, 1 comment.
 
 
Release Notes Application / cid:jira-generated-image-avatar-bc16fa46-4cee-4936-9ff3-8feef26b1005 RN-116 Open

A filter value whose comparison operator is preceded by a space is read as a pattern

 
View issue   ยท   Add comment
 

2 updates

 
cid:jira-generated-image-avatar-15529b83-4ceb-4d7d-9e17-32b4eea3b4e8 Changes by Vincent Massol on 09/Sep/26 15:41
 
Attachment: rn116-after.png
Attachment: rn116-before.png
 
 

1 comment

 
cid:jira-generated-image-avatar-15529b83-4ceb-4d7d-9e17-32b4eea3b4e8 Vincent Massol on 09/Sep/26 15:42
 

Reproduced and fixed on a real wiki.

The same custom report, the same URL, the same data โ€“ only the application-releasenotes-api jar differs:

/xwiki/bin/view/ReleaseNotes/Code/Report?action=report&products=VersionProduct&versions=9.0, >=10.0

The product has one change stored against 9.0 ("A nine change") and one against 10.0 ("A ten change").

  • Before (45381_rn116-before.png) โ€“ only "A nine change". The value " >=10.0" was read as a like pattern of the text ">=10.0", which matches no version, so the second half of the filter silently contributed nothing.
  • After (45382_rn116-after.png) โ€“ both changes, which is what the same filter written "9.0,>=10.0" has always returned.

The control confirms nothing else moved: the space-free spelling "9.0,>=10.0" renders exactly the same page before and after the fix.

The fix trims each value of a filter before looking for the operator it is prefixed with, instead of only after. DefaultChangeQueryParserTest gains a parameterized case per spelling (" >=9.0", ">= 9.0", " >= 9.0", " = 10.0", " 9.0"), and asserts the operator on its own because a pattern of a comparison and the comparison itself are written the same way, so a failure comparing whole filters is unreadable.

Full build green with -Pquality: 130 -api + 37 -rest + 121 -ui tests, 0 Checkstyle violations. GetChangesMacroPageTest, the frozen-contract oracle, is unchanged at 35/35.