Don't use deprecated SubProgressMonitor

Replace by SubMonitor.

Change-Id: If781131275dee22ed281df2b884b9f157456d09f
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositoryImportWizard.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositoryImportWizard.java
index ca23d1e..85aae65 100755
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositoryImportWizard.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositoryImportWizard.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.egit.core.RepositoryUtil;
 import org.eclipse.egit.core.op.CloneOperation;
@@ -103,46 +103,52 @@
 				Messages.RepositoryImportWizard_CloningRepositories,
 				Integer.valueOf(repositories.length));
 		Job job = new Job(name) {
+
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
-				monitor.beginTask(name, repositories.length * 3);
-				GitHubClient client = GitHub
-						.configureClient(new GitHubClient());
-				RepositoryService service = new RepositoryService(client);
-				for (SearchRepository repo : repositories)
-					try {
-						final String id = repo.getId();
-						monitor.setTaskName(MessageFormat
-								.format(Messages.RepositoryImportWizard_CreatingOperation,
-										id));
-						CloneOperation op = createCloneOperation(repo, service);
-						monitor.worked(1);
+				try {
+					SubMonitor progress = SubMonitor.convert(monitor, name,
+							repositories.length * 3);
+					GitHubClient client = GitHub
+							.configureClient(new GitHubClient());
+					RepositoryService service = new RepositoryService(client);
+					for (SearchRepository repo : repositories) {
+						try {
+							final String id = repo.getId();
+							progress.subTask(MessageFormat.format(
+									Messages.RepositoryImportWizard_CreatingOperation,
+									id));
+							CloneOperation op = createCloneOperation(repo,
+									service);
+							progress.worked(1);
 
-						monitor.setTaskName(MessageFormat.format(
-								Messages.RepositoryImportWizard_Cloning, id));
-						SubProgressMonitor sub = new SubProgressMonitor(
-								monitor, 1);
-						op.run(sub);
-						sub.done();
+							monitor.setTaskName(MessageFormat.format(
+									Messages.RepositoryImportWizard_Cloning,
+									id));
+							op.run(progress.newChild(1));
 
-						monitor.setTaskName(MessageFormat
-								.format(Messages.RepositoryImportWizard_Registering,
-										id));
-						RepositoryUtil.INSTANCE
-								.addConfiguredRepository(op.getGitDir());
-						monitor.worked(1);
-					} catch (InvocationTargetException e) {
-						GitHubUi.logError(e);
-					} catch (InterruptedException e) {
-						GitHubUi.logError(e);
-					} catch (IOException e) {
-						GitHubUi.logError(GitHubException.wrap(e));
-					} catch (URISyntaxException e) {
-						GitHubUi.logError(e);
+							monitor.setTaskName(MessageFormat.format(
+									Messages.RepositoryImportWizard_Registering,
+									id));
+							RepositoryUtil.INSTANCE
+									.addConfiguredRepository(op.getGitDir());
+							progress.worked(1);
+						} catch (InvocationTargetException e) {
+							GitHubUi.logError(e);
+						} catch (InterruptedException e) {
+							GitHubUi.logError(e);
+						} catch (IOException e) {
+							GitHubUi.logError(GitHubException.wrap(e));
+						} catch (URISyntaxException e) {
+							GitHubUi.logError(e);
+						}
 					}
-				monitor.done();
-
-				return Status.OK_STATUS;
+					return Status.OK_STATUS;
+				} finally {
+					if (monitor != null) {
+						monitor.done();
+					}
+				}
 			}
 		};
 		IWorkbenchSiteProgressService progress = PlatformUI
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CheckoutPullRequestHandler.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CheckoutPullRequestHandler.java
index 3b96635..0695dd5 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CheckoutPullRequestHandler.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/CheckoutPullRequestHandler.java
@@ -23,7 +23,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.egit.core.op.CreateLocalBranchOperation;
 import org.eclipse.egit.core.op.FetchOperation;
@@ -78,7 +78,7 @@
 
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
-				SubProgressMonitor sub;
+				SubMonitor progress = SubMonitor.convert(monitor, 5);
 				try {
 					PullRequestComposite prComp = PullRequestConnector
 							.getPullRequest(data);
@@ -94,11 +94,9 @@
 					RemoteConfig remote = null;
 					String headBranch = null;
 
-					monitor.beginTask("", 5); //$NON-NLS-1$
-
 					// Add remote
 					if (!PullRequestUtils.isFromSameRepository(request)) {
-						monitor.subTask(MessageFormat
+						progress.subTask(MessageFormat
 								.format(Messages.CheckoutPullRequestHandler_TaskAddRemote,
 										request.getHead().getRepo().getOwner()
 												.getLogin()));
@@ -109,51 +107,43 @@
 								Constants.DEFAULT_REMOTE_NAME);
 						headBranch = request.getHead().getRef();
 					}
-					monitor.worked(1);
+					progress.worked(1);
 
 					// Create topic branch starting at SHA-1 of base
 					if (branchRef == null) {
-						sub = new SubProgressMonitor(monitor, 1);
-						sub.subTask(MessageFormat
+						progress.subTask(MessageFormat
 								.format(Messages.CheckoutPullRequestHandler_TaskCreateBranch,
 										branchName));
 						PullRequestUtils.configureTopicBranch(repo, request);
 						new CreateLocalBranchOperation(repo, branchName,
-								getBase(repo, request)).execute(sub);
-						sub.done();
-					} else
-						monitor.worked(1);
+								getBase(repo, request))
+										.execute(progress.newChild(1));
+					}
 
 					// Checkout topic branch
 					if (!PullRequestUtils.isCurrentBranch(branchName, repo)) {
-						sub = new SubProgressMonitor(monitor, 1);
-						sub.subTask(MessageFormat
+						progress.subTask(MessageFormat
 								.format(Messages.CheckoutPullRequestHandler_TaskCheckoutBranch,
 										branchName));
-						BranchOperationUI.checkout(repo, branchName).run(sub);
-						sub.done();
-					} else
-						monitor.worked(1);
+						BranchOperationUI.checkout(repo, branchName)
+								.run(progress.newChild(1));
+					}
 
 					// Fetch from remote
-					sub = new SubProgressMonitor(monitor, 1);
-					sub.subTask(MessageFormat.format(
+					progress.subTask(MessageFormat.format(
 							Messages.CheckoutPullRequestHandler_TaskFetching,
 							remote.getName()));
 					new FetchOperation(repo, remote,
 							GitSettings.getRemoteConnectionTimeout(),
-							false).run(sub);
-					sub.done();
+							false).run(progress.newChild(1));
 
 					// Merge head onto base
-					sub = new SubProgressMonitor(monitor, 1);
-					sub.subTask(MessageFormat.format(
+					progress.subTask(MessageFormat.format(
 							Messages.CheckoutPullRequestHandler_TaskMerging,
 							headBranch));
-					new MergeOperation(repo, headBranch).execute(sub);
-					sub.done();
+					new MergeOperation(repo, headBranch)
+							.execute(progress.newChild(1));
 
-					monitor.done();
 					executeCallback(event);
 				} catch (IOException e) {
 					GitHubUi.logError(e);
@@ -163,6 +153,10 @@
 					GitHubUi.logError(e);
 				} catch (InvocationTargetException e) {
 					GitHubUi.logError(e);
+				} finally {
+					if (monitor != null) {
+						monitor.done();
+					}
 				}
 				return Status.OK_STATUS;
 			}
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/MergePullRequestHandler.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/MergePullRequestHandler.java
index 7423929..a7521a9 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/MergePullRequestHandler.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/MergePullRequestHandler.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.egit.core.op.MergeOperation;
 import org.eclipse.egit.github.core.PullRequest;
@@ -55,39 +55,48 @@
 
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
-				PullRequestComposite prComp = PullRequestConnector
-						.getPullRequest(data);
-				if (prComp == null)
-					return Status.CANCEL_STATUS;
-				PullRequest request = prComp.getRequest();
-				Repository repo = PullRequestUtils.getRepository(request);
-				if (repo == null)
-					return Status.CANCEL_STATUS;
-				String target = request.getBase().getRef();
-				String branchName = PullRequestUtils.getBranchName(request);
 				try {
-					Ref sourceRef = repo.findRef(branchName);
-					if (sourceRef != null) {
-						if (!PullRequestUtils.isCurrentBranch(target, repo)) {
-							monitor.setTaskName(MessageFormat
-									.format(Messages.MergePullRequestHandler_TaskCheckout,
-											target));
-							BranchOperationUI.checkout(repo, target).run(
-									new SubProgressMonitor(monitor, 1));
+					PullRequestComposite prComp = PullRequestConnector
+							.getPullRequest(data);
+					if (prComp == null)
+						return Status.CANCEL_STATUS;
+					PullRequest request = prComp.getRequest();
+					Repository repo = PullRequestUtils.getRepository(request);
+					if (repo == null)
+						return Status.CANCEL_STATUS;
+					String target = request.getBase().getRef();
+					String branchName = PullRequestUtils.getBranchName(request);
+					try {
+						Ref sourceRef = repo.findRef(branchName);
+						if (sourceRef != null) {
+							SubMonitor progress = SubMonitor.convert(monitor,
+									2);
+							if (!PullRequestUtils.isCurrentBranch(target,
+									repo)) {
+								progress.subTask(MessageFormat.format(
+										Messages.MergePullRequestHandler_TaskCheckout,
+										target));
+								BranchOperationUI.checkout(repo, target)
+										.run(progress.newChild(1));
+							}
+							progress.subTask(MessageFormat.format(
+									Messages.MergePullRequestHandler_TaskMerge,
+									branchName, target));
+							new MergeOperation(repo, branchName)
+									.execute(progress.newChild(1));
+							executeCallback(event);
 						}
-						monitor.setTaskName(MessageFormat.format(
-								Messages.MergePullRequestHandler_TaskMerge,
-								branchName, target));
-						new MergeOperation(repo, branchName)
-								.execute(new SubProgressMonitor(monitor, 1));
-						executeCallback(event);
+					} catch (IOException e) {
+						GitHubUi.logError(e);
+					} catch (CoreException e) {
+						GitHubUi.logError(e);
 					}
-				} catch (IOException e) {
-					GitHubUi.logError(e);
-				} catch (CoreException e) {
-					GitHubUi.logError(e);
+					return Status.OK_STATUS;
+				} finally {
+					if (monitor != null) {
+						monitor.done();
+					}
 				}
-				return Status.OK_STATUS;
 			}
 		};
 		schedule(job, event);
diff --git a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/RebasePullRequestHandler.java b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/RebasePullRequestHandler.java
index 79a3071..aebbbce 100644
--- a/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/RebasePullRequestHandler.java
+++ b/org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/pr/RebasePullRequestHandler.java
@@ -21,7 +21,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.core.runtime.SubMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.egit.core.op.RebaseOperation;
 import org.eclipse.egit.github.core.PullRequest;
@@ -55,39 +55,49 @@
 
 			@Override
 			protected IStatus run(IProgressMonitor monitor) {
-				PullRequestComposite prComp = PullRequestConnector
-						.getPullRequest(data);
-				if (prComp == null)
-					return Status.CANCEL_STATUS;
-				PullRequest request = prComp.getRequest();
-				Repository repo = PullRequestUtils.getRepository(request);
-				if (repo == null)
-					return Status.CANCEL_STATUS;
-				String branchName = PullRequestUtils.getBranchName(request);
 				try {
-					String target = request.getBase().getRef();
-					Ref targetRef = repo.findRef(request.getBase().getRef());
-					if (targetRef != null) {
-						if (!PullRequestUtils.isCurrentBranch(branchName, repo)) {
-							monitor.setTaskName(MessageFormat
-									.format(Messages.RebasePullRequestHandler_TaskCheckout,
-											branchName));
-							BranchOperationUI.checkout(repo, branchName).run(
-									new SubProgressMonitor(monitor, 1));
+					PullRequestComposite prComp = PullRequestConnector
+							.getPullRequest(data);
+					if (prComp == null)
+						return Status.CANCEL_STATUS;
+					PullRequest request = prComp.getRequest();
+					Repository repo = PullRequestUtils.getRepository(request);
+					if (repo == null)
+						return Status.CANCEL_STATUS;
+					String branchName = PullRequestUtils.getBranchName(request);
+					try {
+						String target = request.getBase().getRef();
+						Ref targetRef = repo
+								.findRef(request.getBase().getRef());
+						if (targetRef != null) {
+							SubMonitor progress = SubMonitor.convert(monitor,
+									2);
+							if (!PullRequestUtils.isCurrentBranch(branchName,
+									repo)) {
+								progress.subTask(MessageFormat.format(
+										Messages.RebasePullRequestHandler_TaskCheckout,
+										branchName));
+								BranchOperationUI.checkout(repo, branchName)
+										.run(progress.newChild(1));
+							}
+							progress.subTask(MessageFormat.format(
+									Messages.RebasePullRequestHandler_TaskRebase,
+									branchName, target));
+							new RebaseOperation(repo, targetRef)
+									.execute(progress.newChild(1));
+							executeCallback(event);
 						}
-						monitor.setTaskName(MessageFormat.format(
-								Messages.RebasePullRequestHandler_TaskRebase,
-								branchName, target));
-						new RebaseOperation(repo, targetRef)
-								.execute(new SubProgressMonitor(monitor, 1));
-						executeCallback(event);
+					} catch (IOException e) {
+						GitHubUi.logError(e);
+					} catch (CoreException e) {
+						GitHubUi.logError(e);
 					}
-				} catch (IOException e) {
-					GitHubUi.logError(e);
-				} catch (CoreException e) {
-					GitHubUi.logError(e);
+					return Status.OK_STATUS;
+				} finally {
+					if (monitor != null) {
+						monitor.done();
+					}
 				}
-				return Status.OK_STATUS;
 			}
 		};
 		schedule(job, event);