Error 500 when editing issue type to fix missed issue type icon

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

要約

Certain issue types are missing the icons.

Editing them from the UI gives error 500.


診断

Relevant stack trace:

2021-06-02 16:59:59,709-0700 http-nio-8080-exec-1 ERROR xxxxx 1019x4833664x1  /secure/admin/EditIssueType!default.jspa [o.a.c.c.C.[Catalina].[localhost].[/]] Unhandled exception occurred whilst decorating page
com.google.template.soy.tofu.SoyTofuException: When evaluating "$issueType.iconUrlContent": Failed to invoke accessor getIconUrlContent on instance of class com.atlassian.jira.web.action.admin.issuetypes.EditIssueType$IssueTypeViewData
	at JIRA.Templates.IssueType.form(issueType.soy:78)
	at JIRA.Templates.IssueType.editIssueType(issueType.soy:25)
	at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:369)
	at com.google.template.soy.tofu.internal.BaseTofu.renderMain(BaseTofu.java:322)
	at com.google.template.soy.tofu.internal.BaseTofu.access$100(BaseTofu.java:66)
	at com.google.template.soy.tofu.internal.BaseTofu$RendererImpl.render(BaseTofu.java:476)
	at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:154)
	at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:45)
	at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:39)
	... 5 filtered
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	... 48 filtered
	at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
	... 4 filtered
	at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:56)
	... 7 filtered
	at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
	... 4 filtered
	at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
	... 3 filtered
	at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 48 filtered
	at com.bigbrassband.jira.git.action.GitThreadCacheDestroyFilter.doFilter(GitThreadCacheDestroyFilter.java:35)
	... 3 filtered
	at com.atlassian.plugins.slack.analytics.SlackAnalyticsFilter.doFilter(SlackAnalyticsFilter.java:35)
	... 3 filtered
	at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
	... 21 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
	... 1 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
	... 39 filtered
	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
	... 5 filtered
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:215)
	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:206)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:134)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:123)
	... 4 filtered
	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 4 filtered
	at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
	... 3 filtered
	at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
	... 29 filtered
	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
	... 25 filtered
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.google.template.soy.sharedpasses.render.RenderException: When evaluating "$issueType.iconUrlContent": Failed to invoke accessor getIconUrlContent on instance of class com.atlassian.jira.web.action.admin.issuetypes.EditIssueType$IssueTypeViewData


Diagnostic Steps

This type of error usually happens because of missing or incorrect data from the database or inside the Avatar's folder.

In order to check the data, collect:
1. Identify which is the avatar used by this Issue type, running the query:

SELECT * FROM issuetype;


The query will return multiple rows. In our sample, the missed icons are for Issue type "Service Request" (id=10301) and "Problem" (id=10300):

IDsequencepnamepstyledescriptioniconurlアバター
10301Service Request

Created by Jira Service Desk.

10304問題

Track underlying causes of incidents. Created by Jira Service Desk.
11704
10300インシデント

For system outages or incidents. Created by Jira Service Desk.

10215Risk/Concern

Risk and issues/concerns/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype10308

ここで:

"id" is the issue type id

"avatar" is the avatar id


2. Check if there is an avatar saved for this issuetype, running the query:

select * from avatar where avatartype = 'issuetype';


The query will return multiple rows. Observe if there is any row for the owner 10301 (Service Request) or 10300 (Problem):

IDfilenameCONTENTTYPEavatartypeownersystemavatar
11704xxxxx.pngimage/pngissuetype103040

Where :

"id" is the avatar id 

"owner" is the issuetype id


3. Check if the file mentioned at the column "filename" exists in the avatar's directory
Jira Server: <Jira home directory>/data/avatars
Jira Data Center: <Shared home directory>/data/avatars


ソリューション

As with all recommendations made by Premier Support, we suggest following best practices for change management and evaluating these settings in a test/staging environment prior to rolling out any changes to a production environment. You must test and validate these changes to ensure that they will function well within your infrastructure before considering them for production deployment.
  • Jira を停止します
  • Backup your Database;
  • From the previous query, select one icon to be used as a temporary icon, for instance, the iconurl used by the "Risk/Concern" issue type ('/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype');
  • Run these UPDATE statements to assign an icon URL to the affected issue types (in our sample, 10301 (Service Request) and 10300 (Problem):
UPDATE issuetype SET iconurl= '/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype' WHERE id='10300';
UPDATE issuetype SET iconurl= '/secure/viewavatar?size=xsmall&avatarId=10300&avatarType=issuetype' WHERE id='10301';
  • Start Jira;
  • Navigate to Issues > Issue Types;
  • Click on Edit in any of the affected issues;
  • Select another icon for the Issue Type or browse to find another image.



最終更新日 2021 年 8 月 4 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.