Application.application == null

Answered

I am trying to do this under IntelliJ IDEA 2016.3:

Application.invokeLater(() -> {
JButton component = new JButton(message);
component.setPreferredSize(new Dimension(300, 30));

component.addActionListener((event) -> {
StringSelection stringSelection = new StringSelection(message);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);
});

WindowManager.getInstance().getStatusBar(element.getProject()).fireNotificationPopup(component, color);
});

It fails with the following exception:

ull
java.lang.NullPointerException
at com.sun.glass.ui.Application.invokeLater(Application.java:481)
at com.dreambox.misc.Bubble.show(Bubble.java:43)
at com.dreambox.misc.Bubble.showInfo(Bubble.java:35)
at com.dreambox.elements.MyAbstractPlayElement$1.navigate(MyAbstractPlayElement.java:115)
at com.intellij.codeInsight.daemon.NavigateAction.actionPerformed(NavigateAction.java:56)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:199)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:215)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.a(EditorGutterComponentImpl.java:1701)
at com.intellij.openapi.editor.impl.EditorGutterComponentImpl.mouseReleased(EditorGutterComponentImpl.java:1662)
at com.intellij.openapi.editor.impl.EditorImpl.f(EditorImpl.java:4336)
at com.intellij.openapi.editor.impl.EditorImpl.access$11500(EditorImpl.java:131)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.c(EditorImpl.java:5898)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.b(EditorImpl.java:5900)
at com.intellij.openapi.editor.impl.EditorImpl$MyMouseAdapter.mouseReleased(EditorImpl.java:5791)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.c(IdeEventQueue.java:843)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:675)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

 

Debugging it has led me to this:

This is happening after my IntelliJ has successfully started up and is running, with external annotators and all. 

This still is the preferred way to do invokeLater(), right?

2 comments
Comment actions Permalink

You need another Application class - com.intellij.openapi.application.Application, usually accessed like this:

ApplicationManager.getApplication().invokeLater(...)
0
Comment actions Permalink

Oops! So silly of me. Thank you.

0

Please sign in to leave a comment.