MultiSplitDockableContainer IllegalArgumentException
Brought to you by:
adecaro
When the toolWindowManager has got many visible toolwindows (just the title bar is visible for each) and we try to hide a tool by clicking on the X button, it crashes because of and IllegalArgumentException in the class: MultiSplitDockableContainer, method: removeDockable(Dockable dockable). The Component component = multiSplitPane.getMultiSplitLayout().getChildMap().get(leafKey); returns a null component, but in fact the component is still there (probably it's not visible).
Hi Albu,
do you have a stacktrace for it? I need more information on the scenario.
Best,
./angelo
The line numbers maybe are not right because i made a format on the source code.
To help your work, i attached the file too.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.awt.Container.remove(Container.java:1195)
at org.noos.xing.mydoggy.plaf.ui.cmp.MultiSplitDockableContainer.removeDockable(MultiSplitDockableContainer.java:632)
at org.noos.xing.mydoggy.plaf.ui.cmp.MultiSplitDockableContainer.removeDockable(MultiSplitDockableContainer.java:655)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowBar$VisibleDockedListener.enabledContentManagerPropertyChange(MyDoggyToolWindowBar.java:918)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowBar$VisibleDockedListener.propertyChange(MyDoggyToolWindowBar.java:832)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:347)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowBar.propertyChange(MyDoggyToolWindowBar.java:227)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowBar$VisibleListener.propertyChange(MyDoggyToolWindowBar.java:799)
at org.noos.xing.mydoggy.plaf.ui.util.SourceFilterPropertyChangeListener.propertyChange(SourceFilterPropertyChangeListener.java:21)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:347)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowBar.propertyChange(MyDoggyToolWindowBar.java:227)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager$VisiblePropertyChangeListener.propertyChange(MyDoggyToolWindowManager.java:1342)
at org.noos.xing.mydoggy.plaf.ui.util.SourceFilterPropertyChangeListener.propertyChange(SourceFilterPropertyChangeListener.java:21)
at org.noos.xing.mydoggy.plaf.support.CleanablePropertyChangeSupport.firePropertyChange(CleanablePropertyChangeSupport.java:191)
at org.noos.xing.mydoggy.plaf.support.CleanablePropertyChangeSupport.firePropertyChange(CleanablePropertyChangeSupport.java:199)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindowManager.propertyChange(MyDoggyToolWindowManager.java:525)
at org.noos.xing.mydoggy.plaf.support.CleanablePropertyChangeSupport.firePropertyChange(CleanablePropertyChangeSupport.java:191)
at org.noos.xing.mydoggy.plaf.PropertyChangeEventSource.firePropertyChangeEvent(PropertyChangeEventSource.java:204)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindow.firePropertyChangeEvent(MyDoggyToolWindow.java:969)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindow.setVisibleInternal(MyDoggyToolWindow.java:897)
at org.noos.xing.mydoggy.plaf.MyDoggyToolWindow.setVisible(MyDoggyToolWindow.java:330)
at org.noos.xing.mydoggy.plaf.ui.look.ToolWindowRepresentativeAnchorUI$ToolWindowRepresentativeAnchorMouseAdapter.mouseClicked(ToolWindowRepresentativeAnchorUI.java:412)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:252)
at java.awt.Component.processMouseEvent(Component.java:6266)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4247)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Hi Albu,
the class you sent me is old. Please update to the latest revision and verify again if the problem persists.
Best,
./angelo