Bug 424160: null checks for CodanPreferencesLoader.getProjectNode

CodanPreferencesLoader.getProjectNode will sometimes return null.  This
patch adds null checks before using the result.

Change-Id: If4dd70e6673d5da62cc0b8e899fb5066bdaa4bef
Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
Reviewed-on: https://git.eclipse.org/r/19873
Tested-by: Hudson CI
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
This commit is contained in:
Andrew Eidsness 2013-12-16 12:46:43 -05:00 committed by Sergey Prigogin
parent 4cfdc239bc
commit 2136875477
2 changed files with 12 additions and 10 deletions

View file

@ -11,13 +11,6 @@
*******************************************************************************/
package org.eclipse.cdt.codan.internal.core;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.eclipse.cdt.codan.core.CodanCorePlugin;
import org.eclipse.cdt.codan.core.PreferenceConstants;
import org.eclipse.cdt.codan.core.model.AbstractCheckerWithProblemPreferences;
@ -47,6 +40,13 @@ import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.osgi.service.prefs.Preferences;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Implementation of checker registry interface
*/
@ -368,8 +368,8 @@ public class CheckersRegistry implements Iterable<IChecker>, ICheckersRegistry {
// Load default values
CodanPreferencesLoader loader = new CodanPreferencesLoader(prof);
Preferences projectNode = CodanPreferencesLoader.getProjectNode((IProject) element);
boolean useWorkspace = projectNode.getBoolean(PreferenceConstants.P_USE_PARENT, true);
if (!useWorkspace) {
if (projectNode != null &&
!projectNode.getBoolean(PreferenceConstants.P_USE_PARENT, true)) {
loader.load(projectNode);
}
profiles.put(element, prof);

View file

@ -49,7 +49,9 @@ public class ProfileChangeListener implements INodeChangeListener, IPreferenceCh
IProject[] projects = root.getRoot().getProjects();
for (int i = 0; i < projects.length; i++) {
IProject project = projects[i];
CodanPreferencesLoader.getProjectNode(project).addPreferenceChangeListener(new ProfileChangeListener(project));
IEclipsePreferences prefs = CodanPreferencesLoader.getProjectNode(project);
if (prefs != null)
prefs.addPreferenceChangeListener(new ProfileChangeListener(project));
}
// cannot do on plugin startup
// CheckersRegistry.getInstance().getWorkspaceProfile().addProfileChangeListener(this);