[ https://issues.apache.org/jira/browse/THRIFT-3112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15146523#comment-15146523 ]
ASF GitHub Bot commented on THRIFT-3112: ---------------------------------------- Github user nsuke commented on a diff in the pull request: https://github.com/apache/thrift/pull/840#discussion_r52841869 --- Diff: lib/java/src/org/apache/thrift/async/TAsyncMethodCall.java --- @@ -225,8 +231,13 @@ private void cleanUpAndFireCallback(SelectionKey key) { key.interestOps(0); // this ensures that the TAsyncMethod instance doesn't hang around key.attach(null); --- End diff -- AFAIK, key is not removed from `selector.keys()` unless `key.cancel()` is called, so `interestOps(0)` and `attach(null)` is not enough (maybe wrong assumption ?). Do you happen to have any idea why the original code does not call `cancel()` for the success path here ? As your intention here seems to be to prevent `key.cancel()` in `transition()` for the error path, I thought you might know about it. > [Java] AsyncMethodCallback should be typed in generated AsyncIface > ------------------------------------------------------------------ > > Key: THRIFT-3112 > URL: https://issues.apache.org/jira/browse/THRIFT-3112 > Project: Thrift > Issue Type: Improvement > Components: Java - Compiler, Java - Library > Affects Versions: 0.9.2 > Reporter: Sergei Egorov > Assignee: John Sirois > > AsyncMethodCallback is generic, but current Java code generator is not adding > type info to it, and instead of: > {code:java} > public interface AsyncIface { > public void ping(org.apache.thrift.async.AsyncMethodCallback<String> > resultHandler) throws org.apache.thrift.TException; > } > {code} > we have: > {code:java} > public interface AsyncIface { > public void ping(org.apache.thrift.async.AsyncMethodCallback > resultHandler) throws org.apache.thrift.TException; > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)