Defect #30009

Empty sort criteria for issue query gives error

Added by Kumar Abhinav 6 months ago. Updated 6 months ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Go MAEDA% Done:

0%

Category:Issues
Target version:3.4.7
Resolution:Fixed Affected version:

Description

When saving an Issue query,provide the sort criteria like below, i.e leaving the middle one empty.

Save the query.

With the new query loaded,click on apply.

It gives error.

Bug occured on redmine: 3.4.6

sort.PNG (6.54 KB) Kumar Abhinav, 2018-11-22 11:24

0001-Remove-blank-keys-from-sort-criterias.patch Magnifier (1.46 KB) Marius BALTEANU, 2018-11-25 21:35

Associated revisions

Revision 17638
Added by Go MAEDA 6 months ago

Remove blank keys from sort criteria (#30009).

Patch by Marius BALTEANU.

Revision 17639
Added by Go MAEDA 6 months ago

Merged r17638 from trunk to 3.4-stable (#30009).

History

#1 Updated by Go MAEDA 6 months ago

  • Category set to Issues
  • Status changed from New to Needs feedback

I could not reproduce the problem. Can you see any error regarding this problem in log/production.log ?

#2 Updated by Kumar Abhinav 6 months ago

It is reproducible on a clean install of Redmine 3.4.6.
After you save the query,make sure the same query is loaded & click apply.

Since the middle criteria for sort is left empty,the to_param method in Redmine::SortCriteria throws "undefined method `+' for nil:NilClass" error.

#3 Updated by Bernhard Rohloff 6 months ago

I can confirm the defect. It also occurs on the latest trunk.
Switching the query works as expected. As Kumar wrote it only occurs after applying the query a second time.

#4 Updated by Go MAEDA 6 months ago

  • Status changed from Needs feedback to Confirmed

Kumar Abhinav wrote:

After you save the query,make sure the same query is loaded & click apply.

Yes, I didn't click "Apply" after creating the query. Now I can reproduce the problem.

#5 Updated by Marius BALTEANU 6 months ago

Attached a patch that fixes this problem by removing the blank keys from sort criteria.

Another fix is the below one, but I prefer the first solution.

diff --git a/lib/redmine/sort_criteria.rb b/lib/redmine/sort_criteria.rb
index c89ef03c1..acfcbdb0f 100644
--- a/lib/redmine/sort_criteria.rb
+++ b/lib/redmine/sort_criteria.rb
@@ -32,7 +32,7 @@ module Redmine
     end

     def to_param
-      self.collect {|k,o| k + (o == 'desc' ? ':desc' : '')}.join(',')
+      self.collect {|k,o| k + (o == 'desc' ? ':desc' : '') unless k.nil? }.join(',')
     end

     def to_a

Also, maybe it is a good idea to fix this issue also in the UI by not allowing to select a third sort criteria without selecting the second.

#6 Updated by Marius BALTEANU 6 months ago

  • Subject changed from empty sort criteria for issue query gives error to Empty sort criteria for issue query gives error

#7 Updated by Go MAEDA 6 months ago

  • Target version changed from Candidate for next minor release to 3.4.7

#8 Updated by Go MAEDA 6 months ago

  • Status changed from Confirmed to Resolved
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

#9 Updated by Go MAEDA 6 months ago

  • Status changed from Resolved to Closed

Committed the patch. Thank you for the patch.

Also available in: Atom PDF