Bug - Not A Bug swing border is sometimes null

MCroft

Developer
Staff member
I have seen this once or twice, most recently today. Generally it's more likely to come up if I leave the GUI open overnight. Since it dumps it to the console I don't tend to look at it until after I quit. It doesn't stop execution, but it's vexing. I'm putting this here to remind me to look and to find out if it's just me, or if it's particular to the frames I keep open.

I think it's caused by a combobox that isn't fully defined, and I suspect it's either in the Daily Deeds pane, the maximizer, or the ItemManagerFrame.

But it may be a bug in flatlaf.

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "javax.swing.JComponent.setBorder(javax.swing.border.Border)" because "this.rendererComponent" is null
    at com.formdev.flatlaf.ui.FlatComboBoxUI$CellPaddingBorder.install(FlatComboBoxUI.java:822)
    at com.formdev.flatlaf.ui.FlatComboBoxUI.getSizeForComponent(FlatComboBoxUI.java:571)
    at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.getDefaultSize(BasicComboBoxUI.java:1395)
    at com.formdev.flatlaf.ui.FlatComboBoxUI.getDefaultSize(FlatComboBoxUI.java:542)
    at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.getDisplaySize(BasicComboBoxUI.java:1466)
    at com.formdev.flatlaf.ui.FlatComboBoxUI.getDisplaySize(FlatComboBoxUI.java:550)
    at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.getMinimumSize(BasicComboBoxUI.java:999)
    at com.formdev.flatlaf.ui.FlatComboBoxUI.getMinimumSize(FlatComboBoxUI.java:533)
    at java.desktop/javax.swing.plaf.basic.BasicComboBoxUI.getPreferredSize(BasicComboBoxUI.java:988)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1680)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:723)
    at java.desktop/java.awt.Container.preferredSize(Container.java:1824)
    at java.desktop/java.awt.Container.getPreferredSize(Container.java:1808)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:733)
    at java.desktop/java.awt.Container.preferredSize(Container.java:1824)
    at java.desktop/java.awt.Container.getPreferredSize(Container.java:1808)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:723)
    at java.desktop/java.awt.Container.preferredSize(Container.java:1824)
    at java.desktop/java.awt.Container.getPreferredSize(Container.java:1808)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
    at java.desktop/java.awt.CardLayout.preferredLayoutSize(CardLayout.java:280)
    at java.desktop/java.awt.Container.preferredSize(Container.java:1824)
    at java.desktop/java.awt.Container.getPreferredSize(Container.java:1808)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
    at java.desktop/java.awt.BorderLayout.preferredLayoutSize(BorderLayout.java:723)
    at java.desktop/java.awt.Container.preferredSize(Container.java:1824)
    at java.desktop/java.awt.Container.getPreferredSize(Container.java:1808)
    at java.desktop/javax.swing.JComponent.getPreferredSize(JComponent.java:1682)
    at java.desktop/java.awt.BorderLayout.layoutContainer(BorderLayout.java:819)
    at java.desktop/java.awt.Container.layout(Container.java:1538)
    at java.desktop/java.awt.Container.doLayout(Container.java:1527)
    at java.desktop/java.awt.Container.validateTree(Container.java:1723)
    at java.desktop/java.awt.Container.validateTree(Container.java:1732)
    at java.desktop/java.awt.Container.validateTree(Container.java:1732)
    at java.desktop/java.awt.Container.validateTree(Container.java:1732)
    at java.desktop/java.awt.Container.validateTree(Container.java:1732)
    at java.desktop/java.awt.Container.validate(Container.java:1658)
    at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:745)
    at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:743)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
    at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1883)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 

MCroft

Developer
Staff member
Update: it's a bug, but not our bug. Reported to FlatLaf team, they fixed it. I will test with their snapshot, but since it was rare, I don't know when I'll be sure it's fixed...

Will update FlatLaf when it's released.
 
Top