Bugfix
(User-visible)
Background
The full text search sorts found objects by label
Problem
In the QuickSearchCommand::sortResult() function, objects are sorted by their label. If an object has no label (null), this produces a NullPointerEx:
Caused by: java.lang.NullPointerException at java.base/java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469) at java.base/java.util.TimSort.binarySort(TimSort.java:296) at java.base/java.util.TimSort.sort(TimSort.java:239) at java.base/java.util.Arrays.sort(Arrays.java:1515) at java.base/java.util.ArrayList.sort(ArrayList.java:1750) at java.base/java.util.Collections.sort(Collections.java:179) at com.top_logic.element.layout.meta.search.quick.QuickSearchCommand.sortResult(QuickSearchCommand.java:411) at com.top_logic.element.layout.meta.search.quick.AbstractSearchCommand.convertSearchResultSet(AbstractSearchCommand.java:365) at com.top_logic.element.layout.meta.search.quick.AbstractSearchCommand.search(AbstractSearchCommand.java:230) at com.top_logic.element.layout.meta.search.quick.AbstractSearchCommand.executeCommand(AbstractSearchCommand.java:190) at com.top_logic.element.layout.meta.search.quick.QuickSearchView$1.handleKeyEvent(QuickSearchView.java:153) at com.top_logic.layout.form.model.AbstractFormField.dispatchKeyEvent(AbstractFormField.java:712) at com.top_logic.layout.form.control.AbstractFormFieldControlBase.dispatchKeyEvent(AbstractFormFieldControlBase.java:103) at com.top_logic.layout.basic.KeyCodeHandler.execute(KeyCodeHandler.java:84) at com.top_logic.layout.basic.AbstractControlBase.executeCommand(AbstractControlBase.java:787) at com.top_logic.layout.basic.component.ControlSupport.executeCommand(ControlSupport.java:189) at com.top_logic.layout.basic.component.ControlComponent$DispatchAction.handleCommand(ControlComponent.java:210) at com.top_logic.tool.boundsec.CommandHandlerUtil.handleCommand(CommandHandlerUtil.java:27) at com.top_logic.mig.html.layout.LayoutComponent.dispatchCommand(LayoutComponent.java:2442) at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:427)
Solution
The LabelComparator is used for sorting. This is null-fixed and additionally sorts with respect to the user's locale.
Test
No test.