我目前遇到一个非常奇怪的错误:当我使用参数-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
启动我的应用程序并通过Eclipse远程连接时,一切正常。当我删除此参数(没有其他更改)时,我得到以下异常:
Caused by: javax.imageio.IIOException: I/O error reading PNG header!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:315) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:654) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1248) ~[na:1.8.0_92]
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1606) ~[na:1.8.0_92]
at javax.imageio.ImageIO.read(ImageIO.java:1448) ~[na:1.8.0_92]
at javax.imageio.ImageIO.read(ImageIO.java:1400) ~[na:1.8.0_92]
at com.jgoodies.application.ResourceConverters$DefaultConverter.convertImage(ResourceConverters.java:452) ~[retest.jar:1.2.0-SNAPSHOT]
... 43 common frames omitted
Caused by: javax.imageio.IIOException: Bad length for IHDR chunk!
at com.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:247) ~[na:1.8.0_92]
... 49 common frames omitted
由于我真的没有改变其他任何东西,我认为它与this problem无关,因为图像文件显然没有损坏。
由于这对我来说是一个外国项目,它可能需要与第三方库或类似的东西。我在Mac上,Java 1.8.0_92,如果这可能是相关的。
更新:如果删除特定的jar文件,问题也会消失。但是,之后我得到NoClassDefFoundError
,所以需要jar文件。关于如何进行的任何想法和建议?
答案 0 :(得分:0)
我终于能够解决这个问题,虽然我不完全确定是什么导致了这个问题,为什么它是Heisenbug。
根据评论中的haraldK的建议,有问题的jar确实是ImageReaderSpi
,但它也有某种混淆运行时魔法。