Ticket #19114: 19114.better_error_reporting.patch

File 19114.better_error_reporting.patch, 1.3 KB (added by taylor.smock, 6 years ago)

JavaFX: Submit a FutureTask to Platform.runLater in order to perform a get on the FutureTask and get a usable stack trace

  • src/org/openstreetmap/josm/plugins/javafx/gui/JavaFxWrapper.java

     
    22package org.openstreetmap.josm.plugins.javafx.gui;
    33
    44import java.awt.Dimension;
     5import java.util.concurrent.ExecutionException;
     6import java.util.concurrent.FutureTask;
    57
    68import org.openstreetmap.josm.tools.Logging;
    79
     
    6163     */
    6264    private void initialize(T node) {
    6365        this.node = node;
    64         Platform.runLater(this::initFX);
     66        FutureTask<Scene> task = new FutureTask<>(this::initFX);
     67        Platform.runLater(task);
    6568        Platform.setImplicitExit(false);
    6669        this.setFocusTraversalKeysEnabled(node.isFocusTraversable());
     70        try {
     71            task.get();
     72        } catch (InterruptedException | ExecutionException e) {
     73            Logging.error(e);
     74        }
    6775    }
    6876
    69     private void initFX() {
     77    /**
     78     * @return The scene to be used for initializing JavaFX
     79     */
     80    protected Scene initFX() {
    7081        Scene scene = createScene();
    7182        setScene(scene);
     83        return scene;
    7284    }
    7385
    7486    private Scene createScene() {