Ignore:
Timestamp:
2017-05-12T19:53:09+02:00 (7 years ago)
Author:
Don-vip
Message:

fix #14783 - fix NPE when loading early plugins. Restored the static Main.mainPanel, no other choice in order to maintain public listener methods for early plugins

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/MainApplication.java

    r12125 r12127  
    8888    private static final List<String> COMMAND_LINE_ARGS = new ArrayList<>();
    8989
     90    private static ProgramArguments args;
     91    private static boolean skipLoadingPlugins;
     92
    9093    private final MainFrame mainFrame;
    9194
     
    110113    protected void initializeMainWindow() {
    111114        if (mainFrame != null) {
    112             mainFrame.preInitialize();
    113115            panel = mainFrame.getPanel();
    114116            mainFrame.initialize();
     
    208210     */
    209211    public static void main(final String[] argArray) {
     212        // First initializes all stuff that do not require AWT/Swing
     213        mainNoGui(argArray);
     214        // Then initializes all AWT/Swing stuff
     215        mainGui();
     216    }
     217
     218    /**
     219     * Initializes all stuff that do not require AWT/Swing.
     220     * @param argArray Command-line arguments
     221     */
     222    private static void mainNoGui(final String[] argArray) {
    210223        I18n.init();
    211224
    212225        // construct argument table
    213         ProgramArguments args = null;
    214226        try {
    215227            args = new ProgramArguments(argArray);
     
    261273        COMMAND_LINE_ARGS.addAll(Arrays.asList(argArray));
    262274
    263         boolean skipLoadingPlugins = args.hasOption(Option.SKIP_PLUGINS);
     275        skipLoadingPlugins = args.hasOption(Option.SKIP_PLUGINS);
    264276        if (skipLoadingPlugins) {
    265277            Main.info(tr("Plugin loading skipped"));
     
    286298
    287299        Main.platform.afterPrefStartupHook();
    288 
     300    }
     301
     302    /**
     303     * Initializes all AWT/Swing stuff.
     304     */
     305    private static void mainGui() {
    289306        FontsManager.initialize();
    290307
     
    297314                !args.hasOption(Option.NO_MAXIMIZE) && Main.pref.getBoolean("gui.maximized", false));
    298315        final MainFrame mainFrame = new MainFrame(contentPanePrivate, geometry);
     316        Main.mainPanel = mainFrame.getPanel();
    299317        Main.parent = mainFrame;
    300318
Note: See TracChangeset for help on using the changeset viewer.