Jenkins:addOrReplaceAction()抛出奇怪的异常

时间:2017-06-29 18:23:39

标签: java jenkins

我试图使用我写的Trigger插件为作业添加参数。这是一个有罪的代码行:

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

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

  

java.lang.UnsupportedOperationException at   java.util.Collections中的$ UnmodifiableCollection.removeAll(Collections.java:1068)     在hudson.model.Actionable.addOrReplaceAction(Actionable.java:206)     在插件包 .GitHubRepoTrigger.run(GitHubRepoTrigger.java:38)

     

...

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

  

java.lang.UnsupportedOperationException如果此集合不支持removeAll方法

到目前为止,我完全不知道为什么会出现这个问题。詹金斯真的出了什么问题吗?或者我对添加和修改构建参数的理解是错误的吗?

1 个答案:

答案 0 :(得分:1)

詹金斯写道,这个功能可能会导致意想不到的结果:

  

可能会产生对任何突变方法的并发调用   令人惊讶的结果

请参阅java docs