From 2771d233075e33337cde9910dc7b3f2595ff2472 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Wed, 23 Oct 2013 14:39:52 -0400 Subject: [PATCH] ExtensionList.remove was unconditionally returning true, against Collection contract. --- core/src/main/java/hudson/ExtensionList.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/ExtensionList.java b/core/src/main/java/hudson/ExtensionList.java index e1a5ca9682..0d1d8f2d7f 100644 --- a/core/src/main/java/hudson/ExtensionList.java +++ b/core/src/main/java/hudson/ExtensionList.java @@ -176,23 +176,23 @@ public class ExtensionList extends AbstractList { @Override public synchronized boolean remove(Object o) { - removeComponent(legacyInstances,o); + boolean removed = removeComponent(legacyInstances, o); if(extensions!=null) { List> r = new ArrayList>(extensions); - removeComponent(r,o); + removed |= removeComponent(r,o); extensions = sort(r); } - return true; + return removed; } - private void removeComponent(Collection> collection, Object t) { + private boolean removeComponent(Collection> collection, Object t) { for (Iterator> itr = collection.iterator(); itr.hasNext();) { ExtensionComponent c = itr.next(); if (c.getInstance().equals(t)) { - collection.remove(c); - return; + return collection.remove(c); } } + return false; } @Override -- GitLab