If you install one branch source (such as github-branch-source; plus workflow-multibranch), then later dynamically install a second one (such as cloudbees-bitbucket-branch-source), you get an error:
... hudson.ExtensionList fireOnChangeListeners
SEVERE: Error firing ExtensionListListener.onChange().
java.lang.UnsupportedOperationException
at hudson.util.Iterators$5.remove(Iterators.java:299)
at hudson.util.AdaptedIterator.remove(AdaptedIterator.java:60)
at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
at jenkins.branch.CustomOrganizationFolderDescriptor.doAddSpecificDescriptors(CustomOrganizationFolderDescriptor.java:153)
at jenkins.branch.CustomOrganizationFolderDescriptor.access$100(CustomOrganizationFolderDescriptor.java:53)
at jenkins.branch.CustomOrganizationFolderDescriptor$ListenerImpl.onChange(CustomOrganizationFolderDescriptor.java:138)
at ...
Apparently ExtensionList supports remove but not removeAll.