The Image I/O PNG reader (and possibly other readers; have not tested) breaks
when used in conjunction with Java Web Start.
The attached test case illustrates the problem.
ClassLoader.getResourceAsStream() is used to fetch an InputStream for a PNG
image contained within the jar. When that InputStream is fed directly into
ImageIO.read(), the reader throws an exception. If a BufferedInputStream is
used to wrap that InputStream, the read succeeds. The read also succeeds if
all of the data in the stream is read manually into a byte array first and a
ByteArrayInputStream is fed into ImageIO.read(). Clearly Image I/O is assuming
something about the buffering behavior of incoming InputStreams, and possibly
something about the semantics of mark/read that might not hold true for
unbuffered input streams.
See comments section for location of test cases.
This bug is being reported against 1.4.2_02 as well as 1.5 because the bug looks
critical and the fix should be backported.