Как отследить поврежденный PNG с ошибкой CR C, когда исключение обнаруживается в JVM? - PullRequest
0 голосов
/ 15 апреля 2020

Мое приложение использует сотни PNG, и один из них вызывает sun.awt.image.PNGImageDecoder$PNGException: crc corruption Трассировка стека регистрируется на консоли, но возникает исключение, и, как бы там ни было, изображение загружается. В моем коде нет исключений, и трассировка стека никоим образом не идентифицирует PNG.

Я хочу заменить сломанный PNG, но его трудно найти. Я написал небольшое приложение для загрузки каждого PNG, и снова, исключение регистрируется, но оно не может определить, какое из них. Поэтому мне было интересно, было ли хорошей идеей написать собственный обработчик журнала только для класса java .desktop / sun.awt.image.PNGImageDecoder, где вместо простого ведения журнала выдается ошибка, которая останавливает мой сканер в плохой файл. Есть ли способ лучше?

sun.awt.image.PNGImageDecoder$PNGException: crc corruption
    at java.desktop/sun.awt.image.PNGImageDecoder.getChunk(PNGImageDecoder.java:718)
    at java.desktop/sun.awt.image.PNGImageDecoder.getData(PNGImageDecoder.java:726)
    at java.desktop/sun.awt.image.PNGImageDecoder.produceImage(PNGImageDecoder.java:253)
    at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:269)
    at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
    at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)
...