imagej / imagej/imagej-common

DefaultDataTypeService.getTypeByClass does not work for UnsignedLongType

Open
#77 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
12
Forks
15
PR merge metrics
No merged PRs in 30d

Description

When I try to show a `RandomAccessibleInterval` image in ImageJ, the console/log window keeps throwing exceptions (while IJ is still able to show the window). Simple failing example (Beware: Kotlin!):
```kotlin
import net.imagej.ImageJ
import net.imglib2.img.array.ArrayImgs

fun main(args: Array) {
val ij = ImageJ()
ij.ui().showUI()
ij.ui().show("img", ArrayImgs.unsignedLongs(200, 100))
}
```

[ERROR] Exception during event handling

```
[ERROR] Exception during event handling:
[Event] net.imagej.display.event.PanZoomEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
canvas = net.imagej.display.DefaultImageCanvas@f85391c
scale = 1.0
centerX = 99.5
centerY = 49.5
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(net.imagej.display.event.PanZoomEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:325)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at net.imagej.display.DefaultImageCanvas.publishPanZoomEvent(DefaultImageCanvas.java:417)
at net.imagej.display.DefaultImageCanvas.setPanCenter(DefaultImageCanvas.java:252)
at net.imagej.display.DefaultImageCanvas.panReset(DefaultImageCanvas.java:279)
at net.imagej.display.DefaultImageCanvas.getPanCenter(DefaultImageCanvas.java:228)
at net.imagej.display.DefaultImageCanvas.getLeftImageX(DefaultImageCanvas.java:428)
at net.imagej.display.DefaultImageCanvas.dataToPanelCoords(DefaultImageCanvas.java:206)
at net.imagej.display.DefaultImageCanvas.getPanOffset(DefaultImageCanvas.java:236)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.sync(JHotDrawImageCanvas.java:497)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.syncCanvas(JHotDrawImageCanvas.java:471)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.adjustmentValueChanged(JHotDrawImageCanvas.java:280)
at javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
at javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
at javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
at javax.swing.JViewport.reshape(JViewport.java:839)
at java.awt.Component.setBounds(Component.java:2261)
at java.awt.Component.setBounds(Component.java:2405)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
at java.awt.Container.layout(Container.java:1513)
at java.awt.Container.doLayout(Container.java:1502)
at java.awt.Container.validateTree(Container.java:1698)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validate(Container.java:1633)
at java.awt.Container.validateUnconditionally(Container.java:1670)
at java.awt.Window.pack(Window.java:818)
at org.scijava.ui.swing.viewer.SwingDisplayWindow.showDisplay(SwingDisplayWindow.java:69)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:87)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[ERROR] Exception during event handling:
[Event] net.imagej.display.event.PanZoomEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
canvas = net.imagej.display.DefaultImageCanvas@f85391c
scale = 1.0
centerX = 100.5
centerY = 50.5
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(net.imagej.display.event.PanZoomEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:325)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at net.imagej.display.DefaultImageCanvas.publishPanZoomEvent(DefaultImageCanvas.java:417)
at net.imagej.display.DefaultImageCanvas.setPanCenter(DefaultImageCanvas.java:252)
at net.imagej.display.DefaultImageCanvas.setZoomAndCenter(DefaultImageCanvas.java:320)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.sync(JHotDrawImageCanvas.java:528)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.syncCanvas(JHotDrawImageCanvas.java:471)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.adjustmentValueChanged(JHotDrawImageCanvas.java:280)
at javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
at javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
at javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
at javax.swing.JViewport.setViewSize(JViewport.java:1021)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.sync(JHotDrawImageCanvas.java:535)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.syncUI(JHotDrawImageCanvas.java:476)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.onEvent(JHotDrawImageCanvas.java:375)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at net.imagej.display.DefaultImageCanvas.publishPanZoomEvent(DefaultImageCanvas.java:417)
at net.imagej.display.DefaultImageCanvas.setPanCenter(DefaultImageCanvas.java:252)
at net.imagej.display.DefaultImageCanvas.panReset(DefaultImageCanvas.java:279)
at net.imagej.display.DefaultImageCanvas.getPanCenter(DefaultImageCanvas.java:228)
at net.imagej.display.DefaultImageCanvas.getLeftImageX(DefaultImageCanvas.java:428)
at net.imagej.display.DefaultImageCanvas.dataToPanelCoords(DefaultImageCanvas.java:206)
at net.imagej.display.DefaultImageCanvas.getPanOffset(DefaultImageCanvas.java:236)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.sync(JHotDrawImageCanvas.java:497)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.syncCanvas(JHotDrawImageCanvas.java:471)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.adjustmentValueChanged(JHotDrawImageCanvas.java:280)
at javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
at javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
at javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
at javax.swing.JViewport.reshape(JViewport.java:839)
at java.awt.Component.setBounds(Component.java:2261)
at java.awt.Component.setBounds(Component.java:2405)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
at java.awt.Container.layout(Container.java:1513)
at java.awt.Container.doLayout(Container.java:1502)
at java.awt.Container.validateTree(Container.java:1698)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validate(Container.java:1633)
at java.awt.Container.validateUnconditionally(Container.java:1670)
at java.awt.Window.pack(Window.java:818)
at org.scijava.ui.swing.viewer.SwingDisplayWindow.showDisplay(SwingDisplayWindow.java:69)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:87)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[ERROR] Exception during event handling:
[Event] net.imagej.display.event.PanZoomEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
canvas = net.imagej.display.DefaultImageCanvas@f85391c
scale = 1.0
centerX = 100.5
centerY = 50.5
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(net.imagej.display.event.PanZoomEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:325)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at net.imagej.display.DefaultImageCanvas.publishPanZoomEvent(DefaultImageCanvas.java:417)
at net.imagej.display.DefaultImageCanvas.setPanCenter(DefaultImageCanvas.java:252)
at net.imagej.display.DefaultImageCanvas.setZoomAndCenter(DefaultImageCanvas.java:320)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.sync(JHotDrawImageCanvas.java:528)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.syncCanvas(JHotDrawImageCanvas.java:471)
at net.imagej.ui.swing.viewer.image.JHotDrawImageCanvas.adjustmentValueChanged(JHotDrawImageCanvas.java:280)
at javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
at javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
at javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
at javax.swing.JViewport.reshape(JViewport.java:839)
at java.awt.Component.setBounds(Component.java:2261)
at java.awt.Component.setBounds(Component.java:2405)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
at java.awt.Container.layout(Container.java:1513)
at java.awt.Container.doLayout(Container.java:1502)
at java.awt.Container.validateTree(Container.java:1698)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validateTree(Container.java:1707)
at java.awt.Container.validate(Container.java:1633)
at java.awt.Container.validateUnconditionally(Container.java:1670)
at java.awt.Window.pack(Window.java:818)
at org.scijava.ui.swing.viewer.SwingDisplayWindow.showDisplay(SwingDisplayWindow.java:69)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:87)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[ERROR] Exception during event handling:
[Event] net.imagej.display.event.PanZoomEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
canvas = net.imagej.display.DefaultImageCanvas@f85391c
scale = 1.0
centerX = 100.5
centerY = 50.5
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(net.imagej.display.event.PanZoomEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:325)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at net.imagej.display.DefaultImageCanvas.publishPanZoomEvent(DefaultImageCanvas.java:417)
at net.imagej.display.DefaultImageCanvas.setPanCenter(DefaultImageCanvas.java:252)
at net.imagej.display.DefaultImageCanvas.setZoomAndCenter(DefaultImageCanvas.java:320)
at net.imagej.display.DefaultImageCanvas.setZoomAndCenter(DefaultImageCanvas.java:310)
at net.imagej.ui.swing.viewer.image.SwingImageDisplayPanel.doInitialSizing(SwingImageDisplayPanel.java:296)
at net.imagej.ui.swing.viewer.image.SwingImageDisplayPanel.redoLayout(SwingImageDisplayPanel.java:176)
at org.scijava.ui.viewer.DisplayViewer.onDisplayUpdatedEvent(DisplayViewer.java:119)
at org.scijava.ui.DefaultUIService.onEvent(DefaultUIService.java:405)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at org.scijava.display.AbstractDisplay.update(AbstractDisplay.java:124)
at net.imagej.display.DefaultImageDisplay.update(DefaultImageDisplay.java:313)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:88)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[ERROR] Exception during event handling:
[Event] org.scijava.display.event.DisplayUpdatedEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void org.scijava.ui.viewer.AbstractDisplayViewer.onEvent(org.scijava.display.event.DisplayUpdatedEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:353)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at org.scijava.display.AbstractDisplay.update(AbstractDisplay.java:124)
at net.imagej.display.DefaultImageDisplay.update(DefaultImageDisplay.java:313)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:88)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[ERROR] Exception during event handling:
[Event] org.scijava.display.event.DisplayUpdatedEvent
context = org.scijava.Context@582ad368
consumed = false
display = stacked
[Subscriber] plugin:class net.imagej.ui.swing.sdi.viewer.SwingSdiImageDisplayViewer
[Method] protected void net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(org.scijava.display.event.DisplayUpdatedEvent)
java.lang.NullPointerException
at net.imagej.DefaultDataset.getTypeLabelLong(DefaultDataset.java:244)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.makeLabel(AbstractImageDisplayViewer.java:187)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.updateLabel(AbstractImageDisplayViewer.java:120)
at net.imagej.ui.viewer.image.AbstractImageDisplayViewer.onEvent(AbstractImageDisplayViewer.java:353)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:301)
at org.scijava.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:275)
at org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
at org.scijava.event.DefaultEventBus.access$101(DefaultEventBus.java:57)
at org.scijava.event.DefaultEventBus$1.run(DefaultEventBus.java:191)
at org.scijava.thread.DefaultThreadService.invoke(DefaultThreadService.java:114)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:185)
at org.scijava.event.DefaultEventBus.publishNow(DefaultEventBus.java:76)
at org.scijava.event.DefaultEventService.publish(DefaultEventService.java:105)
at org.scijava.display.AbstractDisplay.update(AbstractDisplay.java:124)
at net.imagej.display.DefaultImageDisplay.update(DefaultImageDisplay.java:313)
at org.scijava.ui.viewer.DisplayViewer.view(DisplayViewer.java:88)
at org.scijava.ui.AbstractUserInterface$1.run(AbstractUserInterface.java:141)
at org.scijava.thread.DefaultThreadService$2.run(DefaultThreadService.java:221)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
```

I was able to track the issue down to `DefaultDataTypeService.getTypeByClass`. `DefaultDataTypeService.typesByClass` does not contain an entry for `UnsignedLongType` (screenshot of my debugger):
![screenshot_20180803_122013](https://user-images.githubusercontent.com/1086317/43653933-953d8442-9717-11e8-9a5c-27511bc2b9c9.png)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting DefaultDataTypeService.getTypeByClass and the failing call in DefaultDataset.getTypeLabelLong. Reproduce the issue with the Kotlin ImageJ and ArrayImgs.unsignedLongs example, then trace the UnsignedLongType handling and verify that displaying the image no longer produces the reported NullPointerException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kotlin
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.