diff --git a/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java b/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
index 30881d5..189f92c 100644
--- a/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
+++ b/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
@@ -72,19 +72,22 @@
 	}
 
 	protected Runnable getHandleInputRunnable(final BuildException[] problem) {
-		return () -> {
-			String prompt;
-			if (fRequest instanceof MultipleChoiceInputRequest) {
-				prompt = fRequest.getPrompt();
-			} else {
-				prompt = getPrompt(fRequest);
-			}
-			String title = RemoteAntMessages.getString("SWTInputHandler.1"); //$NON-NLS-1$
-			boolean[] result = new boolean[1];
-			open(title, prompt, result);
+		return new Runnable() {
+			@Override
+			public void run() {
+				String prompt;
+				if (fRequest instanceof MultipleChoiceInputRequest) {
+					prompt = fRequest.getPrompt();
+				} else {
+					prompt = getPrompt(fRequest);
+				}
+				String title = RemoteAntMessages.getString("SWTInputHandler.1"); //$NON-NLS-1$
+				boolean[] result = new boolean[1];
+				open(title, prompt, result);
 
-			if (!result[0]) {
-				problem[0] = new BuildException(RemoteAntMessages.getString("SWTInputHandler.2")); //$NON-NLS-1$
+				if (!result[0]) {
+					problem[0] = new BuildException(RemoteAntMessages.getString("SWTInputHandler.2")); //$NON-NLS-1$
+				}
 			}
 		};
 	}
