Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.5, 2.0.1
-
None
-
None
Description
UndeclaredThrowableException is thrown if an image cannot be loaded for some reason.
Caused by: java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy313.readUnsignedInt(Unknown Source) at org.apache.xmlgraphics.image.loader.impl.PreloaderEPS.preloadImage(PreloaderEPS.java:65) [xmlgraphics-commons-1.5.jar:1.5] at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:175) [xmlgraphics-commons-1.5.jar:1.5] at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:128) [xmlgraphics-commons-1.5.jar:1.5] at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:122) [xmlgraphics-commons-1.5.jar:1.5] at org.apache.fop.fo.flow.ExternalGraphic.bind(ExternalGraphic.java:81) [fop-1.1.jar:] at org.apache.fop.fo.FObj.processNode(FObj.java:124) [fop-1.1.jar:] at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:280) [fop-1.1.jar:] at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:175) [fop-1.1.jar:] ... Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor2609.invoke(Unknown Source) [:1.8.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_25] at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0_25] at org.apache.xmlgraphics.image.loader.impl.AbstractImageSessionContext$ObservingImageInputStreamInvocationHandler.invoke(AbstractImageSessionContext.java:219) [ xmlgraphics-commons-1.5.jar:1.5] ... 254 more Caused by: java.io.EOFException at javax.imageio.stream.ImageInputStreamImpl.readInt(ImageInputStreamImpl.java:251) [rt.jar:1.8.0_25] at javax.imageio.stream.ImageInputStreamImpl.readUnsignedInt(ImageInputStreamImpl.java:266) [rt.jar:1.8.0_25] ... 258 more
The problem being that InvocationHandlers in the classes AbstractImageSessionContext and ObservableStream do not handle InvocationTargetException properly, and the exception is propagated up to the proxied interface where InvocationTargetException is not specified.
I am not sure if you accept pull requests on Github, anyway here it is https://github.com/apache/xml-graphics-commons/pull/1