Exception when leaving a SightingBrowsePanel

Issue #228 new
Adam Winer created an issue

Probably harmless; clearly annoying.

bitIndex < 0: -1 java.lang.IndexOutOfBoundsException: bitIndex < 0: -1 at java.util.BitSet.get(Unknown Source) at .ui.components.browser.JBrowser$ColumnSelectionModel.insertIndexInterval(JBrowser.java:3145) at javax.swing.plaf.basic.BasicListUI$Handler.intervalAdded(Unknown Source) at javax.swing.AbstractListModel.fireIntervalAdded(Unknown Source) at .ui.components.browser.JBrowser$ColumnListModel.treeNodesInserted(JBrowser.java:2213) at .ui.util.BaseTreeModel.fireTreeNodesInserted(BaseTreeModel.java:52) at .ui.util.TaxonTreeModel.sightingsReplaced(TaxonTreeModel.java:367) at .ui.components.TaxonBrowsePanel.sightingsReplaced(TaxonBrowsePanel.java:451) at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsSwapped(BaseTaxonBrowserPanel.java:656) at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsUpdated(BaseTaxonBrowserPanel.java:649) at .ui.components.SightingBrowsePanel.save(SightingBrowsePanel.java:212) at .ui.components.SightingBrowsePanel$3.ancestorRemoved(SightingBrowsePanel.java:146) at javax.swing.AncestorNotifier.fireAncestorRemoved(Unknown Source) at javax.swing.AncestorNotifier.propertyChange(Unknown Source) at java.beans.PropertyChangeSupport.fire(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at javax.swing.JComponent.removeNotify(Unknown Source) at java.awt.Container.removeNotify(Unknown Source) at javax.swing.JComponent.removeNotify(Unknown Source) at java.awt.Container.removeNotify(Unknown Source) at javax.swing.JComponent.removeNotify(Unknown Source) at java.awt.Container.removeNotify(Unknown Source) at javax.swing.JComponent.removeNotify(Unknown Source) at java.awt.Container.remove(Unknown Source) at java.awt.Container.remove(Unknown Source) at .ui.components.browser.JBrowser$2.run(JBrowser.java:1270) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$300(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

Comments (5)

  1. Adam Winer reporter

    Here’s another variant. which is also SightingBrowsePanel.save(), but triggers on the treeNodesRemoved() part of things.

    bitIndex < 0: -1
    java.lang.IndexOutOfBoundsException: bitIndex < 0: -1
    at java.base/java.util.BitSet.get(Unknown Source)
    at .ui.components.browser.JBrowser$ColumnSelectionModel.clear(JBrowser.java:2899)

    at .ui.components.browser.JBrowser$ColumnSelectionModel.setState(JBrowser.java:3086)
    at .ui.components.browser.JBrowser$ColumnSelectionModel.removeIndexInterval(JBrowser.java:3161)
    at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.intervalRemoved(Unknown Source)
    at java.desktop/javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
    at .ui.components.browser.JBrowser$ColumnListModel.treeNodesRemoved(JBrowser.java:2275)
    at .ui.util.BaseTreeModel.fireTreeNodesRemoved(BaseTreeModel.java:58)
    at .ui.panels.reports.ReportsTreeModel.sightingsReplaced(ReportsTreeModel.java:286)
    at .ui.panels.reports.ReportsBrowserPanel.sightingsReplaced(ReportsBrowserPanel.java:563)
    at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsSwapped(BaseTaxonBrowserPanel.java:773)
    at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsUpdated(BaseTaxonBrowserPanel.java:766)
    at .ui.components.SightingBrowsePanel.save(SightingBrowsePanel.java:216)
    at .ui.components.SightingBrowsePanel$3.ancestorRemoved(SightingBrowsePanel.java:150)
    at java.desktop/javax.swing.AncestorNotifier.fireAncestorRemoved(Unknown Source)

    Some other comments, some of which may apply to variants of this issue that have been resolved.

    “The error message occured below when I moved a sighting to a subspecies. Maybe it is has something to do with that I hadn't saved the comments that I just entered before moving the sighting.”

    “still functioning after this event while browsing by location”

    “Error message is produced in “browse by location” when using “add sighting” in “species I haven’t seen here” mode, and then trying to edit and save the added sighting. How to reproduce: go to “Browse by Location”; select any location; click on any species; click “add sighting” (a new sighting appears followed by “no date”); click on this new sighting and make some changes to the details such as adding the date; click save – an error message appears and strange things start happening. Have to close Scythebill and open again. Error attached. Maybe because once I add a sighting it is no longer a “species I haven’t seen here”?”

    “I was dragging a species record to a subspecies when it happened”

    Found one way to always reproduce:

    • Select a sighting in a subspecies, in Browse by species.
    • Enter a comment, but do not click Save.
    • Drag the sighting to the species level

    Oddly, haven’t been able to reproduce with dragging into a subspecies, but I think the basic part of the problem is that the drop completes, then the browse panel saves. Saving before the drag starts might be more successful.

  2. Adam Winer reporter

    Still occurring!

    java.lang.IndexOutOfBoundsException: bitIndex < 0: -1

    ‌ at java.base/java.util.BitSet.get(BitSet.java:626)

    ‌ at .ui.components.browser.JBrowser$ColumnSelectionModel.clear(JBrowser.java:2903)

    ‌ at .ui.components.browser.JBrowser$ColumnSelectionModel.setState(JBrowser.java:3090)

    ‌ at .ui.components.browser.JBrowser$ColumnSelectionModel.removeIndexInterval(JBrowser.java:3168)

    ‌ at java.desktop/javax.swing.plaf.basic.BasicListUI$Handler.intervalRemoved(BasicListUI.java:2793)

    ‌ at java.desktop/javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:188)

    ‌ at .ui.util.BaseTreeModel.fireTreeNodesRemoved(BaseTreeModel.java:58)

    ‌ at .ui.panels.reports.ReportsTreeModel.sightingsReplaced(ReportsTreeModel.java:448)

    ‌ at .ui.panels.reports.ReportsBrowserPanel.sightingsReplaced(ReportsBrowserPanel.java:597)

    ‌ at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsSwapped(BaseTaxonBrowserPanel.java:801)

    ‌ at .ui.components.BaseTaxonBrowserPanel$TaxonPreviewRenderer$2.sightingsUpdated(BaseTaxonBrowserPanel.java:794)

    ‌ at .ui.components.SightingBrowsePanel.save(SightingBrowsePanel.java:219)

    ‌ at .ui.components.SightingBrowsePanel$1.ancestorRemoved(SightingBrowsePanel.java:145)

    ‌ at java.desktop/javax.swing.AncestorNotifier.fireAncestorRemoved(AncestorNotifier.java:108)

    ‌ at java.desktop/javax.swing.AncestorNotifier.propertyChange(AncestorNotifier.java:234)

    ‌ at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:343)

    ‌ at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:335)

    ‌ at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:268)

    ‌ at java.desktop/java.awt.Component.firePropertyChange(Component.java:8722)

    ‌ at java.desktop/javax.swing.JComponent.removeNotify(JComponent.java:4861)

    ‌ at java.desktop/java.awt.Container.removeNotify(Container.java:2835)

    ‌ at java.desktop/javax.swing.JComponent.removeNotify(JComponent.java:4857)

    ‌ at java.desktop/java.awt.Container.removeNotify(Container.java:2835)

    ‌ at java.desktop/javax.swing.JComponent.removeNotify(JComponent.java:4857)

    ‌ at java.desktop/java.awt.Container.removeNotify(Container.java:2835)

    ‌ at java.desktop/javax.swing.JComponent.removeNotify(JComponent.java:4857)

    ‌ at java.desktop/java.awt.Container.remove(Container.java:1235)

    ‌ at java.desktop/java.awt.Container.remove(Container.java:1293)

    ‌ at .ui.components.browser.JBrowser$2.run(JBrowser.java:1273)

  3. Log in to comment