Ticket #22183: 22183.1.patch

File 22183.1.patch, 1.6 KB (added by taylor.smock, 4 years ago)

Use synchronization to wait for non-null contentPanePrivate. Not ideal (due to synchronization), but should be safe.

  • src/org/openstreetmap/josm/gui/MainApplication.java

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
    diff --git a/src/org/openstreetmap/josm/gui/MainApplication.java b/src/org/openstreetmap/josm/gui/MainApplication.java
    a b  
    412412    protected void initializeMainWindow() {
    413413        if (mainFrame != null) {
    414414            mainPanel = mainFrame.getPanel();
     415            // Wait for contentPanePrivate to be non-null. See #22183.
     416            synchronized (MainApplication.class) {
     417                while (contentPanePrivate == null) {
     418                    try {
     419                        MainApplication.class.wait(10);
     420                    } catch (InterruptedException e) {
     421                        Thread.currentThread().interrupt();
     422                        throw new JosmRuntimeException(e);
     423                    }
     424                }
     425            }
    415426            mainFrame.initialize();
    416427            menu = mainFrame.getMenu();
    417428        } else {
     
    856867        if (contentPane instanceof JComponent) {
    857868            contentPanePrivate = (JComponent) contentPane;
    858869        }
     870        // See initializeMainWindow (for #22183)
     871        synchronized (MainApplication.class) {
     872            MainApplication.class.notifyAll();
     873        }
    859874        mainPanel = mainFrame.getPanel();
    860875
    861876        if (args.hasOption(Option.LOAD_PREFERENCES)) {