1. Initialize MyDoggyToolWindowManager with MyDoggyMultiSplitContentManagerUI.
2. Add 10 Contents with MultiSplitConstraint instances that add all Contents to the same TabbedPane.
3. Click Maximize on one of the Contents.
4. Click Restore on one of the Contents.
5. See ArrayIndexOutOfBoundsException:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:371)
at java.util.ArrayList.get(ArrayList.java:384)
at javax.swing.JTabbedPane.getComponentAt(JTabbedPane.java:1224)
at org.noos.xing.mydoggy.plaf.ui.cmp.MultiSplitTabbedContentContainer.getComponentFromWrapper(MultiSplitTabbedContentContainer.java:82)
at org.noos.xing.mydoggy.plaf.ui.cmp.MultiSplitDockableContainer.setModel(MultiSplitDockableContainer.java:979)
at org.noos.xing.mydoggy.plaf.ui.content.MyDoggyMultiSplitContentManagerUI$4.run(MyDoggyMultiSplitContentManagerUI.java:296)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
I've attached the TestCase for this. Can reproduce in 1.4.2 and 1.5.0. To stop this from happening, just don't set the constraint, though thats not a good workaround. :D