From 41f5e596c8ca538b0f8502b5957d28ab5a715c35 Mon Sep 17 00:00:00 2001 From: David Dykstal Date: Mon, 9 Oct 2006 21:29:30 +0000 Subject: [PATCH] Bug 160115 - added a check for null config when resolving a proxy. --- .../org/eclipse/rse/model/SystemRegistry.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/model/SystemRegistry.java b/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/model/SystemRegistry.java index 4c9ce5d2173..6a74adb4121 100644 --- a/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/model/SystemRegistry.java +++ b/rse/plugins/org.eclipse.rse.ui/model/org/eclipse/rse/model/SystemRegistry.java @@ -11,7 +11,7 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * {Name} (company) - description of contribution. + * Michael Scharf (WindRiver) - patch for an NPE in getSubSystemConfigurations() ********************************************************************************/ package org.eclipse.rse.model; @@ -1474,24 +1474,27 @@ public class SystemRegistry implements ISystemRegistryUI, ISystemModelChangeEven /** - * Return all subsystem factories. Be careful when you call this, as it activates all - * subsystem factories. + * @return all subsystem configurations. Be careful when you call this, as it activates all + * subsystem factories. */ - public ISubSystemConfiguration[] getSubSystemConfigurations() - { + // fixed Bugzilla Bug 160115 - added non-null guard for config + public ISubSystemConfiguration[] getSubSystemConfigurations() { Vector v = new Vector(); ISubSystemConfigurationProxy[] proxies = getSubSystemConfigurationProxies(); - - if (proxies != null) - { - - for (int idx = 0; idx < proxies.length; idx++) - { - v.add(proxies[idx].getSubSystemConfiguration()); + if (proxies != null) { + for (int idx = 0; idx < proxies.length; idx++) { + ISubSystemConfigurationProxy proxy = proxies[idx]; + ISubSystemConfiguration config = proxy.getSubSystemConfiguration(); + if (config != null) { + v.add(proxies[idx].getSubSystemConfiguration()); + } } } - return (ISubSystemConfiguration[])v.toArray(new ISubSystemConfiguration[v.size()]); + ISubSystemConfiguration[] result = new ISubSystemConfiguration[v.size()]; + v.toArray(result); + return result; } + /** * Return Vector of subsystem factories that apply to a given system connection */