自動化ルールを実行するときの 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

プラグインを削除するには、次の手順に従います。

  1. Jira の右上隅にある Jira 管理用の歯車アイコンをクリックします。

  2. [アプリを管理] を選択します。

  3. ドロップダウン リストから [すべてのアプリ] を選択します。

  4. リストから削除するアプリを探して、[アンインストール] をクリックします。

  5. すべてのプラグインを削除したら、正しい自動化プラグインを再登録するために、すべてのノードで Jira サービスを再起動する必要がある場合があります。

更新日時: 2024 年 6 月 5 日

さらにヘルプが必要ですか?

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