419190: ClassCastException when opening query dialog

Call methods on Wizard only if given IWizard is an instance of Wizard,
in other words check type before casting.

Bug: 419190
Change-Id: Ie462e542ecec0d443ab7865d9297e63fa4d9aa93
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=419190
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java
index 92e3132..93326e6 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java
@@ -106,7 +106,9 @@
 			if (messageDialog.getReturnCode() == IDialogConstants.YES_ID) {
 				AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
 				IWizard queryWizard = connectorUi.getQueryWizard(taskRepository, null);
-				((Wizard) queryWizard).setForcePreviousAndNextButtons(true);
+				if (queryWizard instanceof Wizard) {
+					((Wizard) queryWizard).setForcePreviousAndNextButtons(true);
+				}
 
 				WizardDialog queryDialog = new WizardDialog(shell, queryWizard);
 				queryDialog.create();
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java
index adf9faa..15d7f74 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewQueryAction.java
@@ -77,7 +77,9 @@
 			TaskRepository taskRepository = TasksUiUtil.getSelectedRepository();
 			AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
 			wizard = connectorUi.getQueryWizard(taskRepository, null);
-			((Wizard) wizard).setForcePreviousAndNextButtons(true);
+			if (wizard instanceof Wizard) {
+				((Wizard) wizard).setForcePreviousAndNextButtons(true);
+			}
 			if (connectorUi instanceof LocalRepositoryConnectorUi) {
 				wizard.performFinish();
 				return;
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java
index d25488b..2c446f2 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryWizard.java
@@ -157,7 +157,9 @@
 			if (messageDialog.getReturnCode() == IDialogConstants.YES_ID) {
 				AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getConnectorUi(taskRepository.getConnectorKind());
 				final IWizard queryWizard = connectorUi.getQueryWizard(taskRepository, null);
-				((Wizard) queryWizard).setForcePreviousAndNextButtons(true);
+				if (queryWizard instanceof Wizard) {
+					((Wizard) queryWizard).setForcePreviousAndNextButtons(true);
+				}
 
 				// execute delayed to avoid stacking dialogs
 				getShell().getDisplay().asyncExec(new Runnable() {