An empty name custom field breaks Lucene index

XMLWordPrintable

    • 7.13
    • Severity 2 - Major

      Summary

      Trying to import data into JIRA that contains a custom field with no name (i.e. "") fails with an exception.

      Steps to Reproduce

      1. Create any customfield with name 'xxxx'.
      2. Rename said customfield with a white space character ' '.
      3. Re-index Jira

      Expected Results

      Jira should not allow field to be renamed with white space character only.

      Actual Results

      Jira allow the field to be renamed with white space character and break Lucene index.

      com.atlassian.jira.util.dbc.Assertions$BlankStringArgumentException: names[0] should not be empty!
              at com.atlassian.jira.util.dbc.Assertions.containsNoBlanks(Assertions.java:112)
              at com.atlassian.jira.issue.search.ClauseNames.<init>(ClauseNames.java:42)
              at com.atlassian.jira.issue.search.ClauseNames.<init>(ClauseNames.java:36)
              at com.atlassian.jira.issue.search.ClauseNames.forCustomField(ClauseNames.java:71)
              at com.atlassian.jira.issue.fields.CustomFieldImpl.getClauseNames(CustomFieldImpl.java:281)
              at com.atlassian.jira.issue.customfields.searchers.TextSearcher.init(TextSearcher.java:62)
              at com.atlassian.jira.issue.customfields.searchers.TextSearcher.init(TextSearcher.java:33)
              at com.atlassian.jira.issue.fields.CustomFieldImpl.getCustomFieldSearcher(CustomFieldImpl.java:1502)
              at com.atlassian.jira.issue.fields.CustomFieldImpl.createAssociatedSearchHandler(CustomFieldImpl.java:615)
              at com.atlassian.jira.issue.search.managers.DefaultSearchHandlerManager$SearchHandlerIndexer.indexSearchableField(DefaultSearchHandlerManager.java:448)
              at com.atlassian.jira.issue.search.managers.DefaultSearchHandlerManager$SearchHandlerIndexer.indexCustomField(DefaultSearchHandlerManager.java:435)
              at com.atlassian.jira.issue.search.managers.DefaultSearchHandlerManager.getHelper(DefaultSearchHandlerManager.java:235)
              at com.atlassian.jira.issue.search.managers.DefaultSearchHandlerManager.getAllSearchers(DefaultSearchHandlerManager.java:202)
              at com.atlassian.jira.issue.search.managers.DefaultIssueSearcherManager.getAllSearchers(DefaultIssueSearcherManager.java:27)
              at com.atlassian.jira.issue.index.managers.FieldIndexerManagerImpl.init(FieldIndexerManagerImpl.java:68)
              at com.atlassian.jira.issue.index.managers.FieldIndexerManagerImpl.<init>(FieldIndexerManagerImpl.java:51)
      

      Workaround

      Perform the workaround in the instance that has the problematic data in it.

      1. Identify the problem record with the below SQL:
        select * from customfield where cfname is null or cfname = '';
        
      2. Navigate to Administration > Custom Field and find the empty name custom field.
      3. Rename the field with at least one non white space character
      4. Attempt a reindex.

            Assignee:
            Unassigned
            Reporter:
            vkharisma
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: