diff options
author | spingel | 2010-01-26 18:29:38 +0000 |
---|---|---|
committer | spingel | 2010-01-26 18:29:38 +0000 |
commit | 52c80b73095107aead3a3b975f970d3b8ddb389d (patch) | |
tree | f5782457163cd693901c8cb38ca3c58879297f0b | |
parent | 4fa57efae339cb17f2d9f6d88dcac9ad0fa9ce39 (diff) | |
download | org.eclipse.mylyn.tasks-52c80b73095107aead3a3b975f970d3b8ddb389d.tar.gz org.eclipse.mylyn.tasks-52c80b73095107aead3a3b975f970d3b8ddb389d.tar.xz org.eclipse.mylyn.tasks-52c80b73095107aead3a3b975f970d3b8ddb389d.zip |
RESOLVED - bug 298138: repository synchronization may run before tasks UI is initialized
https://bugs.eclipse.org/bugs/show_bug.cgi?id=298138
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java index b79ab20fb..60d41b2cb 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; +import java.util.concurrent.atomic.AtomicInteger; import org.eclipse.core.net.proxy.IProxyChangeEvent; import org.eclipse.core.net.proxy.IProxyChangeListener; @@ -370,6 +371,8 @@ public class TasksUiPlugin extends AbstractUIPlugin { @Deprecated public static String LABEL_VIEW_REPOSITORIES = Messages.TasksUiPlugin_Task_Repositories; + private final AtomicInteger initializationCount = new AtomicInteger(); + private class TasksUiInitializationJob extends UIJob { public TasksUiInitializationJob() { @@ -427,6 +430,8 @@ public class TasksUiPlugin extends AbstractUIPlugin { } monitor.worked(1); + initializeNotificationsAndSynchronization(); + try { getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER); @@ -1280,6 +1285,12 @@ public class TasksUiPlugin extends AbstractUIPlugin { } public void initializeNotificationsAndSynchronization() { + // this method is invoked by the tasks ui initialization job and the task list view + // only proceed if both calls have been made + if (initializationCount.incrementAndGet() != 2) { + return; + } + try { taskListNotificationManager.addNotificationProvider(REMINDER_NOTIFICATION_PROVIDER); // taskListNotificationManager.addNotificationProvider(INCOMING_NOTIFICATION_PROVIDER); |