bug 303397: safe-guard against multiple extensions that specify the same connector kind
https://bugs.eclipse.org/bugs/show_bug.cgi?id=303397
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java
index 0ed5ca8..1942521 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiExtensionReader.java
@@ -290,7 +290,7 @@
Map<String, List<ConnectorDescriptor>> descriptorByConnectorKind = new LinkedHashMap<String, List<ConnectorDescriptor>>();
for (ConnectorDescriptor descriptor : descriptors) {
IStatus status = descriptor.createConnector();
- if (status.isOK()) {
+ if (status.isOK() && descriptor.repositoryConnector != null) {
add(descriptorByConnectorKind, descriptor.getConnectorKind(), descriptor);
} else {
result.add(status);
@@ -302,13 +302,15 @@
// register connectors
List<AbstractTaskListMigrator> migrators = new ArrayList<AbstractTaskListMigrator>();
for (ConnectorDescriptor descriptor : descriptors) {
- TasksUiPlugin.getRepositoryManager().addRepositoryConnector(descriptor.repositoryConnector);
- if (descriptor.migratorElement != null) {
- IStatus status = descriptor.createMigrator();
- if (status.isOK()) {
- migrators.add(descriptor.migrator);
- } else {
- result.add(status);
+ if (descriptor.repositoryConnector != null) {
+ TasksUiPlugin.getRepositoryManager().addRepositoryConnector(descriptor.repositoryConnector);
+ if (descriptor.migratorElement != null) {
+ IStatus status = descriptor.createMigrator();
+ if (status.isOK() && descriptor.migrator != null) {
+ migrators.add(descriptor.migrator);
+ } else {
+ result.add(status);
+ }
}
}
}