自動化ルールを実行するときの ClassCastException
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
競合する自動化アドオン (「アプリ」) をインストールすると、自動化アクションが実行されません。
診断
自動化ルールが実行されず、次の例外が UI に表示され、atlassian-jira.log ファイルにも記録されることがあります。次の例では、「ScriptRunner」が自動化コンポーネントとしてリストされていますが、他のサードパーティ プラグインでもかまいません。
UI
1
java.lang.ClassCastException: class com.onresolve.scriptrunner.automation.ExecuteScriptIssueActionV2 cannot be cast to class com.codebarrel.automation.api.thirdparty.AutomationRuleComponent
ログ ファイル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2022-08-29 16:25:34,906+0000 automation-rule-executor:thread-6 ERROR whispy [c.c.a.api.service.ComponentChainImpl] Unexpected runtime error executing component for config 'ComponentConfigBean{id='144', component=ACTION, parentId='null', conditionParentId='null', schemaVersion=1, type='jira.issue.comment', value=CommentActionConfig{comment='SNIP', publicComment=false, commentVisibility=null, sendNotifications=true, addCommentOnce=true, useLegacyRendering=false}, conditions=[], children=[], optimisedIds=[]}':
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.ClassCastException: class com.onresolve.scriptrunner.automation.ExecuteScriptIssueActionV2 cannot be cast to class com.codebarrel.automation.api.thirdparty.AutomationRuleComponent (com.onresolve.scriptrunner.automation.ExecuteScriptIssueActionV2 is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @6609a68e; com.codebarrel.automation.api.thirdparty.AutomationRuleComponent is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @101af670)
at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:92)
at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory.getContextProviders(JiraTemplateRendererContextProviderFactory.java:98)
at com.codebarrel.automation.rulecomponent.jira.common.renderer.IssueInputSubstitutionRenderer.compile(IssueInputSubstitutionRenderer.java:153)
at com.codebarrel.automation.rulecomponent.jira.common.renderer.LegacySwitchingRendererImpl.compile(LegacySwitchingRendererImpl.java:32)
at com.codebarrel.automation.rulecomponent.jira.action.comment.CommentActionExecutor.executeWithIssues(CommentActionExecutor.java:67)
at com.codebarrel.automation.api.component.executor.IssueRequiredExecutor.execute(IssueRequiredExecutor.java:34)
at com.codebarrel.automation.api.component.executor.IssueRequiredExecutor.execute(IssueRequiredExecutor.java:17)
at com.codebarrel.automation.api.service.ComponentChainImpl.doExecute(ComponentChainImpl.java:75)
at com.codebarrel.automation.api.service.SingleRuleExecutorServiceImpl.execute(SingleRuleExecutorServiceImpl.java:228)
at com.codebarrel.jira.plugin.automation.queue.JiraAutomationQueueExecutor.lambda$null$3(JiraAutomationQueueExecutor.java:268)
at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.lambda$executeAs$0(JiraThreadLocalExecutor.java:37)
at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAsWithResult(JiraThreadLocalExecutor.java:67)
at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAsWithResult(JiraThreadLocalExecutor.java:53)
at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAs(JiraThreadLocalExecutor.java:36)
at com.codebarrel.jira.plugin.automation.queue.JiraAutomationQueueExecutor.lambda$processClaimedItem$4(JiraAutomationQueueExecutor.java:268)
at com.atlassian.jira.util.concurrent.BoundedExecutor$1.run(BoundedExecutor.java:50)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassCastException: class com.onresolve.scriptrunner.automation.ExecuteScriptIssueActionV2 cannot be cast to class com.codebarrel.automation.api.thirdparty.AutomationRuleComponent (com.onresolve.scriptrunner.automation.ExecuteScriptIssueActionV2 is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @6609a68e; com.codebarrel.automation.api.thirdparty.AutomationRuleComponent is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @101af670)
at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleDescriptor.getModule(ThirdPartyComponentModuleDescriptor.java:51)
<SNIP>
原因
同じクラスに登録されている複数の自動化アプリがあります。これにより、Automation for Jira アドオンがサードパーティ自動化コンポーネントと対話する機能が無効になります。
Automation for Jira スタイルのアプリを複数インストールすることはお勧めしません。
ソリューション
Automation for Jira をインストールしてライセンスを取得していて、他のプラグインは必要ない場合は、次のプラグインがインストールされていれば削除してください。
Automation Lite for Jira
自動化モジュール
Jira 自動化 SPI
Automation Lite for Jira をインストールしてライセンスを取得していて、他のプラグインは必要ない場合は、次のプラグインがインストールされていれば削除してください。
Automation for Jira
自動化モジュール
Jira 自動化 SPI
プラグインを削除するには、次の手順に従います。
Jira の右上隅にある Jira 管理用の歯車アイコンをクリックします。
[アプリを管理] を選択します。
ドロップダウン リストから [すべてのアプリ] を選択します。
リストから削除するアプリを探して、[アンインストール] をクリックします。
すべてのプラグインを削除したら、正しい自動化プラグインを再登録するために、すべてのノードで Jira サービスを再起動する必要がある場合があります。
この内容はお役に立ちましたか?