Threading issue with NIO extensions for client side code
--------------------------------------------------------
Key: HTTPCORE-23
URL: https://issues.apache.org/jira/browse/HTTPCORE-23
Project: HttpComponents Core
Issue Type: Bug
Components: HttpCore NIO
Affects Versions: 4.0-alpha3
Reporter: Asankha C. Perera
I would like to write a non-blocking client based on the NIO extensions, but
encounter an issue, which could be reproduced with a modified NHttpClient
example code as follows:
I want to start off a ConnectingIOReactor, and leave it running continuously.
Now, whenever I want to send a request through this reactor, I would want to
execute something like
ioReactor.connect(
new InetSocketAddress("www.yahoo.com", 80),
null,
new HttpHost("www.yahoo.com"));
However, if I execute the above before I execute
ioReactor.execute(ioEventDispatch), i.e position 1, then everything works fine.
If I try it after (i.e. position 2) the outcome is unpredictable - i.e. works
sometimes, NPE, etc..
It is not clear to me why connecting to the reactor after its execute() method
is invoked should be any different..?
public static void main(String[] args) throws Exception {
HttpParams params = new DefaultHttpParams(null);
.....
NHttpClientHandler handler = new MyNHttpClientHandler(params);
final IOEventDispatch ioEventDispatch = new
DefaultClientIOEventDispatch(handler, params);
// position 1 Thread t = new Thread(new Runnable() {
public void run() {
try {
ioReactor.execute(ioEventDispatch);
} catch (Exception e) {
e.printStackTrace();
}
}
}
);
t.start();
// position 2
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]