Bug 505591: Add test cases for Browser.evaluate() to browser test suite. 

Fix in evaluate_boolean that sometimes lead to a NPE.

Change-Id: I009a6362b467be1543412f0d7a5d16a74a9c5232
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=505591
Signed-off-by: Leo Ufimtsev <lufimtse@redhat.com>
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java
index 83a51cb..bf59648 100644
--- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java
+++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java
@@ -16,6 +16,7 @@
 import static org.junit.Assert.fail;
 
 import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicIntegerArray;
 import java.util.concurrent.atomic.AtomicReference;
@@ -767,7 +768,7 @@
  */
 @Test
 public void test_evaluate_boolean() {
-	final AtomicReference<Boolean> returnValue = new AtomicReference<>();
+	final AtomicBoolean atomicBoolean = new AtomicBoolean(false);
 	browser.addProgressListener(new ProgressListener() {
 		@Override
 		public void changed(ProgressEvent event) {
@@ -775,7 +776,7 @@
 		@Override
 		public void completed(ProgressEvent event) {
 			Boolean evalResult = (Boolean) browser.evaluate("return true");
-			returnValue.set(evalResult);
+			atomicBoolean.set(evalResult);
 			if (browser_debug)
 				System.out.println("Node value: "+ evalResult);
 		}
@@ -785,8 +786,8 @@
 	shell.open();
 	for (int i = 0; i < (loopMultipier * secondsToWaitTillFail); i++) {  // Wait up to seconds before declaring test as failed.
 		runLoopTimer(waitMS);
-		if (returnValue.get()) {
-			return; // passed
+		if (atomicBoolean.get()) {
+			return; // passed.
 		}
 	}
 }