Ticket #815 (closed defect: fixed)
Opened 2011-10-10T15:23:37-05:00
Last modified 2011-11-22T10:41:55-06:00
Exception when adding axes: possible race condition
Reported by: | bdezonia | Owned by: | bdezonia |
---|---|---|---|
Priority: | major | Milestone: |
|
Component: | Display API | Version: | |
Severity: | serious | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Open Boats. Add axes (size 2 each) in this order (polarization, z, t). Each time an axis is added an exception is dumped to the console. The bad array index always equals the last one in the changed dataset which may be one beyond the view's index. The view may have not yet been updated and thus cannot find a given dimension.
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
at net.imglib2.display.XYProjector.getLongPosition(XYProjector.java:166)
at imagej.data.display.AbstractDatasetView.setPosition(AbstractDatasetView.java:192)
at imagej.data.display.AbstractImageDisplay.update(AbstractImageDisplay.java:133)
at imagej.ui.swing.display.AbstractSwingImageDisplay$2.onEvent(AbstractSwingImageDisplay.java:164)
at imagej.ui.swing.display.AbstractSwingImageDisplay$2.onEvent(AbstractSwingImageDisplay.java:1)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
Change History
comment:1 Changed 2011-10-12T09:20:06-05:00 by bdezonia
comment:2 Changed 2011-10-12T09:26:46-05:00 by bdezonia
I think earlier I had tested with rev 4107 or later. Since no code changes since then seem relevant this does seem like a race condition.
comment:3 Changed 2011-11-22T10:05:42-06:00 by bdezonia
Tested with f2539ec742ef9a8957c832faea72e3caacec11cd and still exists. Just adding a Z axis size 2 to Boats caused it.
[ERROR] Exception during event handling:
[Event] imagej.data.event.DatasetRestructuredEvent
context = 0
consumed = false
object = boats.gif
[Subscriber] imagej.ui.swing.sdi.display.SwingSdiImageDisplay@5d66bddc
[Method] protected void imagej.data.display.AbstractImageDisplay.onEvent(imagej.data.event.DatasetRestructuredEvent)
java.lang.ArrayIndexOutOfBoundsException: 2
at net.imglib2.display.XYProjector.getLongPosition(XYProjector.java:166)
at imagej.data.display.AbstractDatasetView.setPosition(AbstractDatasetView.java:194)
at imagej.data.display.AbstractImageDisplay.update(AbstractImageDisplay.java:226)
at imagej.data.display.AbstractImageDisplay.onEvent(AbstractImageDisplay.java:382)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
comment:4 Changed 2011-11-22T10:41:55-06:00 by bdezonia
- Status changed from new to closed
- Resolution set to fixed
Found issue and fixed in 9de2360eff61f119722b544de551596bd195da31
42 hours later, at rev 4116, cannot duplicate