- From: Guido García Bernardo <ggarciab@itdeusto.com>
- Date: Wed, 30 Jan 2008 16:01:39 +0100
- To: Jo Rabin <jrabin@mtld.mobi>
- CC: public-mobileok-checker@w3.org
- Message-ID: <47A09153.5070606@itdeusto.com>
Yes, I have had that problem with some pages that contains wrong links to external resources, getting exceptions like : Exception in thread "main" java.lang.IllegalArgumentException: Invalid uri 'http://prisacomas.112.2o7.net/b/ss/prisacomas/1/H.11--NS/0?[AQB]&pccr=true&g=none&[AQE]': Invalid query at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222) at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89) at org.w3c.mwi.mobileok.basic.HTTPResource.<init>(Unknown Source) at org.w3c.mwi.mobileok.basic.HTTPImageResource.<init>(Unknown Source) at org.w3c.mwi.mobileok.basic.Preprocessor.preprocess(Unknown Source) at org.w3c.mwi.mobileok.basic.Preprocessor.preprocess(Unknown Source) at org.w3c.mwi.mobileok.basic.Tester.getPreprocessorResults(Unknown Source) at org.w3c.mwi.mobileok.basic.Tester.main(Unknown Source) As Francois said, I think the catching should be done within the checker. That way, an error in the page being tested does not imply a crash in the whole testing process. For example, in the HTTPResource constructor, what happens when the uri argument is not valid ? HTTPResource(final URI uri ...) ... { ... URI redirectURI = this.uri; ... final HttpMethod method = new GetMethod(redirectURI.toString()); // IllegalArgumentException ... } HttpClient throws an IllegalArgumentException that is not caugth... Please correct me if I am missing some thing. guido. Jo Rabin escribió: > Presumably the same exceptions get thrown if a page under test has an > invalid reference to some external resource? In which case I suggest > that we catch these exceptions before beta starts on the basis that the > result should be FAIL. > > Jo > > > > >> -----Original Message----- >> From: public-mobileok-checker-request@w3.org [mailto:public-mobileok- >> checker-request@w3.org] On Behalf Of Francois Daoust >> Sent: 30 January 2008 14:13 >> To: public-mobileok-checker@w3.org >> Subject: Exceptions thrown by the mobileok checker >> >> >> Hi, >> >> While re-writing the mobileOK checker validation page, I encountered a >> few cases when the checker throws some exceptions, not because it >> crashed, but because the URI entered is either inaccessible or not >> valid. See examples below. >> >> The exceptions being thrown are developer-readable, but throwing such >> exceptions when it's not the checker's fault makes it harder to wrap >> something around it. If you take a look at: >> http://validator.w3.org/mobile/alpha?docAddr=test >> ... one would immediately think the checker crashed, and try again, >> > and > >> again, and then yell by email. >> [note the exception returned is slightly different from the example >> below because the version of the JAR is older] >> >> I'll handle the exceptions I can think of in the validator page to >> return a more user-friendly message that really states that the >> > problem > >> lies with the URI, but I tend to think the checker should be a black >> > box > >> that only throws exceptions when it crashes because of a bug, not >> because the URI is incorrect, and thus that the catching should rather >> be done within the checker. >> >> Or that we should at least provide the list of the exceptions that may >> be thrown by the checker [does it already exist?] >> >> I don't think that needs to be done for the beta though... >> If there's no objection, I could also action myself and do that, >> although I'm not sure I'll be able to work on it very soon. >> >> What do you think? >> >> Francois. >> >> >> >> Examples: >> >> 1. network error because the resource cannot be accessed: >> java -jar mobileOK-Basic-RI-1.0-deploy.jar thisdomaindoesntexist.com >> Exception in thread "main" org.w3c.mwi.mobileok.basic.TestException: A >> network error has happened while retrieving the requested Web page. >> MobileOK Basic Test can not be launched. >> at >> >> > org.w3c.mwi.mobileok.basic.Preprocessor.preprocess(Preprocessor.java:37) > >> at >> >> > org.w3c.mwi.mobileok.basic.Tester.getPreprocessorResults(Tester.java:91) > >> at org.w3c.mwi.mobileok.basic.Tester.main(Tester.java:201) >> >> >> 2. URI syntax error because the URI is invalid: >> java -jar mobileOK-Basic-RI-1.0-deploy.jar http:// >> Exception in thread "main" java.net.URISyntaxException: Expected >> > authority > >> at index 7: http:// >> at java.net.URI$Parser.fail(URI.java:2809) >> at java.net.URI$Parser.failExpecting(URI.java:2815) >> at java.net.URI$Parser.parseHierarchical(URI.java:3063) >> at java.net.URI$Parser.parse(URI.java:3014) >> at java.net.URI.<init>(URI.java:578) >> at org.w3c.mwi.mobileok.basic.Tester.main(Tester.java:136) >> >> >> 3. Protocol error when the URI is valid but the protocol unknown: >> java -jar mobileOK-Basic-RI-1.0-deploy.jar invalid://something >> Exception in thread "main" java.lang.IllegalStateException: >> > unsupported > >> protocol: 'invalid' >> at >> >> > org.apache.commons.httpclient.protocol.Protocol.lazyRegisterProtocol(Pro > to > >> col.java:149) >> at >> >> > org.apache.commons.httpclient.protocol.Protocol.getProtocol(Protocol.jav > a: > >> 117) >> at >> org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107) >> at >> >> > org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java: > 28 > >> 0) >> at >> >> > org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java: > 22 > >> 0) >> at >> >> > org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89 > ) > >> at >> org.w3c.mwi.mobileok.basic.HTTPResource.<init>(HTTPResource.java:107) >> at >> org.w3c.mwi.mobileok.basic.HTTPResource.<init>(HTTPResource.java:80) >> at >> >> > org.w3c.mwi.mobileok.basic.HTTPTextResource.<init>(HTTPTextResource.java > :3 > >> 7) >> at >> >> > org.w3c.mwi.mobileok.basic.HTTPXHTMLResource.<init>(HTTPXHTMLResource.ja > va > >> :93) >> at >> >> > org.w3c.mwi.mobileok.basic.Preprocessor.preprocess(Preprocessor.java:31) > >> at >> >> > org.w3c.mwi.mobileok.basic.Tester.getPreprocessorResults(Tester.java:91) > >> at org.w3c.mwi.mobileok.basic.Tester.main(Tester.java:201) >> >> >> > > >
Received on Wednesday, 30 January 2008 15:02:34 UTC