An Empty Custom Field Name causes JIRA 4.0 not to start correctly.

XMLWordPrintable

    • 4
    • 1

      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 an XML backup, and remove the name of a custom field.
      2. Attempt to import it.

      Expected Results

      1. The importer provides an error about the data.

      Actual Results

      The below exception is thrown:

      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. Backup the JIRA instance.
      3. Stop JIRA.
      4. Update the field with the below:
        update customfield set cfname = '<give me a name>' where id = <id from step 1>;
        
      5. Start JIRA.
      6. Attempt a reindex.

      If this proceeds, the data can be exported and then imported into the target instance.

            Assignee:
            Unassigned
            Reporter:
            bain
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: