public static synchronized WebView findWebView()

in boot-fx/src/main/java/org/netbeans/html/boot/fx/FXBrwsr.java [68:124]


    public static synchronized WebView findWebView(final URL url, final AbstractFXPresenter onLoad) {
        if (INSTANCE == null) {
            final String callee = findCalleeClassName();
            Executors.newFixedThreadPool(1).submit(new Runnable() {
                @Override
                public void run() {
                    if (!Platform.isFxApplicationThread()) {
                        try {
                            Platform.runLater(this);
                        } catch (IllegalStateException ex) {
                            try {
                                FXBrwsr.launch(FXBrwsr.class, callee);
                            } catch (Throwable t) {
                                t.printStackTrace();
                            } finally {
                                FINISHED.countDown();
                            }
                        }
                    } else {
                        FXBrwsr brwsr = new FXBrwsr();
                        brwsr.start(new Stage(), callee);
                        INSTANCE = brwsr;
                        FINISHED.countDown();
                    }
                }
            });
        }
        while (INSTANCE == null) {
            try {
                FXBrwsr.class.wait();
            } catch (InterruptedException ex) {
                // wait more
            }
        }
        if (!Platform.isFxApplicationThread()) {
            final WebView[] arr = {null};
            final CountDownLatch waitForResult = new CountDownLatch(1);
            Platform.runLater(new Runnable() {
                @Override
                public void run() {
                    arr[0] = INSTANCE.newView(url, onLoad);
                    waitForResult.countDown();
                }
            });
            for (;;) {
                try {
                    waitForResult.await();
                    break;
                } catch (InterruptedException ex) {
                    LOG.log(Level.INFO, null, ex);
                }
            }
            return arr[0];
        } else {
            return INSTANCE.newView(url, onLoad);
        }
    }