Greetings,
I have another one ;-)
When I make a request with an explicitly incorrect URI (e.g. /a/
b/c/d/e)
An Exception is thrown on the Error exit, as shown below.
Which results in a 500 instead of a 404.
The offending code is shown below....
BTW: I tried just setting it to "utf-8", but it then throws a
NPE later
on (see below).
I can just comment out this JUnit for now, but I thought you
might want
to know...
Cheers,
-- Chris
============
In AbstractRequestHandler
------------------------------------
private void sendError(RequestContext request,
HttpResponse response, int code,
String message) throws
UnsupportedEncodingException,
IOException {
response.setStatus(code);
OutputStream out = response.getOutputStream();
// the following line should not be using
request.getAcceptCharset()
// since OutputStreamWriter doesn't understand "utf-8,
*;q=0.5"
OutputStreamWriter writer = new OutputStreamWriter(out,
request.getAcceptCharset());
// TODO: should we wrap this in some nice HTML?
// workaround.
// It looks like Messages.get("NOT.FOUND") is returning
null in
notfound()
if ( message == null )
message = "";
writer.write(message);
writer.close();
out.close();
}
=================
In MethodHelper
------------------------
public static RequestOptions createDefaultRequestOptions() {
RequestOptions options = new RequestOptions();
options.setAcceptEncoding(
"gzip",
"deflate");
options.setAccept(
"application/atom+xml;type=entry",
"application/atom+xml;type=feed",
"application/atom+xml",
"application/atomsvc+xml",
"application/atomcat+xml",
"application/xml",
"text/xml",
"*/*");
// temporary workaround
//options.setAcceptCharset( "utf-8", "*;q=0.5");
options.setAcceptCharset( "utf-8" );
return options;
}
============
dogstar:~/homeaway/pstore/cwb-newAbdera cberry$ java -version
java version "1.5.0_07"
Java(TM) 2 Runtime Environment, Standard Edition (build
1.5.0_07-164)
Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)
===============
Exception 1
[09/12/07 20:47:49:138] DEBUG - header - >>
"GET
/hcdata/v1/a/b/c/d/e HTTP/1.1[\r][\n]"
[09/12/07 20:47:49:138] DEBUG - HttpMethodBase -
Adding Host
request header
[09/12/07 20:47:49:153] DEBUG - header - >>
"Connection: close[\r][\n]"
[09/12/07 20:47:49:154] DEBUG - header - >>
"Accept-Encoding: gzip, deflate[\r][\n]"
[09/12/07 20:47:49:154] DEBUG - header - >>
"Accept-Charset: utf-8, *;q=0.5[\r][\n]"
[09/12/07 20:47:49:155] DEBUG - header - >>
"Accept:
application/atom+xml;type=entry, application/atom+xml;type=feed,
application/atom+xml, application/atomsvc+xml, application/
atomcat+xml,
application/xml, text/xml, */*[\r][\n]"
[09/12/07 20:47:49:156] DEBUG - header - >>
"User-Agent: Abdera/v0.3.0-incubating-SNAPSHOT[\r][\n]"
[09/12/07 20:47:49:156] DEBUG - header - >>
"Host:
localhost:40506[\r][\n]"
[09/12/07 20:47:49:156] DEBUG - header - >>
"[\r][\n]"
[09/12/07 20:47:50:27] DEBUG - DefaultServiceContext -
Returning
[EMAIL PROTECTED]
as
instance of {1}.
[09/12/07 20:47:50:32] DEBUG - DefaultServiceContext -
Returning
org.apache.abdera.protocol.server.impl.DefaultRequestHandlerManager
@bb613c
as instance of {1}.
[09/12/07 20:47:50:33] DEBUG - AbderaServlet -
Processing
request
[09/12/07 20:47:50:34] DEBUG - AbderaServlet -
Handler -
[EMAIL PROTECTED]
[09/12/07 20:47:50:35] DEBUG - AbstractRequestHandler -
Processing
the request
[09/12/07 20:47:50:35] DEBUG - AbstractRequestHandler - Using
provider: [EMAIL PROTECTED]
[09/12/07 20:47:50:47] ERROR - AbstractRequestHandler - Error
producing output
java.io.UnsupportedEncodingException: utf-8, *;q=0.5
at sun.io.Converters.getConverterClass(Converters.java:218)
at sun.io.Converters.newConverter(Converters.java:251)
at
sun.io.CharToByteConverter.getConverter(CharToByteConverter.java:
68)
at
sun.nio.cs.StreamEncoder$ConverterSE.<init>(StreamEncoder.java:189)
at
sun.nio.cs.StreamEncoder$ConverterSE.<init>(StreamEncoder.java:172)
at
sun.nio.cs.StreamEncoder.forOutputStreamWriter
(StreamEncoder.java:72)
at java.io.OutputStreamWriter.<init>
(OutputStreamWriter.java:82)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.sendE
rror(AbstractRequestHandler.java:156)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.notfo
und(AbstractRequestHandler.java:179)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.preco
nditions(AbstractRequestHandler.java:90)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.proce
ss(AbstractRequestHandler.java:60)
at
org.apache.abdera.protocol.server.servlet.AbderaServlet.service
(AbderaServlet.java:98)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:802)
at
org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:491)
at
org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:367)
at
org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:285)
at
org.mortbay.jetty.HttpConnection.handleRequest
(HttpConnection.java:457)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:751)
at org.mortbay.jetty.HttpParser.parseNext
(HttpParser.java:500)
at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run
(SocketConnector.java:217)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:475)
[09/12/07 20:47:50:51] DEBUG - AbstractRequestHandler -
Releasing
provider: [EMAIL PROTECTED]
==============
Exception 2
[09/12/07 21:16:48:171] ERROR - AbstractRequestHandler - Error
producing output
java.lang.NullPointerException
at java.io.Writer.write(Writer.java:126)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.sendE
rror(AbstractRequestHandler.java:158)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.notfo
und(AbstractRequestHandler.java:179)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.preco
nditions(AbstractRequestHandler.java:90)
at
org.apache.abdera.protocol.server.impl.AbstractRequestHandler.proce
ss(AbstractRequestHandler.java:60)
at
org.apache.abdera.protocol.server.servlet.AbderaServlet.service
(AbderaServlet.java:98)
at javax.servlet.http.HttpServlet.service
(HttpServlet.java:802)
at
org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:491)
at
org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:367)
at
org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:285)
at
org.mortbay.jetty.HttpConnection.handleRequest
(HttpConnection.java:457)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:751)
at org.mortbay.jetty.HttpParser.parseNext
(HttpParser.java:500)
at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
at
org.mortbay.jetty.bio.SocketConnector$Connection.run
(SocketConnector.java:217)
at
org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:475)
S'all good --- chriswberry at gmail dot com