IoSessionConfig.setUseReadOperation(true) doesn't seem to work
--------------------------------------------------------------
Key: DIRMINA-777
URL: https://issues.apache.org/jira/browse/DIRMINA-777
Project: MINA
Issue Type: Bug
Components: Core
Affects Versions: 2.0.0-RC1
Environment: Mac OS X 10.6.2, Java 1.6, Android SDK
Reporter: Matt Huggins
Priority: Blocker
I'm attempting to perform a synchronous write/read in a demux-based client
application with MINA 2.0 RC1, but it seems to get stuck. Here is my code:
{{{
public boolean login(final String username, final String password) {
// block inbound messages
session.getConfig().setUseReadOperation(true);
// send the login request
final LoginRequest loginRequest = new LoginRequest(username, password);
final WriteFuture writeFuture = session.write(loginRequest);
writeFuture.awaitUninterruptibly();
if (writeFuture.getException() != null) {
session.getConfig().setUseReadOperation(false);
return false;
}
// retrieve the login response
final ReadFuture readFuture = session.read();
readFuture.awaitUninterruptibly();
if (readFuture.getException() != null) {
session.getConfig().setUseReadOperation(false);
return false;
}
// stop blocking inbound messages
session.getConfig().setUseReadOperation(false);
// determine if the login info provided was valid
final LoginResponse loginResponse = (LoginResponse)readFuture.getMessage();
return loginResponse.getSuccess();
}
}}}
I can see on the server side that the LoginRequest object is retrieved, and a
LoginResponse message is sent. On the client side, the
DemuxingProtocolCodecFactory receives the response, but after throwing in some
logging, I can see that the client gets stuck on the call to
`readFuture.awaitUninterruptibly() `.
I can't for the life of me figure out why it is stuck here based upon my own
code. I properly set the read operation to true on the session config, meaning
that messages should be blocked. However, it seems as if the message no longer
exists by time I try to read response messages synchronously.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.