Filter-based gadgets showing internal server error
Symptoms
Gadgets that rely on filters are showing Internal Server Errors in the dashboard.
The following appears in the atlassian-jira.log
:
2014-04-10 12:16:29,869 http-443-31 ERROR xxx xxx xxx /secure/IssueNavigator.jspa [webwork.util.ValueStack] METHOD: "shown", exception:
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Passed List had more than one value.
at com.google.common.cache.CustomConcurrentHashMap$ComputedUncheckedException.get(CustomConcurrentHashMap.java:3305)
at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3441)
...
Caused by: java.lang.IllegalArgumentException: Passed List had more than one value.
at org.ofbiz.core.entity.EntityUtil.getOnly(EntityUtil.java:62)
at com.atlassian.jira.issue.fields.layout.field.AbstractFieldLayoutManager.loadFieldLayout(AbstractFieldLayoutManager.java:359)
at com.atlassian.jira.issue.fields.layout.field.AbstractFieldLayoutManager.access$000(AbstractFieldLayoutManager.java:42)
....
2014-04-10 12:52:20,895 http-443-37 ERROR xxx xxx xxx /secure/IssueNavigator.jspa [webwork.util.ValueStack] METHOD: "searcherEditHtml", exception:
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Passed List had more than one value.
at com.google.common.cache.CustomConcurrentHashMap$ComputedUncheckedException.get(CustomConcurrentHashMap.java:3305)
at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3441)
...
Caused by: java.lang.IllegalArgumentException: Passed List had more than one value.
at org.ofbiz.core.entity.EntityUtil.getOnly(EntityUtil.java:62)
at com.atlassian.jira.issue.fields.layout.field.AbstractFieldLayoutManager.loadFieldLayout(AbstractFieldLayoutManager.java:359)
at com.atlassian.jira.issue.fields.layout.field.AbstractFieldLayoutManager.access$000(AbstractFieldLayoutManager.java:42)
Cause
There are duplicated default Field Configurations. Run the following SQL query:
SELECT * FROM fieldlayout;
The duplicated values can be seen in the database, with two rows having the Default Field Configuration name and layout_type of default:
Resolution
- Delete the unused Default Field Configuration. This is usually the one that is created after the first one, so in the above screenshot, it is the Field Configuration with ID = 11212.
You can also check which of the default field configurations are currently being used by running the following SQL query:
SELECT * FROM fieldlayoutschemeentity WHERE FIELDLAYOUT = 11212;
If it does not return any rows, then the field configuration is not currently being associated to any field configuration schemes, and is safe for deletion.
Delete it from the database with the following command:
DELETE FROM fieldlayout WHERE ID = 11212; DELETE FROM fieldlayoutitem WHERE FIELDLAYOUT = 11212;
Warning
Always ensure that you have a database backup before performing any SQL queries that modify data.