Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Pingel2012-09-10 18:42:43 +0000
committerSteffen Pingel2012-09-10 18:42:43 +0000
commit2d49eec5ec62ff293744ed90aff1cd6c978e0a1b (patch)
treeccf3269b544466cecbf462d1acf0481eb0c3ede8 /org.eclipse.mylyn.tasks.ui/src/org
parent6fd180ca8ac0895713f59853d3535c8b05dfeb62 (diff)
downloadorg.eclipse.mylyn.tasks-2d49eec5ec62ff293744ed90aff1cd6c978e0a1b.tar.gz
org.eclipse.mylyn.tasks-2d49eec5ec62ff293744ed90aff1cd6c978e0a1b.tar.xz
org.eclipse.mylyn.tasks-2d49eec5ec62ff293744ed90aff1cd6c978e0a1b.zip
389103: prevent concurrent updates of repository configuration
Change-Id: Ib20537dd92e03edda72ffefc6e0b221f21ceb37b Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=389103
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java52
1 files changed, 5 insertions, 47 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java
index fb412a0b4..4024b7859 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/UpdateRepositoryConfigurationAction.java
@@ -11,25 +11,18 @@
package org.eclipse.mylyn.internal.tasks.ui.views;
-import java.text.MessageFormat;
import java.util.Iterator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.mylyn.commons.workbench.WorkbenchUtil;
import org.eclipse.mylyn.internal.tasks.ui.actions.AbstractTaskRepositoryAction;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.TasksUi;
-import org.eclipse.ui.PlatformUI;
+import org.eclipse.mylyn.tasks.core.sync.TaskJob;
/**
* @author Mik Kersten
+ * @author Steffen Pingel
*/
public class UpdateRepositoryConfigurationAction extends AbstractTaskRepositoryAction {
@@ -47,46 +40,11 @@ public class UpdateRepositoryConfigurationAction extends AbstractTaskRepositoryA
for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
final TaskRepository repository = getTaskRepository(iter.next());
if (repository != null) {
- final AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
- repository.getConnectorKind());
- if (connector != null) {
- final String jobName = MessageFormat.format(
- Messages.UpdateRepositoryConfigurationAction_Updating_repository_configuration_for_X,
- repository.getRepositoryUrl());
- Job updateJob = new Job(jobName) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(jobName, IProgressMonitor.UNKNOWN);
- try {
- performUpdate(repository, connector, monitor);
- } finally {
- monitor.done();
- }
- return Status.OK_STATUS;
- }
- };
- // show the progress in the system task bar if this is a user job (i.e. forced)
- updateJob.setProperty(WorkbenchUtil.SHOW_IN_TASKBAR_ICON_PROPERTY, Boolean.TRUE);
- updateJob.setUser(true);
- updateJob.schedule();
- }
+ TaskJob job = TasksUiInternal.updateRepositoryConfiguration(repository);
+ // show the progress in the system task bar if this is a user job (i.e. forced)
+ job.setProperty(WorkbenchUtil.SHOW_IN_TASKBAR_ICON_PROPERTY, Boolean.TRUE);
}
}
}
- public void performUpdate(final TaskRepository repository, final AbstractRepositoryConnector connector,
- IProgressMonitor monitor) {
- try {
- connector.updateRepositoryConfiguration(repository, monitor);
- } catch (final CoreException e) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- TasksUiInternal.displayStatus(
- Messages.UpdateRepositoryConfigurationAction_Error_updating_repository_configuration,
- e.getStatus());
- }
- });
- }
- }
-
}

Back to the top