{"action":"created","comment":{"url":"https://api.github.com/repos/apache/accumulo/pulls/comments/46302133","id":46302133,"diff_hunk":"@@ -36,20 +42,51 @@\n  * @since 1.6.1\n  */\n public class RpcWrapper {\n+  private static final Logger log = LoggerFactory.getLogger(RpcWrapper.class);\n+\n+  public static <T> T service(final T instance, @SuppressWarnings(\"rawtypes\") final Map<String,ProcessFunction<T,? extends TBase>> processorView) {\n+    // Get a handle on the isOnewayMethod and make it accessible\n+    final Method isOnewayMethod;\n+    try {\n+      isOnewayMethod = ProcessFunction.class.getDeclaredMethod(\"isOneway\");\n+    } catch (NoSuchMethodException e) {\n+      throw new RuntimeException(\"Could not access isOneway method\", e);\n+    } catch (SecurityException e) {\n+      throw new RuntimeException(\"Could not access isOneway method\", e);\n+    }\n+    isOnewayMethod.setAccessible(true);","path":"server/base/src/main/java/org/apache/accumulo/server/util/RpcWrapper.java","position":33,"original_position":33,"commit_id":"9cd4796acb013855f5ed0c87726a09f6be5436f5","original_commit_id":"9cd4796acb013855f5ed0c87726a09f6be5436f5","user":{"login":"keith-turner","id":1268739,"avatar_url":"https://avatars.githubusercontent.com/u/1268739?v=3","gravatar_id":"","url":"https://api.github.com/users/keith-turner","html_url":"https://github.com/keith-turner","followers_url":"https://api.github.com/users/keith-turner/followers","following_url":"https://api.github.com/users/keith-turner/following{/other_user}","gists_url":"https://api.github.com/users/keith-turner/gists{/gist_id}","starred_url":"https://api.github.com/users/keith-turner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/keith-turner/subscriptions","organizations_url":"https://api.github.com/users/keith-turner/orgs","repos_url":"https://api.github.com/users/keith-turner/repos","events_url":"https://api.github.com/users/keith-turner/events{/privacy}","received_events_url":"https://api.github.com/users/keith-turner/received_events","type":"User","site_admin":false},"body":"Should this be set back to false?","created_at":"2015-12-01T16:38:37Z","updated_at":"2015-12-01T16:38:37Z","html_url":"https://github.com/apache/accumulo/pull/56#discussion_r46302133","pull_request_url":"https://api.github.com/repos/apache/accumulo/pulls/56","_links":{"self":{"href":"https://api.github.com/repos/apache/accumulo/pulls/comments/46302133"},"html":{"href":"https://github.com/apache/accumulo/pull/56#discussion_r46302133"},"pull_request":{"href":"https://api.github.com/repos/apache/accumulo/pulls/56"}}},"pull_request":{"url":"https://api.github.com/repos/apache/accumulo/pulls/56","id":52216770,"html_url":"https://github.com/apache/accumulo/pull/56","diff_url":"https://github.com/apache/accumulo/pull/56.diff","patch_url":"https://github.com/apache/accumulo/pull/56.patch","issue_url":"https://api.github.com/repos/apache/accumulo/issues/56","number":56,"state":"open","locked":false,"title":"ACCUMULO-4065 Work around TExceptions being written back to clients i…","user":{"login":"joshelser","id":67863,"avatar_url":"https://avatars.githubusercontent.com/u/67863?v=3","gravatar_id":"","url":"https://api.github.com/users/joshelser","html_url":"https://github.com/joshelser","followers_url":"https://api.github.com/users/joshelser/followers","following_url":"https://api.github.com/users/joshelser/following{/other_user}","gists_url":"https://api.github.com/users/joshelser/gists{/gist_id}","starred_url":"https://api.github.com/users/joshelser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshelser/subscriptions","organizations_url":"https://api.github.com/users/joshelser/orgs","repos_url":"https://api.github.com/users/joshelser/repos","events_url":"https://api.github.com/users/joshelser/events{/privacy}","received_events_url":"https://api.github.com/users/joshelser/received_events","type":"User","site_admin":false},"body":"…n oneway methods.\r\n\r\nIn talking to @keith-turner on the previous pull request, we came to the conclusion that the real issue was that when a TException is thrown on by the (server-side) Processor on a oneway method, a message is written back to the client. This message is left on the wire, and will mess up other calls which expect their message to be on the wire (this was what the first pull request realized and tried to work around).\r\n\r\nI noticed that RpcWrapper is actually rethrowing RTEs and Errors as TExceptions, in an attempt to work around some change in logic from 0.6.0 and 0.9.0. Since clients will never know that an Exception was thrown as a result of some invocation of a oneway Thrift call, we want to avoid wrapping and rethrowing any RTE/Error in the oneway call's path.\r\n\r\nThese changes alter RpcWrapper so that it does not wrap and rethrow RTEs and Errors when thrown from a oneway method invocation.\r\n\r\nI verified that the patch works with some logging (thus removed), as well as hacking together a call to TabletClientService.fastHalt and verifying that no data is sent back to the client.","created_at":"2015-12-01T05:08:06Z","updated_at":"2015-12-01T16:38:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cd41f0870e67c568de7f679830686bdad86d25bc","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/apache/accumulo/pulls/56/commits","review_comments_url":"https://api.github.com/repos/apache/accumulo/pulls/56/comments","review_comment_url":"https://api.github.com/repos/apache/accumulo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/accumulo/issues/56/comments","statuses_url":"https://api.github.com/repos/apache/accumulo/statuses/9cd4796acb013855f5ed0c87726a09f6be5436f5","head":{"label":"joshelser:ACCUMULO-4065-oneway-exceptions","ref":"ACCUMULO-4065-oneway-exceptions","sha":"9cd4796acb013855f5ed0c87726a09f6be5436f5","user":{"login":"joshelser","id":67863,"avatar_url":"https://avatars.githubusercontent.com/u/67863?v=3","gravatar_id":"","url":"https://api.github.com/users/joshelser","html_url":"https://github.com/joshelser","followers_url":"https://api.github.com/users/joshelser/followers","following_url":"https://api.github.com/users/joshelser/following{/other_user}","gists_url":"https://api.github.com/users/joshelser/gists{/gist_id}","starred_url":"https://api.github.com/users/joshelser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshelser/subscriptions","organizations_url":"https://api.github.com/users/joshelser/orgs","repos_url":"https://api.github.com/users/joshelser/repos","events_url":"https://api.github.com/users/joshelser/events{/privacy}","received_events_url":"https://api.github.com/users/joshelser/received_events","type":"User","site_admin":false},"repo":{"id":5158996,"name":"accumulo","full_name":"joshelser/accumulo","owner":{"login":"joshelser","id":67863,"avatar_url":"https://avatars.githubusercontent.com/u/67863?v=3","gravatar_id":"","url":"https://api.github.com/users/joshelser","html_url":"https://github.com/joshelser","followers_url":"https://api.github.com/users/joshelser/followers","following_url":"https://api.github.com/users/joshelser/following{/other_user}","gists_url":"https://api.github.com/users/joshelser/gists{/gist_id}","starred_url":"https://api.github.com/users/joshelser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshelser/subscriptions","organizations_url":"https://api.github.com/users/joshelser/orgs","repos_url":"https://api.github.com/users/joshelser/repos","events_url":"https://api.github.com/users/joshelser/events{/privacy}","received_events_url":"https://api.github.com/users/joshelser/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/joshelser/accumulo","description":"Mirror of Apache Accumulo","fork":true,"url":"https://api.github.com/repos/joshelser/accumulo","forks_url":"https://api.github.com/repos/joshelser/accumulo/forks","keys_url":"https://api.github.com/repos/joshelser/accumulo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joshelser/accumulo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joshelser/accumulo/teams","hooks_url":"https://api.github.com/repos/joshelser/accumulo/hooks","issue_events_url":"https://api.github.com/repos/joshelser/accumulo/issues/events{/number}","events_url":"https://api.github.com/repos/joshelser/accumulo/events","assignees_url":"https://api.github.com/repos/joshelser/accumulo/assignees{/user}","branches_url":"https://api.github.com/repos/joshelser/accumulo/branches{/branch}","tags_url":"https://api.github.com/repos/joshelser/accumulo/tags","blobs_url":"https://api.github.com/repos/joshelser/accumulo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joshelser/accumulo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joshelser/accumulo/git/refs{/sha}","trees_url":"https://api.github.com/repos/joshelser/accumulo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joshelser/accumulo/statuses/{sha}","languages_url":"https://api.github.com/repos/joshelser/accumulo/languages","stargazers_url":"https://api.github.com/repos/joshelser/accumulo/stargazers","contributors_url":"https://api.github.com/repos/joshelser/accumulo/contributors","subscribers_url":"https://api.github.com/repos/joshelser/accumulo/subscribers","subscription_url":"https://api.github.com/repos/joshelser/accumulo/subscription","commits_url":"https://api.github.com/repos/joshelser/accumulo/commits{/sha}","git_commits_url":"https://api.github.com/repos/joshelser/accumulo/git/commits{/sha}","comments_url":"https://api.github.com/repos/joshelser/accumulo/comments{/number}","issue_comment_url":"https://api.github.com/repos/joshelser/accumulo/issues/comments{/number}","contents_url":"https://api.github.com/repos/joshelser/accumulo/contents/{+path}","compare_url":"https://api.github.com/repos/joshelser/accumulo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joshelser/accumulo/merges","archive_url":"https://api.github.com/repos/joshelser/accumulo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joshelser/accumulo/downloads","issues_url":"https://api.github.com/repos/joshelser/accumulo/issues{/number}","pulls_url":"https://api.github.com/repos/joshelser/accumulo/pulls{/number}","milestones_url":"https://api.github.com/repos/joshelser/accumulo/milestones{/number}","notifications_url":"https://api.github.com/repos/joshelser/accumulo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joshelser/accumulo/labels{/name}","releases_url":"https://api.github.com/repos/joshelser/accumulo/releases{/id}","created_at":"2012-07-23T23:52:39Z","updated_at":"2014-06-20T06:27:06Z","pushed_at":"2015-12-01T05:00:26Z","git_url":"git://github.com/joshelser/accumulo.git","ssh_url":"git@github.com:joshelser/accumulo.git","clone_url":"https://github.com/joshelser/accumulo.git","svn_url":"https://github.com/joshelser/accumulo","homepage":"","size":47876,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"apache:1.6","ref":"1.6","sha":"e82c3f3dab208478173e352635f87a96d72a38b2","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":2524488,"name":"accumulo","full_name":"apache/accumulo","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/accumulo","description":"Mirror of Apache Accumulo","fork":false,"url":"https://api.github.com/repos/apache/accumulo","forks_url":"https://api.github.com/repos/apache/accumulo/forks","keys_url":"https://api.github.com/repos/apache/accumulo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/accumulo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/accumulo/teams","hooks_url":"https://api.github.com/repos/apache/accumulo/hooks","issue_events_url":"https://api.github.com/repos/apache/accumulo/issues/events{/number}","events_url":"https://api.github.com/repos/apache/accumulo/events","assignees_url":"https://api.github.com/repos/apache/accumulo/assignees{/user}","branches_url":"https://api.github.com/repos/apache/accumulo/branches{/branch}","tags_url":"https://api.github.com/repos/apache/accumulo/tags","blobs_url":"https://api.github.com/repos/apache/accumulo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/accumulo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/accumulo/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/accumulo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/accumulo/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/accumulo/languages","stargazers_url":"https://api.github.com/repos/apache/accumulo/stargazers","contributors_url":"https://api.github.com/repos/apache/accumulo/contributors","subscribers_url":"https://api.github.com/repos/apache/accumulo/subscribers","subscription_url":"https://api.github.com/repos/apache/accumulo/subscription","commits_url":"https://api.github.com/repos/apache/accumulo/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/accumulo/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/accumulo/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/accumulo/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/accumulo/contents/{+path}","compare_url":"https://api.github.com/repos/apache/accumulo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/accumulo/merges","archive_url":"https://api.github.com/repos/apache/accumulo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/accumulo/downloads","issues_url":"https://api.github.com/repos/apache/accumulo/issues{/number}","pulls_url":"https://api.github.com/repos/apache/accumulo/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/accumulo/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/accumulo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/accumulo/labels{/name}","releases_url":"https://api.github.com/repos/apache/accumulo/releases{/id}","created_at":"2011-10-06T07:00:09Z","updated_at":"2015-11-20T20:22:21Z","pushed_at":"2015-12-01T05:08:08Z","git_url":"git://github.com/apache/accumulo.git","ssh_url":"git@github.com:apache/accumulo.git","clone_url":"https://github.com/apache/accumulo.git","svn_url":"https://github.com/apache/accumulo","homepage":"","size":49878,"stargazers_count":188,"watchers_count":188,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":109,"mirror_url":"git://git.apache.org/accumulo.git","open_issues_count":5,"forks":109,"open_issues":5,"watchers":188,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/accumulo/pulls/56"},"html":{"href":"https://github.com/apache/accumulo/pull/56"},"issue":{"href":"https://api.github.com/repos/apache/accumulo/issues/56"},"comments":{"href":"https://api.github.com/repos/apache/accumulo/issues/56/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/accumulo/pulls/56/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/accumulo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/accumulo/pulls/56/commits"},"statuses":{"href":"https://api.github.com/repos/apache/accumulo/statuses/9cd4796acb013855f5ed0c87726a09f6be5436f5"}}}}