W3C home > Mailing lists > Public > public-mobileok-checker@w3.org > April 2008

Re: Exception not caugth

From: Sean Owen <srowen@google.com>
Date: Wed, 9 Apr 2008 23:37:43 -0400
Message-ID: <e920a71c0804092037h7320a5b2uaabf24723b4ae29@mail.gmail.com>
To: "Guido García Bernardo" <ggarciab@itdeusto.com>
Cc: "public-mobileok-checker@w3.org" <public-mobileok-checker@w3.org>
This GIF: http://www.latavolacalda.co.uk/_blnk.gif

... is indeed corrupt, but I think the ImageIO.read() method should
react differently. I filed a bug with Sun.

In the meantime we just catch for IndexOutOfBoundsException as a workaround.

On Tue, Apr 8, 2008 at 12:03 PM, Guido García Bernardo
<ggarciab@itdeusto.com> wrote:
>
>  Hi,
>
>  I've found a website that causes mobileOk to crash.
>
>  The website is http://www.latavolacalda.co.uk/ (it is the last word in web
> design) and mobileOk throws the exception below.  It could be caused by a
> transparent GIF image with a wrong format.
>  Capturing the IndexOutOfBoundsException in the
> HTTPImageResource.checkTransparency method is a solution, despite I don't
> like to catch RuntimeExceptions, so any other idea is welcomed.
>
>  Exception in thread "main" org.w3c.mwi.mobileok.basic.TestException:
> java.util.concurrent.ExecutionException:
> java.lang.reflect.InvocationTargetException
>      at
> org.w3c.mwi.mobileok.basic.Preprocessor.extractResourcesAsynchronously(Preprocessor.java:253)
>      at
> org.w3c.mwi.mobileok.basic.Preprocessor.preprocess(Preprocessor.java:124)
>      at
> org.w3c.mwi.mobileok.basic.Tester.getPreprocessorResults(Tester.java:90)
>      at org.w3c.mwi.mobileok.basic.Tester.main(Tester.java:202)
>  Caused by: java.util.concurrent.ExecutionException:
> java.lang.reflect.InvocationTargetException
>      at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
>      at java.util.concurrent.FutureTask.get(Unknown Source)
>      at
> org.w3c.mwi.mobileok.basic.Preprocessor.extractResourcesAsynchronously(Preprocessor.java:248)
>      ... 3 more
>  Caused by: java.lang.reflect.InvocationTargetException
>      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
>      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
> Source)
>      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
>      at java.lang.reflect.Constructor.newInstance(Unknown Source)
>      at
> org.w3c.mwi.mobileok.basic.Preprocessor$2.call(Preprocessor.java:233)
>      at org.w3c.mwi.mobileok.basic.Preprocessor$2.call(Preprocessor.java:1)
>      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>      at java.util.concurrent.FutureTask.run(Unknown Source)
>      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> Source)
>      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>      at java.lang.Thread.run(Unknown Source)
>  Caused by: java.lang.IndexOutOfBoundsException: off < 0 || len < 0 ||
> off+len > b.length || off+len < 0!
>      at javax.imageio.stream.MemoryCacheImageInputStream.read(Unknown
> Source)
>      at com.sun.imageio.plugins.gif.GIFImageReader.getCode(Unknown Source)
>      at com.sun.imageio.plugins.gif.GIFImageReader.read(Unknown Source)
>      at javax.imageio.ImageIO.read(Unknown Source)
>      at javax.imageio.ImageIO.read(Unknown Source)
>      at
> org.w3c.mwi.mobileok.basic.HTTPImageResource.checkTransparency(HTTPImageResource.java:149)
>      at
> org.w3c.mwi.mobileok.basic.HTTPImageResource.checkGIFValidity(HTTPImageResource.java:139)
>      at
> org.w3c.mwi.mobileok.basic.HTTPImageResource.<init>(HTTPImageResource.java:53)
>      ... 11 more
>
>  Thank you !
>  guido.
>
Received on Thursday, 10 April 2008 03:38:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 10 April 2008 03:38:47 GMT