Issue screen displays error rendering greenhopper-epics-issue-web-panel in Jira server
Symptoms
While accessing only specific issues the following message appears on the screen:
Error rendering 'com.pyxis.greenhopper.jira:greenhopper-epics-issue-web-panel'. Please contact your JIRA administrators.
The following appears in the atlassian-jira.log
:
2013-10-29 18:11:36,513 TP-Processor2 ERROR admin 1091x126502x1 1uiw3e3 127.0.0.1 /browse/TST-4 [jira.web.component.ModuleWebComponentImpl] An exception occured while rendering the web panel:
com.pyxis.greenhopper.jira:greenhopper-epics-issue-web-panel (null)java.lang.IllegalArgumentException: The validated object is null
Diagnosis
The following SQL query will search for any invalid epic links in your instance of JIRA:
SELECT * FROM issuelink il
WHERE il.LINKTYPE =
( SELECT id FROM issuelinktype WHERE linkname = 'Epic-Story Link')
AND
(
il.destination IS NULL
OR il.SOURCE IS NULL
OR not exists (SELECT null FROM jiraissue ji where ji.id = il.destination)
OR not exists (SELECT null FROM jiraissue ji where ji.id = il.source)
);
If the query above returns any results, proceed to the Resolution to remove the invalid epic links.
Cause
One or more entries for Epic links within the database are invalid/corrupted.
This situation is usually seen when having Transition Post Functions that update values. Plugins like "JIRA Suite Utilities" provide additional functionality that it may fail depending on conditions when they are executed. For example, adding an Epic Link to an Epic. This will exit the Creation process and leave an inconsistency on issues. Make sure the "Creates the issue originally." Post Function is first in the Create transition.
Resolution
Follow the instructions from Using the database integrity checker:
Through the database:
- Shutdown JIRA;
- Create a database backup;
Execute the following query to remove the corrupt entry:
delete from issuelink il WHERE il.LINKTYPE in ( SELECT id FROM issuelinktype WHERE linkname = 'Epic-Story Link') AND ( il.destination IS NULL OR il.SOURCE IS NULL OR not exists (SELECT null FROM jiraissue ji where ji.id = il.destination) OR not exists (SELECT null FROM jiraissue ji where ji.id = il.source) );
If the SELECT query from Diagnosis taking too long, the DELETE query can be replaced with the correct ID returned from the SELECT query as alternative.
Restart JIRA.