有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jenkins:addorreplacement()引发奇怪的异常

我试图用我正在编写的触发器插件向作业中添加参数。这是一行有罪的代码:

job.addOrReplaceAction(new ParametersAction(new StringParameterValue("repoAction", "testan", "test")));

Maven编译和构建插件非常好。但是,一旦激活触发器,就会引发异常:

java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.removeAll(Collections.java:1068) at hudson.model.Actionable.addOrReplaceAction(Actionable.java:206) at plugin package.GitHubRepoTrigger.run(GitHubRepoTrigger.java:38)

...

我深入研究了Jenkins Actionable类的源代码,并注意到addOrReplaceAction()函数使用了一个List<Action>集合,它调用了集合方法removeAll()。然后,当我浏览Java关于此函数的文档时,它注意到:

java.lang.UnsupportedOperationException if the removeAll method is not supported by this collection

到目前为止,我完全不明白为什么会发生这个问题。詹金斯真的有什么问题吗?还是我对添加和修改构建参数的理解完全错误


共 (1) 个答案

  1. # 1 楼答案

    Jenkins写道,函数可能会导致意外的结果:

    concurrent calls to any of the mutation methods may produce surprising results

    java docs