我試圖用我正在寫的Trigger插件將參數添加到作業中。這裏的罪行代碼:Jenkins:addOrReplaceAction()拋出奇怪的異常
job.addOrReplaceAction(new ParametersAction(new StringParameterValue("repoAction", "testan", "test")));
Maven編譯和生成的插件完全沒問題。然而,一旦觸發被激活時,會拋出異常:
java.lang.UnsupportedOperationException在 java.util.Collections中的$ UnmodifiableCollection.removeAll(Collections.java:1068) 在hudson.model.Actionable。 addOrReplaceAction(Actionable.java:206) 在插件包 .GitHubRepoTrigger.run(GitHubRepoTrigger.java:38)
...
我花了潛入詹金斯的Actio nable類源代碼,並指出addOrReplaceAction()
函數使用調用收集方法removeAll()
的List<Action>
集合。當我再通過Java的文檔看着這種功能,它指出:
如果java.lang.UnsupportedOperationException RemoveAll方法不受此集合
支持這一點上,我完全失去了,爲什麼這個問題正在發生。詹金斯有什麼不對嗎?或者,我的理解是添加和修改構建參數只是錯誤的?
通常情況下,會發生這種情況是因爲創建鏈中某處已創建了不可變列表。我會嘗試手動創建一個列表並添加ParametersAction,看看是否更好。 –
Compass