You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (Resolved) (JIRA)" <ji...@apache.org> on 2011/12/01 18:36:39 UTC
[jira] [Resolved] (HTTPCORE-283) Async server: NPE in
AsyncNHttpServiceHandler when throwing a HttpException from
NHttpRequestHandler.entityRequest
[ https://issues.apache.org/jira/browse/HTTPCORE-283?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oleg Kalnichevski resolved HTTPCORE-283.
----------------------------------------
Resolution: Fixed
This one turned out to be a rather nasty bug. I applied a workaround preventing the i/o reactor from terminating in case of an exception thrown in the #entityRequest method. However, the handler still drops the connection instead of sending a 501 or 500 status to the client, as expected. A proper fix has been applied to the trunk (4.2).
Oleg
> Async server: NPE in AsyncNHttpServiceHandler when throwing a HttpException from NHttpRequestHandler.entityRequest
> ------------------------------------------------------------------------------------------------------------------
>
> Key: HTTPCORE-283
> URL: https://issues.apache.org/jira/browse/HTTPCORE-283
> Project: HttpComponents HttpCore
> Issue Type: Bug
> Components: HttpCore NIO
> Affects Versions: 4.1.3
> Reporter: Isaac Cruz Ballesteros
> Fix For: 4.1.4, 4.2-alpha3
>
> Attachments: NHttpServer.java
>
>
> I want to implement a completely asynchronous server, I've used the NHttpServer example but changing the handler to AsyncNHttpServiceHandler.
> When throwing this exception from entityRequest():
> public ConsumingNHttpEntity entityRequest(HttpEntityEnclosingRequest request, HttpContext context)
> throws HttpException, IOException {
> throw new MethodNotSupportedException("method not supported");
> }
> the DefaultListeningIOReactor shutdowns throwing the following exception:
> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:321)
> at NHttpServer.main(NHttpServer.java:67)
> Caused by: java.lang.NullPointerException
> at org.apache.http.nio.protocol.AsyncNHttpServiceHandler.inputReady(AsyncNHttpServiceHandler.java:313)
> at org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:175)
> at org.apache.http.impl.nio.DefaultServerIOEventDispatch.inputReady(DefaultServerIOEventDispatch.java:154)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:158)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:340)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:318)
> at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
> at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
> at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542)
> at java.lang.Thread.run(Thread.java:619)
> I'm attaching the example to test the error
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org