From dd7e7887a3893105702e1c83285a6e9a9e7012cf Mon Sep 17 00:00:00 2001 From: Uwe Stieber Date: Wed, 21 Feb 2007 15:04:32 +0000 Subject: [PATCH] [fix] [174883] Can not create new connection after a profile is deleted --- .../ui/view/SubSystemConfigurationAdapter.java | 7 +++++++ .../RSEDefaultNewConnectionWizard.java | 16 +++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SubSystemConfigurationAdapter.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SubSystemConfigurationAdapter.java index a772bd9f9bc..2d14fb70e66 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SubSystemConfigurationAdapter.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/view/SubSystemConfigurationAdapter.java @@ -232,7 +232,14 @@ public class SubSystemConfigurationAdapter implements ISubSystemConfigurationAda for (int i = 0; i < propertyPageExtensions.length; i++) { IConfigurationElement configurationElement = propertyPageExtensions[i]; + String objectClass = configurationElement.getAttribute("objectClass"); //$NON-NLS-1$ + // The objectClass attribute is a) deprecated and b) optional. If null, do not + // try to instanciate a class from it as it will lead to a NPE. It is very bad + // style to let throw the exception and catch it with an empty catch block. If + // the debugger is configured to intercept NPE's, we end up always here. + if (objectClass == null) continue; + String name = configurationElement.getAttribute("name"); //$NON-NLS-1$ Class objCls = null; try diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/wizards/newconnection/RSEDefaultNewConnectionWizard.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/wizards/newconnection/RSEDefaultNewConnectionWizard.java index 004229c9b2b..f8b3df177d3 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/wizards/newconnection/RSEDefaultNewConnectionWizard.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/ui/wizards/newconnection/RSEDefaultNewConnectionWizard.java @@ -16,6 +16,7 @@ package org.eclipse.rse.ui.wizards.newconnection; +import java.util.ArrayList; import java.util.Arrays; import java.util.Hashtable; import java.util.List; @@ -26,6 +27,7 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.rse.core.IRSESystemType; +import org.eclipse.rse.core.RSEPreferencesManager; import org.eclipse.rse.core.SystemBasePlugin; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.ISystemNewConnectionWizardPage; @@ -119,7 +121,16 @@ public class RSEDefaultNewConnectionWizard extends RSEAbstractNewConnectionWizar if (mainPage != null && getSystemType() != null) mainPage.setSystemType(getSystemType()); - String defaultProfileName = RSEUIPlugin.getDefault().getSystemRegistry().getSystemProfileManager().getDefaultPrivateSystemProfile().getName(); + // If the team profile is available and active, then we default to the team profile. + // If the team profile is not available or inactive, the default private system profile + // is used (if available). + List profileNames = activeProfileNames != null ? Arrays.asList(activeProfileNames) : new ArrayList(); + + String defaultProfileName = RSEPreferencesManager.getDefaultTeamProfileName(); + if (!profileNames.contains(defaultProfileName)) { + ISystemProfile defaultPrivateProfile = RSEUIPlugin.getDefault().getSystemRegistry().getSystemProfileManager().getDefaultPrivateSystemProfile(); + if (defaultPrivateProfile != null) defaultProfileName = defaultPrivateProfile.getName(); + } mainPage.setProfileNames(activeProfileNames); // if there is no connection currently selected, default the profile to @@ -127,9 +138,8 @@ public class RSEDefaultNewConnectionWizard extends RSEAbstractNewConnectionWizar // 1. the profile the last connection was created in, in this session // 3. the default profile. if (currentlySelectedConnection == null) { - if (lastProfile != null && "".equals(lastProfile))lastProfile = null; //$NON-NLS-1$ + if (lastProfile != null && "".equals(lastProfile)) lastProfile = null; //$NON-NLS-1$ if (lastProfile == null && activeProfileNames != null) { - List profileNames = Arrays.asList(activeProfileNames); if (defaultProfileName != null && profileNames.contains(defaultProfileName)) lastProfile = defaultProfileName;