Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Abandoned
-
4.0
-
None
-
None
-
Doesn't look environment-specific. Environment was: Roller 4.0, MySQL 5.0, unknown Java version.
-
cnmedia.it
-
MySQL 5.0
Description
This issue was originally reported by Guglielmo Carandente <g.carandente@cnmedia.it>
If you call getMostCommentedWeblogs() with a limit value other than -1, it may not actually return the most commented weblogs.
This getMostCommentedWeblogs() method is exposed as part of the site model and the call goes down to WeblogEntryManager.getMostCommentedWeblogEntries().
The problem results because the query itself does not do any ordering on its result set because (according to a comment near the query definition) of a restriction in JPA QL, yet if you pass a limit value other than -1 the query result set is limited to the specified size. The ordering is then done by sorting the results in the Java code within the method WeblogEntryManager.getMostCommentedWeblogEntries(). So if you limit of the result set, it may not contain the most commented entries. You'll just end up sorting the first n entries returned by the query where n is the value of limit passed.
To work around this bug, you can pass -1 for the length limit and then limit the number of results you actually display in your velocity template.
The performance of this workaround may not be acceptable if you have a large number of blogs on the site.