{"action":"created","comment":{"url":"https://api.github.com/repos/grpc/grpc-java/pulls/comments/30466818","id":30466818,"diff_hunk":"@@ -323,7 +371,7 @@ public void shutdown() {\n       if (frameWriter != null) {\n         frameWriter.goAway(0, ErrorCode.NO_ERROR, new byte[0]);\n       }\n-      onGoAway(Integer.MAX_VALUE, Status.INTERNAL.withDescription(\"Transport stopped\"));\n+      onGoAway(Integer.MAX_VALUE, Status.UNAVAILABLE.withDescription(\"Transport stopped\"));","path":"okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransport.java","position":120,"original_position":120,"commit_id":"964ff50a30bea4b4bd1bae651c1c4a5f2eed3976","original_commit_id":"964ff50a30bea4b4bd1bae651c1c4a5f2eed3976","user":{"login":"ejona86","id":2811396,"avatar_url":"https://avatars.githubusercontent.com/u/2811396?v=3","gravatar_id":"","url":"https://api.github.com/users/ejona86","html_url":"https://github.com/ejona86","followers_url":"https://api.github.com/users/ejona86/followers","following_url":"https://api.github.com/users/ejona86/following{/other_user}","gists_url":"https://api.github.com/users/ejona86/gists{/gist_id}","starred_url":"https://api.github.com/users/ejona86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejona86/subscriptions","organizations_url":"https://api.github.com/users/ejona86/orgs","repos_url":"https://api.github.com/users/ejona86/repos","events_url":"https://api.github.com/users/ejona86/events{/privacy}","received_events_url":"https://api.github.com/users/ejona86/received_events","type":"User","site_admin":false},"body":"Yes, if in doubt, the Netty one is more likely to be correct. In this case it was correct, as UNAVAILABLE is a better status code.","created_at":"2015-05-17T02:37:35Z","updated_at":"2015-05-17T02:37:35Z","html_url":"https://github.com/grpc/grpc-java/pull/417#discussion_r30466818","pull_request_url":"https://api.github.com/repos/grpc/grpc-java/pulls/417","_links":{"self":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/comments/30466818"},"html":{"href":"https://github.com/grpc/grpc-java/pull/417#discussion_r30466818"},"pull_request":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/417"}}},"pull_request":{"url":"https://api.github.com/repos/grpc/grpc-java/pulls/417","id":35091181,"html_url":"https://github.com/grpc/grpc-java/pull/417","diff_url":"https://github.com/grpc/grpc-java/pull/417.diff","patch_url":"https://github.com/grpc/grpc-java/pull/417.patch","issue_url":"https://api.github.com/repos/grpc/grpc-java/issues/417","number":417,"state":"open","locked":false,"title":"Add ping to ClientTransport and ChannelImpl","user":{"login":"jhump","id":2035234,"avatar_url":"https://avatars.githubusercontent.com/u/2035234?v=3","gravatar_id":"","url":"https://api.github.com/users/jhump","html_url":"https://github.com/jhump","followers_url":"https://api.github.com/users/jhump/followers","following_url":"https://api.github.com/users/jhump/following{/other_user}","gists_url":"https://api.github.com/users/jhump/gists{/gist_id}","starred_url":"https://api.github.com/users/jhump/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhump/subscriptions","organizations_url":"https://api.github.com/users/jhump/orgs","repos_url":"https://api.github.com/users/jhump/repos","events_url":"https://api.github.com/users/jhump/events{/privacy}","received_events_url":"https://api.github.com/users/jhump/received_events","type":"User","site_admin":false},"body":"Adds a mechanism for sending HTTP/2 ping frame from client to server. This can be a basis for health-checking.\r\n\r\nAlso adds a couple of simple utility methods to `ChannelImpl`. The `tryStartTransport` isn't too valuable yet since the connect may occur asynchronously (and the real intent is to get the transport both started and be able to wait for it to become connected/ready). It will be more useful when combined with a listener that can receive updates when the channel becomes connected and disconnected (and can then use this method to automatically re-start a transport, in the event it gets shutdown/disconnected).","created_at":"2015-05-11T00:02:18Z","updated_at":"2015-05-17T02:37:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec68f6ba7ae1aaa24da0dd0c834939e8abf075e5","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/grpc/grpc-java/pulls/417/commits","review_comments_url":"https://api.github.com/repos/grpc/grpc-java/pulls/417/comments","review_comment_url":"https://api.github.com/repos/grpc/grpc-java/pulls/comments{/number}","comments_url":"https://api.github.com/repos/grpc/grpc-java/issues/417/comments","statuses_url":"https://api.github.com/repos/grpc/grpc-java/statuses/964ff50a30bea4b4bd1bae651c1c4a5f2eed3976","head":{"label":"jhump:jh/ping","ref":"jh/ping","sha":"964ff50a30bea4b4bd1bae651c1c4a5f2eed3976","user":{"login":"jhump","id":2035234,"avatar_url":"https://avatars.githubusercontent.com/u/2035234?v=3","gravatar_id":"","url":"https://api.github.com/users/jhump","html_url":"https://github.com/jhump","followers_url":"https://api.github.com/users/jhump/followers","following_url":"https://api.github.com/users/jhump/following{/other_user}","gists_url":"https://api.github.com/users/jhump/gists{/gist_id}","starred_url":"https://api.github.com/users/jhump/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhump/subscriptions","organizations_url":"https://api.github.com/users/jhump/orgs","repos_url":"https://api.github.com/users/jhump/repos","events_url":"https://api.github.com/users/jhump/events{/privacy}","received_events_url":"https://api.github.com/users/jhump/received_events","type":"User","site_admin":false},"repo":{"id":35166732,"name":"grpc-java","full_name":"jhump/grpc-java","owner":{"login":"jhump","id":2035234,"avatar_url":"https://avatars.githubusercontent.com/u/2035234?v=3","gravatar_id":"","url":"https://api.github.com/users/jhump","html_url":"https://github.com/jhump","followers_url":"https://api.github.com/users/jhump/followers","following_url":"https://api.github.com/users/jhump/following{/other_user}","gists_url":"https://api.github.com/users/jhump/gists{/gist_id}","starred_url":"https://api.github.com/users/jhump/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhump/subscriptions","organizations_url":"https://api.github.com/users/jhump/orgs","repos_url":"https://api.github.com/users/jhump/repos","events_url":"https://api.github.com/users/jhump/events{/privacy}","received_events_url":"https://api.github.com/users/jhump/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jhump/grpc-java","description":"The Java gRPC implementation. HTTP/2 based RPC","fork":true,"url":"https://api.github.com/repos/jhump/grpc-java","forks_url":"https://api.github.com/repos/jhump/grpc-java/forks","keys_url":"https://api.github.com/repos/jhump/grpc-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jhump/grpc-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jhump/grpc-java/teams","hooks_url":"https://api.github.com/repos/jhump/grpc-java/hooks","issue_events_url":"https://api.github.com/repos/jhump/grpc-java/issues/events{/number}","events_url":"https://api.github.com/repos/jhump/grpc-java/events","assignees_url":"https://api.github.com/repos/jhump/grpc-java/assignees{/user}","branches_url":"https://api.github.com/repos/jhump/grpc-java/branches{/branch}","tags_url":"https://api.github.com/repos/jhump/grpc-java/tags","blobs_url":"https://api.github.com/repos/jhump/grpc-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jhump/grpc-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jhump/grpc-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/jhump/grpc-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jhump/grpc-java/statuses/{sha}","languages_url":"https://api.github.com/repos/jhump/grpc-java/languages","stargazers_url":"https://api.github.com/repos/jhump/grpc-java/stargazers","contributors_url":"https://api.github.com/repos/jhump/grpc-java/contributors","subscribers_url":"https://api.github.com/repos/jhump/grpc-java/subscribers","subscription_url":"https://api.github.com/repos/jhump/grpc-java/subscription","commits_url":"https://api.github.com/repos/jhump/grpc-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/jhump/grpc-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/jhump/grpc-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/jhump/grpc-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/jhump/grpc-java/contents/{+path}","compare_url":"https://api.github.com/repos/jhump/grpc-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jhump/grpc-java/merges","archive_url":"https://api.github.com/repos/jhump/grpc-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jhump/grpc-java/downloads","issues_url":"https://api.github.com/repos/jhump/grpc-java/issues{/number}","pulls_url":"https://api.github.com/repos/jhump/grpc-java/pulls{/number}","milestones_url":"https://api.github.com/repos/jhump/grpc-java/milestones{/number}","notifications_url":"https://api.github.com/repos/jhump/grpc-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jhump/grpc-java/labels{/name}","releases_url":"https://api.github.com/repos/jhump/grpc-java/releases{/id}","created_at":"2015-05-06T15:24:24Z","updated_at":"2015-05-06T15:24:25Z","pushed_at":"2015-05-11T20:53:29Z","git_url":"git://github.com/jhump/grpc-java.git","ssh_url":"git@github.com:jhump/grpc-java.git","clone_url":"https://github.com/jhump/grpc-java.git","svn_url":"https://github.com/jhump/grpc-java","homepage":"","size":2221,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"grpc:master","ref":"master","sha":"589afefa59eeea3d51250f9297a09b483a34d53d","user":{"login":"grpc","id":7802525,"avatar_url":"https://avatars.githubusercontent.com/u/7802525?v=3","gravatar_id":"","url":"https://api.github.com/users/grpc","html_url":"https://github.com/grpc","followers_url":"https://api.github.com/users/grpc/followers","following_url":"https://api.github.com/users/grpc/following{/other_user}","gists_url":"https://api.github.com/users/grpc/gists{/gist_id}","starred_url":"https://api.github.com/users/grpc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grpc/subscriptions","organizations_url":"https://api.github.com/users/grpc/orgs","repos_url":"https://api.github.com/users/grpc/repos","events_url":"https://api.github.com/users/grpc/events{/privacy}","received_events_url":"https://api.github.com/users/grpc/received_events","type":"Organization","site_admin":false},"repo":{"id":27729926,"name":"grpc-java","full_name":"grpc/grpc-java","owner":{"login":"grpc","id":7802525,"avatar_url":"https://avatars.githubusercontent.com/u/7802525?v=3","gravatar_id":"","url":"https://api.github.com/users/grpc","html_url":"https://github.com/grpc","followers_url":"https://api.github.com/users/grpc/followers","following_url":"https://api.github.com/users/grpc/following{/other_user}","gists_url":"https://api.github.com/users/grpc/gists{/gist_id}","starred_url":"https://api.github.com/users/grpc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grpc/subscriptions","organizations_url":"https://api.github.com/users/grpc/orgs","repos_url":"https://api.github.com/users/grpc/repos","events_url":"https://api.github.com/users/grpc/events{/privacy}","received_events_url":"https://api.github.com/users/grpc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/grpc/grpc-java","description":"The Java gRPC implementation. HTTP/2 based RPC","fork":false,"url":"https://api.github.com/repos/grpc/grpc-java","forks_url":"https://api.github.com/repos/grpc/grpc-java/forks","keys_url":"https://api.github.com/repos/grpc/grpc-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grpc/grpc-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grpc/grpc-java/teams","hooks_url":"https://api.github.com/repos/grpc/grpc-java/hooks","issue_events_url":"https://api.github.com/repos/grpc/grpc-java/issues/events{/number}","events_url":"https://api.github.com/repos/grpc/grpc-java/events","assignees_url":"https://api.github.com/repos/grpc/grpc-java/assignees{/user}","branches_url":"https://api.github.com/repos/grpc/grpc-java/branches{/branch}","tags_url":"https://api.github.com/repos/grpc/grpc-java/tags","blobs_url":"https://api.github.com/repos/grpc/grpc-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grpc/grpc-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grpc/grpc-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/grpc/grpc-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grpc/grpc-java/statuses/{sha}","languages_url":"https://api.github.com/repos/grpc/grpc-java/languages","stargazers_url":"https://api.github.com/repos/grpc/grpc-java/stargazers","contributors_url":"https://api.github.com/repos/grpc/grpc-java/contributors","subscribers_url":"https://api.github.com/repos/grpc/grpc-java/subscribers","subscription_url":"https://api.github.com/repos/grpc/grpc-java/subscription","commits_url":"https://api.github.com/repos/grpc/grpc-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/grpc/grpc-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/grpc/grpc-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/grpc/grpc-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/grpc/grpc-java/contents/{+path}","compare_url":"https://api.github.com/repos/grpc/grpc-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grpc/grpc-java/merges","archive_url":"https://api.github.com/repos/grpc/grpc-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grpc/grpc-java/downloads","issues_url":"https://api.github.com/repos/grpc/grpc-java/issues{/number}","pulls_url":"https://api.github.com/repos/grpc/grpc-java/pulls{/number}","milestones_url":"https://api.github.com/repos/grpc/grpc-java/milestones{/number}","notifications_url":"https://api.github.com/repos/grpc/grpc-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grpc/grpc-java/labels{/name}","releases_url":"https://api.github.com/repos/grpc/grpc-java/releases{/id}","created_at":"2014-12-08T19:00:00Z","updated_at":"2015-05-15T09:11:23Z","pushed_at":"2015-05-16T17:38:40Z","git_url":"git://github.com/grpc/grpc-java.git","ssh_url":"git@github.com:grpc/grpc-java.git","clone_url":"https://github.com/grpc/grpc-java.git","svn_url":"https://github.com/grpc/grpc-java","homepage":"","size":19418,"stargazers_count":694,"watchers_count":694,"language":"Java","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":147,"mirror_url":null,"open_issues_count":62,"forks":147,"open_issues":62,"watchers":694,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/417"},"html":{"href":"https://github.com/grpc/grpc-java/pull/417"},"issue":{"href":"https://api.github.com/repos/grpc/grpc-java/issues/417"},"comments":{"href":"https://api.github.com/repos/grpc/grpc-java/issues/417/comments"},"review_comments":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/417/comments"},"review_comment":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/grpc/grpc-java/pulls/417/commits"},"statuses":{"href":"https://api.github.com/repos/grpc/grpc-java/statuses/964ff50a30bea4b4bd1bae651c1c4a5f2eed3976"}}}}