Hello!
If TabbedInspector.clear() is called JtabbedPane.removeAll() will set
the selected index to -1. The change event fired thereafter will lead to
an ArrayIndexOutOfBoundsException in
TabbedInspector.updateDisplayedInspector() because there is no check for
invalid indices and the tab count is still > 0.
Tested with mason revision 1010 and OpenJDK version "1.7.0_75".
Best regards,
Christian
import sim.portrayal.Inspector;
import sim.portrayal.inspector.TabbedInspector;
public class TestTabbedInspector {
public static void main(String[] args) {
TabbedInspector tabbedInspector = new TabbedInspector();
Inspector blankInspector = new Inspector() {
private static final long serialVersionUID = 1L;
@Override
public void updateInspector() {
}
};
tabbedInspector.addInspector(blankInspector);
tabbedInspector.clear();
}
}