204 views

Description

Performing a global text search with the new global search interface does not return any results for a table if that table's text_search list view, or default view if text_search is not available, contains duplicate columns.

For example, the incident table text_search list view contains duplicate Category fields on the list with same position. If a global search is performed it does not return any results for incident table even if records are found.

Steps to Reproduce

The cause is due to duplicate fields on the list view of a table, but trying to manually configure it as such would not lead to the issue being reproducible. Something causes the list view to have duplicate fields in the first place.

These errors are observed:

2017-07-10 08:09:47 (535) Default-thread-4 93F98E7EDB7FBE00822CFB051D96191B SEVERE *** ERROR *** Exception thrown while searching for :image
java.lang.IllegalStateException: Duplicate key com.glide.globalsearch.tables.SearchFieldData@177a57b
at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)
at java.util.HashMap.merge(HashMap.java:1253)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at com.glide.globalsearch.tables.TableSearchRecord.<init>(TableSearchRecord.java:34)
at com.glide.globalsearch.tables.TableSearchResult.<init>(TableSearchResult.java:43)
at com.glide.globalsearch.GroupSearchProvider.attachSearchResults(GroupSearchProvider.java:67)
at com.glide.globalsearch.GroupSearchProvider.searchGroups(GroupSearchProvider.java:38)
at com.glide.globalsearch.GlobalSearchService.searchGroupsForText(GlobalSearchService.java:90)
at com.glide.globalsearch.GlobalSearchService.searchGroupsForText(GlobalSearchService.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.glide.rest.handler.impl.ServiceHandlerImpl.invokeService(ServiceHandlerImpl.java:43)
at com.glide.rest.processors.RESTAPIProcessor.process(RESTAPIProcessor.java:228)
at com.glide.processors.AProcessor.runProcessor(AProcessor.java:474)
at com.glide.processors.AProcessor.processTransaction(AProcessor.java:199)
at com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:178)
at com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:167)
at com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:31)
at com.glide.sys.Transaction.run(Transaction.java:2035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

2017-07-10 08:09:47 (537) Default-thread-4 93F98E7EDB7FBE00822CFB051D96191B SEVERE *** ERROR *** SearchError
com.glide.rest.domain.ServiceException: SearchError
at com.glide.globalsearch.GlobalSearchService.searchGroupsForText(GlobalSearchService.java:94)
at com.glide.globalsearch.GlobalSearchService.searchGroupsForText(GlobalSearchService.java:71)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.glide.rest.handler.impl.ServiceHandlerImpl.invokeService(ServiceHandlerImpl.java:43)
at com.glide.rest.processors.RESTAPIProcessor.process(RESTAPIProcessor.java:228)
at com.glide.processors.AProcessor.runProcessor(AProcessor.java:474)
at com.glide.processors.AProcessor.processTransaction(AProcessor.java:199)
at com.glide.processors.ProcessorRegistry.process0(ProcessorRegistry.java:178)
at com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:167)
at com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:31)
at com.glide.sys.Transaction.run(Transaction.java:2035)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)

 

Workaround

Either clean up the duplicate columns from the list views being used or revert back to the old Global Search via the glide.ui.use_legacy_global_search system property.

  1. Create the system property glide.ui.use_legacy_global_search.

    For more information, see the product documentation topic Add system properties.

  2. Set the type to True | False.

  3. Set the value to True.


Related Problem: PRB1089641

Seen In

There is no data to report.

Fixed In

Kingston

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2018-06-20 22:44:43
Published:2017-12-15