Adding a field to a Screen tab throws java.lang.IndexOutOfBoundsException
Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.
An error is thrown in JIRA UI when trying to add a field to a Screen tab.
The JIRA Server was contacted but has returned an error response. We are unsure of the result of this operation.
The following appears in the atlassian-jira
2018-03-19 06:32:34,156 http-nio-18080-exec-22 ERROR USER 392x329039x5 USERA 10.207.101.159 /rest/api/2/screens/2/tabs/31307/fields [c.a.j.rest.exception.ExceptionInterceptor] Returning internal server error in response java.lang.reflect.InvocationTargetException ....... Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 at java.util.ArrayList.rangeCheck(ArrayList.java:653) at java.util.ArrayList.get(ArrayList.java:429) at com.atlassian.jira.issue.fields.screen.FieldScreenImpl.getTab(FieldScreenImpl.java:87) at com.atlassian.jira.action.screen.AddFieldToScreenUtilImpl.getTab(AddFieldToScreenUtilImpl.java:114) at com.atlassian.jira.action.screen.AddFieldToScreenUtilImpl.validate(AddFieldToScreenUtilImpl.java:49) at com.atlassian.jira.rest.v2.issue.ScreensResource.addField(ScreensResource.java:415) ... 267 more
It appears that the ArrayList return was missing the Tab for the affected Screen in which the user tries to add a field into. Gathering the below SQL result might provide further insights into what happened.
SELECT * FROM fieldscreentab INNER JOIN fieldscreen ON (fieldscreentab.FIELDSCREEN = fieldscreen.ID) WHERE fieldscreen.NAME = '<AffectedScreen>';
Replace <AffectedField> with the correct affected field name.
The cause is unclear at this point to why the Tab of the affected Screen is missing from the list.
A workaround that can be done via the UI is to follow the following Steps:
- Create a new tab
- Add a field to this new tab
- Drag and drop the field from new tab to the affected tab
This should resolve the error, adding new fields to the affected tab after doing the above will work.