[ https://issues.apache.org/jira/browse/DIRMINA-777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980743#action_12980743 ]
Emmanuel Lecharny commented on DIRMINA-777: ------------------------------------------- It will be closed if we consider that it's a real issue, or if we consider this is not. Still to be evaluated, as I don't have an Android device to test the issue, and as I don't have the full code of the client and server to reproduce it. > 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 > Fix For: 2.0.3 > > > 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: > {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(); > } > {code} > 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.