saalfeldlab / paintera

GNU General Public License v2.0
99 stars 17 forks source link

Occasional NullPointerException at startup (minor) #399

Closed igorpisarev closed 4 years ago

igorpisarev commented 4 years ago

Sometimes the following exception occurs when the application is started, could be either with or without an existing project:

Exception in thread "painter-thread" java.lang.NullPointerException
    at bdv.fx.viewer.render.MultiResolutionRendererFX.lambda$new$0(MultiResolutionRendererFX.java:141)
    at bdv.fx.viewer.render.MultiResolutionRendererGeneric.checkRenewMaskArrays(MultiResolutionRendererGeneric.java:430)
    at bdv.fx.viewer.render.MultiResolutionRendererGeneric.paint(MultiResolutionRendererGeneric.java:523)
    at bdv.fx.viewer.render.RenderUnit.paint(RenderUnit.java:249)
    at bdv.fx.viewer.render.PainterThread.run(PainterThread.java:46)

It's not breaking anything and the application continues to run as expected, so it's not high priority but would be nice to fix.

hanslovsky commented 4 years ago

I have seen this exception a few times, too. I wonder if it is as simple as changing

img -> (int) img.getWidth(),
img -> (int) img.getHeight()

to

img -> img == null ? 0 : (int) img.getWidth(),
img -> img == null ? 0 : (int) img.getHeight()

or similar.

igorpisarev commented 4 years ago

I also sometimes get a similar but slightly different one:

Exception in thread "painter-thread" java.lang.ArrayIndexOutOfBoundsException: 3
    at bdv.fx.viewer.render.MultiResolutionRendererGeneric.paint(MultiResolutionRendererGeneric.java:637)
    at bdv.fx.viewer.render.RenderUnit.paint(RenderUnit.java:242)
    at bdv.fx.viewer.render.PainterThread.run(PainterThread.java:46)