Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-72078

Regression in the support of array types in issue properties

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Fix
    • Low
    • None
    • 8.0.0, 8.15.0
    • Indexing
    • None

    Description

      Issue Summary

      Jira 7 supported array types in issue properties, but Jira 8 does not.

      See also https://community.developer.atlassian.com/t/indexing-an-array-in-issue-entity-properties-is-broken-on-jira-8/27925.

      Steps to Reproduce

      1. Create an app with index configuration as per snippet A below.
      2. Store issue properties with an array payload as per snippet B.

      Snippet A:

      <index-document-configuration entity-key="IssueProperty" key="our-property">
        <key property-key="our.poperty">
          <extract path="count" type="number" alias="count"/>
          <extract path="ids" type="string" alias="ourId"/>
        </key>
      </index-document-configuration>
      

      Snippet B:

       

      {
        "key": "our.property",
        "value": {
          "count": 2,
          "ids": ["21596993637", "20079236865"]
        }
      }
      

       

       

      Expected Results

      The properties are indexed without error.

      Actual Results

      The property indexing results in the following error:

      2019-03-14 12:37:35,513 http-nio-8080-exec-4 WARN admin 757x8030x1 vnxrua 95.97.91.91,10.0.150.186 /plugins/servlet/xxxxxxxx/api [c.a.jira.index.AccumulatingResultBuilder] DocValuesField "ISSUEPROP_xxxxxxx$id" appears more than once in this document (only one value is allowed per field)                     
      java.lang.IllegalArgumentException: DocValuesField "ISSUEPROP_xxxxxxxx$id" appears more than once in this document (only one value is allowed per field)                                                                                                                                                              
              at org.apache.lucene.index.SortedDocValuesWriter.addValue(SortedDocValuesWriter.java:67)                                                                                                                                                                                                                              
              at org.apache.lucene.index.DefaultIndexingChain.indexDocValue(DefaultIndexingChain.java:550)                                                                                                                                                                                                                          
              at org.apache.lucene.index.DefaultIndexingChain.processField(DefaultIndexingChain.java:466)                                                                                                                                                                                                                           
              at org.apache.lucene.index.DefaultIndexingChain.processDocument(DefaultIndexingChain.java:392)                                                                                                                                                                                                                        
              at org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:240)                                                                                                                                                                                                                 
              at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:497)                                                                                                                                                                                                                                   
              at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1729)                                                                                                                                                                                                                                          
              at com.atlassian.jira.index.WriterWrapper.updateDocuments(WriterWrapper.java:85)                                                                                                                                                                                                                                      
              at com.atlassian.jira.index.Operations$Update.perform(Operations.java:169)                                                                                                                                                                                                                                            
              at com.atlassian.jira.index.Operations$Completion.perform(Operations.java:267)                                                                                                                                                                                                                                        
              at com.atlassian.jira.index.QueueingIndex$CompositeOperation.perform(QueueingIndex.java:187)                                                                                                                                                                                                                          
              at com.atlassian.jira.index.DefaultIndexEngine$FlushPolicy.perform(DefaultIndexEngine.java:76)                                                                                                                                                                                                                        
              at com.atlassian.jira.index.DefaultIndexEngine.write(DefaultIndexEngine.java:138)                                                                                                                                                                                                                                     
              at com.atlassian.jira.index.DefaultIndex.perform(DefaultIndex.java:28)                                                                                                                                                                                                                                                
              at com.atlassian.jira.index.QueueingIndex$Task.perform(QueueingIndex.java:132)                                                                                                                                                                                                                                        
              at com.atlassian.jira.index.QueueingIndex$Task.index(QueueingIndex.java:144)                                                                                                                                                                                                                                          
              at com.atlassian.jira.index.QueueingIndex$Task.run(QueueingIndex.java:111)                                                                                                                                                                                                                                            
              at java.lang.Thread.run(Thread.java:748)
      

      Workaround

      Replace the array with a space string containing the values with spaces to separate them.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dmorrow@atlassian.com Dugald Morrow
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: