1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 15:15:25 +02:00

Fixed NPE when opening preference page for Working Sets

java.lang.NullPointerException
	at
org.eclipse.cdt.internal.ui.workingsets.IWorkingSetProjectConfigurationFactory$Registry$1.compare(IWorkingSetProjectConfigurationFactory.java:180)
	at
org.eclipse.cdt.internal.ui.workingsets.IWorkingSetProjectConfigurationFactory$Registry$1.compare(IWorkingSetProjectConfigurationFactory.java:1)
	at java.util.TimSort.countRunAndMakeAscending(TimSort.java:352)
	at java.util.TimSort.sort(TimSort.java:216)
	at java.util.Arrays.sort(Arrays.java:1438)
	
	

Change-Id: Ibe91a679c876ed5f70f4f787188e13e52203466c
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
This commit is contained in:
Alena Laskavaia 2015-01-23 14:20:21 -05:00
parent b44dbb9ea5
commit f0f371b10d

View file

@ -170,16 +170,23 @@ public interface IWorkingSetProjectConfigurationFactory {
result = new String[0]; result = new String[0];
} }
for (String natureId : result) {
if (projectNaturePartOrdering.get(natureId) == null) {
// re-do nature cache. Some natures were added recently
projectNaturePartOrdering = computeProjectNaturePartOrdering();
break;
}
}
if (result.length > 0) { if (result.length > 0) {
Arrays.sort(result, new Comparator<String>() { Arrays.sort(result, new Comparator<String>() {
@Override @Override
public int compare(String nature1, String nature2) { public int compare(String nature1, String nature2) {
Set<String> required1 = projectNaturePartOrdering.get(nature1); Set<String> required1 = projectNaturePartOrdering.get(nature1);
Set<String> required2 = projectNaturePartOrdering.get(nature2); Set<String> required2 = projectNaturePartOrdering.get(nature2);
if (required1 != null && required1.contains(nature2)) {
if (required1.contains(nature2)) {
return -1; // required1 precedes required2 return -1; // required1 precedes required2
} else if (required2.contains(nature1)) { } else if (required2 != null && required2.contains(nature1)) {
return +1; // required2 precedes required1 return +1; // required2 precedes required1
} else if (nature1.startsWith("org.eclipse.cdt.") //$NON-NLS-1$ } else if (nature1.startsWith("org.eclipse.cdt.") //$NON-NLS-1$
&& !nature2.startsWith("org.eclipse.cdt.")) { //$NON-NLS-1$ && !nature2.startsWith("org.eclipse.cdt.")) { //$NON-NLS-1$