This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git


The following commit(s) were added to refs/heads/master by this push:
     new 31d4adc  Launching the Show.show always on the background
31d4adc is described below

commit 31d4adc80587e756be67edd8f12a9958e664acf8
Author: Jaroslav Tulach <jaroslav.tul...@apidesign.org>
AuthorDate: Fri Nov 29 15:50:31 2019 +0100

    Launching the Show.show always on the background
---
 .../html/presenters/browser/ServerTest.java        | 69 +++++++++++++++-------
 1 file changed, 47 insertions(+), 22 deletions(-)

diff --git 
a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java 
b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
index a127f3c..e3e5274 100644
--- a/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
+++ b/browser/src/test/java/org/netbeans/html/presenters/browser/ServerTest.java
@@ -18,17 +18,25 @@
  */
 package org.netbeans.html.presenters.browser;
 
-import org.netbeans.html.presenters.browser.Browser;
 import org.netbeans.html.presenters.render.Show;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.HttpURLConnection;
 import java.net.ServerSocket;
 import java.net.URI;
 import java.net.URL;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import net.java.html.boot.BrowserBuilder;
 import net.java.html.js.JavaScriptBody;
 import org.testng.Assert;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 import org.testng.annotations.Test;
@@ -76,7 +84,10 @@ public class ServerTest {
 
         server.close();
         try {
-            InputStream unavailable = connect.openStream();
+            HttpURLConnection url =  (HttpURLConnection) 
connect.openConnection();
+            url.setConnectTimeout(3000);
+            url.setReadTimeout(3000);
+            InputStream unavailable = url.getInputStream();
             fail("Stream can no longer be opened: " + unavailable);
         } catch (IOException ex) {
             // OK
@@ -105,27 +116,41 @@ public class ServerTest {
     private static native void closeSoon(int ms);
 
     private static void show(URI page) throws IOException {
-        IOException one, two;
-        try {
-            String ui = System.getProperty("os.name").contains("Mac")
-                    ? "Cocoa" : "GTK";
-            Show.show(ui, page);
-            return;
-        } catch (IOException ex) {
-            one = ex;
-        }
-        try {
-            Show.show("AWT", page);
-            return;
-        } catch (IOException ex) {
-            two = ex;
-        }
+        ExecutorService background = Executors.newSingleThreadExecutor();
+        Future<Void> future = background.submit((Callable<Void>) () -> {
+            IOException one, two;
+            try {
+                String ui = System.getProperty("os.name").contains("Mac")
+                        ? "Cocoa" : "GTK";
+                Show.show(ui, page);
+                return null;
+            } catch (IOException ex) {
+                one = ex;
+            }
+            try {
+                Show.show("AWT", page);
+                return null;
+            } catch (IOException ex) {
+                two = ex;
+            }
+            try {
+                Show.show(null, page);
+            } catch (IOException ex) {
+                two.initCause(one);
+                ex.initCause(two);
+                throw ex;
+            }
+            return null;
+        });
+
         try {
-            Show.show(null, page);
-        } catch (IOException ex) {
-            two.initCause(one);
-            ex.initCause(two);
-            throw ex;
+            Void ignore = future.get(2, TimeUnit.SECONDS);
+            assertNull(ignore);
+            background.shutdown();
+        } catch (InterruptedException | ExecutionException  ex) {
+            throw new AssertionError(ex);
+        } catch (TimeoutException ex) {
+            // OK
         }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to