diff options
3 files changed, 7 insertions, 3 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/RegistryAccountManager.java b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/RegistryAccountManager.java index 602a037f20..5da02d77de 100644 --- a/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/RegistryAccountManager.java +++ b/containers/org.eclipse.linuxtools.docker.core/src/org/eclipse/linuxtools/internal/docker/core/RegistryAccountManager.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.linuxtools.internal.docker.core; +import java.util.Collections; import java.util.List; import org.eclipse.linuxtools.docker.core.IRegistryAccount; @@ -65,7 +66,7 @@ public class RegistryAccountManager { if (this.registryAccounts == null) { this.registryAccounts = storageManager.getAccounts(); } - return this.registryAccounts; + return Collections.unmodifiableList(this.registryAccounts); } public IRegistryAccount getAccount(final String serverAddress, diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/preferences/DockerRegistryAccountPreferencePage.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/preferences/DockerRegistryAccountPreferencePage.java index 2bac7d5b95..3973046ddd 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/preferences/DockerRegistryAccountPreferencePage.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/preferences/DockerRegistryAccountPreferencePage.java @@ -261,8 +261,9 @@ public class DockerRegistryAccountPreferencePage extends PreferencePage */ @Override public void init(IWorkbench workbench) { - // reinit passwords list - passwords = RegistryAccountManager.getInstance().getAccounts(); + // get a local copy of the accounts + passwords = new ArrayList<>( + RegistryAccountManager.getInstance().getAccounts()); // refresh password table if (pwdTableViewer != null) { diff --git a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/ImagePullPushPage.java b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/ImagePullPushPage.java index e3f61c628f..e4cd47bb18 100644 --- a/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/ImagePullPushPage.java +++ b/containers/org.eclipse.linuxtools.docker.ui/src/org/eclipse/linuxtools/internal/docker/ui/wizards/ImagePullPushPage.java @@ -151,6 +151,8 @@ public abstract class ImagePullPushPage<M extends ImagePullPushPageModel> * daemon. */ protected List<IRegistry> getRegistryAccounts() { + // get a local copy an insert an entry at the first position for Docker + // Hub with no credentials final List<IRegistry> accounts = new ArrayList<>( RegistryAccountManager.getInstance().getAccounts()); accounts.add(0, new RegistryInfo(DOCKER_DAEMON_DEFAULT, true)); |