Uploaded image for project: 'Atlassian Intelligence'
  1. Atlassian Intelligence
  2. AI-428

Duplicate search results cause search to fail

    XMLWordPrintable

Details

    • Severity 3 - Minor

    Description

      Summary

      When searching for a specific keyword an error page appears with this message:

      Oops - an error has occurred
      Cause
      java.lang.IllegalArgumentException: duplicate key: com.atlassian.confluence.search.v2.ProjectedSearchResult@87d75330
          at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
      

      If you run a content index, you will also see the index hang at 99%.

      Environment

      • Confluence 6.0.0-OD-2015.50.1-0003

      Steps to Reproduce

      1. Search for keyword in the Confluence search bar at the top navigation panel or through advanced search.
        OR
      2. Run a content index of the Confluence instance.

      Expected Results

      1. The search populates the results of the keyword search.
        OR
      2. The content index completes to 100%.

      Actual Results

      1. You see the following appear on the search page:
        Oops - an error has occurred
        Stack Trace:[hide]
        java.lang.IllegalArgumentException: duplicate key: com.atlassian.confluence.search.v2.ProjectedSearchResult@87d75330
        	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
        	at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72)
        	at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245)
        	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231)
        	at com.atlassian.confluence.plugins.cql.impl.factory.SearchResultsFactory.buildFrom(SearchResultsFactory.java:166)
        	at com.atlassian.confluence.plugins.cql.impl.DefaultCQLSearchService.search(DefaultCQLSearchService.java:140)
        	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:497)
        	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
        	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
        	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
        	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
        	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
        	at com.sun.proxy.$Proxy844.search(Unknown Source)
        

        OR
        2. The index hangs at 99% and the below exception is thrown in the confluence log file:

        2015-12-10 11:51:11,898 ERROR [Indexer: 1] [atlassian.bonnie.search.BaseDocumentBuilder] lambda$extractWithLuceneExtractors$120 Error extracting search fields from page: PAGE NAME HERE (25329733) using BackwardsCompatibleExtractor wrapping com.atlassian.confluence.search.lucene.LabelExtractor@13003f0 (confluence.extractors.core:labelExtractor): Failed to lazily initialize a collection
        

      Workaround

      A Rebuild the content indexes from scratch in some cases fixes the problem.

      Attachments

        Activity

          People

            Unassigned Unassigned
            rfuerst Rachel Fuerst (Inactive)
            Votes:
            4 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: