Die Ausgangslage
Während Sie im Vorgangsnavigator suchen, erhalten Sie eine ähnliche Nachricht wie: "Ein Fehler ist während der Übertragung diesre Nachricht aufgetreten. Bitte kontaktieren Sie die Administratoren und informieren Sie sie über diesen Bug."
Das folgende erscheint im atlassian-Jira.log:
2013-08-03 16:04:13,960 http-apr-8080-exec-5 ERROR admin 964x14x1 xxxxx 192.168.0.1 /issues/ [velocity] Exception in macro #issues at templates/Jira/issue/table/issuetable-issue.vm[line 3, column 1] 2013-08-03 16:04:13,961 http-apr-8080-exec-5 ERROR admin 964x14x1 xxxxx 192.168.0.1 /issues/ [com.atlassian.velocity.DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: java.lang.NullPointerException java.lang.NullPointerException at com.atlassian.Jira.permission.PermissionContextImpl.getRelevantStepDescriptor(PermissionContextImpl.java:90) at com.atlassian.Jira.permission.WorkflowPermissionFactory.getWorkflowPermissions(WorkflowPermissionFactory.java:30) at com.atlassian.Jira.security.WorkflowBasedPermissionManager.hasPermission(WorkflowBasedPermissionManager.java:75) at com.atlassian.Jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:113) at com.atlassian.Jira.security.AbstractPermissionManager.hasPermission(AbstractPermissionManager.java:142) <+3> at java.lang.reflect.Method.invoke(Unknown Source) at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:81) at com.atlassian.Jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28) at $Proxy80.hasPermission(Unknown Source) .... at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:381) at com.atlassian.velocity.DefaultVelocityManager.getEncodedBody(DefaultVelocityManager.java:67) at com.atlassian.Jira.template.velocity.DefaultVelocityTemplatingEngine$DefaultRenderRequest.asHtml(DefaultVelocityTemplatingEngine.java:104) at com.atlassian.Jira.web.component.AbstractWebComponent.getHtml(AbstractWebComponent.java:35) at com.atlassian.Jira.web.component.IssueTableWebComponent$1.write(IssueTableWebComponent.java:149) at com.atlassian.Jira.web.component.IssueTableWebComponent.getHtml(IssueTableWebComponent.java:81) at com.atlassian.Jira.web.component.IssueTableWebComponent.getHtml(IssueTableWebComponent.java:47) at com.atlassian.Jira.bc.issue.table.DefaultIssueTableService.createIssueTable(DefaultIssueTableService.java:361) at com.atlassian.Jira.bc.issue.table.DefaultIssueTableService.getIssueTable(DefaultIssueTableService.java:262) at com.atlassian.Jira.bc.issue.table.DefaultIssueTableService.getIssueTableFromFilterWithJql(DefaultIssueTableService.java:183) <+3> at java.lang.reflect.Method.invoke(Unknown Source) at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181) at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareInvocationHandler.invoke(MultiTenantComponentFactoryImpl.java:211) at $Proxy395.getIssueTableFromFilterWithJql(Unknown Source) <+3>
Die Ursache
Es gibt ein Arbeitsablauf-Schemata, das mit einem nicht existierenden Arbeitsablauf verknüpft ist.
Die Diagnose
Um das zu bestätigen, führen Sie bitte die folgende SQL-Abfrage (gemacht in PostgreSQL) durch:
select * from workflowschemeentity where workflow not in (select workflowname from Jiraworkflows)
Die Lösung
Erstellen Sie immer ein Backup, bevor Sie irgendwelche Änderungen an Ihrer Datenbank machen. Wenn möglich, versuchen Sie die Modifikationen zuerst auf einem Testserver aus.
Das Arbeitsablauf-Schemata sollte automatisch mit einem gültigen Arbeitsablauf aktualisiert werden, zuerst via UI (wenn möglich), andernfalls muss es in der Datenbank modifiziert werden, ebenso die assoziierten Einträge zum gültigen Arbeitsablauf in den changeitem und os_wfentry Tabellen. Das tun Sie wie folgt:
- Schalten Sie Jira aus
- Führen Sie die Update-Anweisungen aus um den nicht existenten Arbeitsablaufnamen in einen gültigen Arbeitsablauf zu ändern
- Starten Sie Jira neu
- Verwenden Sie die folgenden Update-Anweisungen als Vorlage
UPDATE workflowschemeentity SET workflow = 'valid workflow' WHERE workflow = 'non-existent workflow'; UPDATE changeitem SET newstring = 'valid workflow' WHERE newstring = 'non-existent workflow'; UPDATE os_wfentry SET name = 'valid workflow' WHERE name = 'non-existent workflow';