[
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)