{"action":"created","comment":{"url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/comments/24153288","id":24153288,"diff_hunk":"@@ -136,7 +136,7 @@ class Request2Env extends SimpleChannelInboundHandler[HttpObject] {\n       // Another exception is IncompatibleDataDecoderException, which means the\n       // request is valid, just no need to decode (see the check above)\n       case e: HttpPostRequestDecoder.ErrorDataDecoderException =>\n-        ctx.channel.close()\n+        BadClientSilencer.respond400(ctx, \"Server could not parse header of request\")","path":"src/main/scala/xitrum/handler/inbound/Request2Env.scala","position":23,"original_position":23,"commit_id":"b9b027e2bdb9120a08403947e393e8d9282e5938","original_commit_id":"b9b027e2bdb9120a08403947e393e8d9282e5938","user":{"login":"ngocdaothanh","id":10095,"avatar_url":"https://avatars.githubusercontent.com/u/10095?v=3","gravatar_id":"","url":"https://api.github.com/users/ngocdaothanh","html_url":"https://github.com/ngocdaothanh","followers_url":"https://api.github.com/users/ngocdaothanh/followers","following_url":"https://api.github.com/users/ngocdaothanh/following{/other_user}","gists_url":"https://api.github.com/users/ngocdaothanh/gists{/gist_id}","starred_url":"https://api.github.com/users/ngocdaothanh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngocdaothanh/subscriptions","organizations_url":"https://api.github.com/users/ngocdaothanh/orgs","repos_url":"https://api.github.com/users/ngocdaothanh/repos","events_url":"https://api.github.com/users/ngocdaothanh/events{/privacy}","received_events_url":"https://api.github.com/users/ngocdaothanh/received_events","type":"User","site_admin":false},"body":"This error msg should also be \"Server could not parse content body of request\".\r\n\"Head\" in \"handleHttpRequestHead\" means the part before the body content, not the request headers.\r\n(There are \"handleHttpRequestHead\" and \"handleHttpRequestContent\".)","created_at":"2015-02-05T10:02:11Z","updated_at":"2015-02-05T10:02:11Z","html_url":"https://github.com/xitrum-framework/xitrum/pull/510#discussion_r24153288","pull_request_url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510","_links":{"self":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/comments/24153288"},"html":{"href":"https://github.com/xitrum-framework/xitrum/pull/510#discussion_r24153288"},"pull_request":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510"}}},"pull_request":{"url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510","id":28691935,"html_url":"https://github.com/xitrum-framework/xitrum/pull/510","diff_url":"https://github.com/xitrum-framework/xitrum/pull/510.diff","patch_url":"https://github.com/xitrum-framework/xitrum/pull/510.patch","issue_url":"https://api.github.com/repos/xitrum-framework/xitrum/issues/510","number":510,"state":"open","locked":false,"title":"Respond 400 Bad Request when params in request URI can't be decoded","user":{"login":"georgeOsdDev","id":1381907,"avatar_url":"https://avatars.githubusercontent.com/u/1381907?v=3","gravatar_id":"","url":"https://api.github.com/users/georgeOsdDev","html_url":"https://github.com/georgeOsdDev","followers_url":"https://api.github.com/users/georgeOsdDev/followers","following_url":"https://api.github.com/users/georgeOsdDev/following{/other_user}","gists_url":"https://api.github.com/users/georgeOsdDev/gists{/gist_id}","starred_url":"https://api.github.com/users/georgeOsdDev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgeOsdDev/subscriptions","organizations_url":"https://api.github.com/users/georgeOsdDev/orgs","repos_url":"https://api.github.com/users/georgeOsdDev/repos","events_url":"https://api.github.com/users/georgeOsdDev/events{/privacy}","received_events_url":"https://api.github.com/users/georgeOsdDev/received_events","type":"User","site_admin":false},"body":"This PR is against #508 and its comments.\r\n\r\nRespond 400 Bad Request right at [`UriParser`](https://github.com/xitrum-framework/xitrum/blob/master/src/main/scala/xitrum/handler/inbound/UriParser.scala) when could not parse query params.\r\n","created_at":"2015-02-05T01:28:22Z","updated_at":"2015-02-05T10:02:11Z","closed_at":null,"merged_at":null,"merge_commit_sha":"595ff7b35e5871c3d658d5f14c804b288755610a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510/commits","review_comments_url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510/comments","review_comment_url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/comments/{number}","comments_url":"https://api.github.com/repos/xitrum-framework/xitrum/issues/510/comments","statuses_url":"https://api.github.com/repos/xitrum-framework/xitrum/statuses/b9b027e2bdb9120a08403947e393e8d9282e5938","head":{"label":"georgeOsdDev:patch/badRequest","ref":"patch/badRequest","sha":"b9b027e2bdb9120a08403947e393e8d9282e5938","user":{"login":"georgeOsdDev","id":1381907,"avatar_url":"https://avatars.githubusercontent.com/u/1381907?v=3","gravatar_id":"","url":"https://api.github.com/users/georgeOsdDev","html_url":"https://github.com/georgeOsdDev","followers_url":"https://api.github.com/users/georgeOsdDev/followers","following_url":"https://api.github.com/users/georgeOsdDev/following{/other_user}","gists_url":"https://api.github.com/users/georgeOsdDev/gists{/gist_id}","starred_url":"https://api.github.com/users/georgeOsdDev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgeOsdDev/subscriptions","organizations_url":"https://api.github.com/users/georgeOsdDev/orgs","repos_url":"https://api.github.com/users/georgeOsdDev/repos","events_url":"https://api.github.com/users/georgeOsdDev/events{/privacy}","received_events_url":"https://api.github.com/users/georgeOsdDev/received_events","type":"User","site_admin":false},"repo":{"id":12475582,"name":"xitrum","full_name":"georgeOsdDev/xitrum","owner":{"login":"georgeOsdDev","id":1381907,"avatar_url":"https://avatars.githubusercontent.com/u/1381907?v=3","gravatar_id":"","url":"https://api.github.com/users/georgeOsdDev","html_url":"https://github.com/georgeOsdDev","followers_url":"https://api.github.com/users/georgeOsdDev/followers","following_url":"https://api.github.com/users/georgeOsdDev/following{/other_user}","gists_url":"https://api.github.com/users/georgeOsdDev/gists{/gist_id}","starred_url":"https://api.github.com/users/georgeOsdDev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgeOsdDev/subscriptions","organizations_url":"https://api.github.com/users/georgeOsdDev/orgs","repos_url":"https://api.github.com/users/georgeOsdDev/repos","events_url":"https://api.github.com/users/georgeOsdDev/events{/privacy}","received_events_url":"https://api.github.com/users/georgeOsdDev/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/georgeOsdDev/xitrum","description":"Async and clustered Scala web framework and HTTP(S) server","fork":true,"url":"https://api.github.com/repos/georgeOsdDev/xitrum","forks_url":"https://api.github.com/repos/georgeOsdDev/xitrum/forks","keys_url":"https://api.github.com/repos/georgeOsdDev/xitrum/keys{/key_id}","collaborators_url":"https://api.github.com/repos/georgeOsdDev/xitrum/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/georgeOsdDev/xitrum/teams","hooks_url":"https://api.github.com/repos/georgeOsdDev/xitrum/hooks","issue_events_url":"https://api.github.com/repos/georgeOsdDev/xitrum/issues/events{/number}","events_url":"https://api.github.com/repos/georgeOsdDev/xitrum/events","assignees_url":"https://api.github.com/repos/georgeOsdDev/xitrum/assignees{/user}","branches_url":"https://api.github.com/repos/georgeOsdDev/xitrum/branches{/branch}","tags_url":"https://api.github.com/repos/georgeOsdDev/xitrum/tags","blobs_url":"https://api.github.com/repos/georgeOsdDev/xitrum/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/georgeOsdDev/xitrum/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/georgeOsdDev/xitrum/git/refs{/sha}","trees_url":"https://api.github.com/repos/georgeOsdDev/xitrum/git/trees{/sha}","statuses_url":"https://api.github.com/repos/georgeOsdDev/xitrum/statuses/{sha}","languages_url":"https://api.github.com/repos/georgeOsdDev/xitrum/languages","stargazers_url":"https://api.github.com/repos/georgeOsdDev/xitrum/stargazers","contributors_url":"https://api.github.com/repos/georgeOsdDev/xitrum/contributors","subscribers_url":"https://api.github.com/repos/georgeOsdDev/xitrum/subscribers","subscription_url":"https://api.github.com/repos/georgeOsdDev/xitrum/subscription","commits_url":"https://api.github.com/repos/georgeOsdDev/xitrum/commits{/sha}","git_commits_url":"https://api.github.com/repos/georgeOsdDev/xitrum/git/commits{/sha}","comments_url":"https://api.github.com/repos/georgeOsdDev/xitrum/comments{/number}","issue_comment_url":"https://api.github.com/repos/georgeOsdDev/xitrum/issues/comments/{number}","contents_url":"https://api.github.com/repos/georgeOsdDev/xitrum/contents/{+path}","compare_url":"https://api.github.com/repos/georgeOsdDev/xitrum/compare/{base}...{head}","merges_url":"https://api.github.com/repos/georgeOsdDev/xitrum/merges","archive_url":"https://api.github.com/repos/georgeOsdDev/xitrum/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/georgeOsdDev/xitrum/downloads","issues_url":"https://api.github.com/repos/georgeOsdDev/xitrum/issues{/number}","pulls_url":"https://api.github.com/repos/georgeOsdDev/xitrum/pulls{/number}","milestones_url":"https://api.github.com/repos/georgeOsdDev/xitrum/milestones{/number}","notifications_url":"https://api.github.com/repos/georgeOsdDev/xitrum/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/georgeOsdDev/xitrum/labels{/name}","releases_url":"https://api.github.com/repos/georgeOsdDev/xitrum/releases{/id}","created_at":"2013-08-30T01:46:08Z","updated_at":"2015-01-30T08:55:41Z","pushed_at":"2015-02-05T02:14:16Z","git_url":"git://github.com/georgeOsdDev/xitrum.git","ssh_url":"git@github.com:georgeOsdDev/xitrum.git","clone_url":"https://github.com/georgeOsdDev/xitrum.git","svn_url":"https://github.com/georgeOsdDev/xitrum","homepage":"http://ngocdaothanh.github.io/xitrum","size":19802,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xitrum-framework:master","ref":"master","sha":"0e163cb18163d5d0234734428a03d885ca62aeee","user":{"login":"xitrum-framework","id":7580751,"avatar_url":"https://avatars.githubusercontent.com/u/7580751?v=3","gravatar_id":"","url":"https://api.github.com/users/xitrum-framework","html_url":"https://github.com/xitrum-framework","followers_url":"https://api.github.com/users/xitrum-framework/followers","following_url":"https://api.github.com/users/xitrum-framework/following{/other_user}","gists_url":"https://api.github.com/users/xitrum-framework/gists{/gist_id}","starred_url":"https://api.github.com/users/xitrum-framework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitrum-framework/subscriptions","organizations_url":"https://api.github.com/users/xitrum-framework/orgs","repos_url":"https://api.github.com/users/xitrum-framework/repos","events_url":"https://api.github.com/users/xitrum-framework/events{/privacy}","received_events_url":"https://api.github.com/users/xitrum-framework/received_events","type":"Organization","site_admin":false},"repo":{"id":785509,"name":"xitrum","full_name":"xitrum-framework/xitrum","owner":{"login":"xitrum-framework","id":7580751,"avatar_url":"https://avatars.githubusercontent.com/u/7580751?v=3","gravatar_id":"","url":"https://api.github.com/users/xitrum-framework","html_url":"https://github.com/xitrum-framework","followers_url":"https://api.github.com/users/xitrum-framework/followers","following_url":"https://api.github.com/users/xitrum-framework/following{/other_user}","gists_url":"https://api.github.com/users/xitrum-framework/gists{/gist_id}","starred_url":"https://api.github.com/users/xitrum-framework/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitrum-framework/subscriptions","organizations_url":"https://api.github.com/users/xitrum-framework/orgs","repos_url":"https://api.github.com/users/xitrum-framework/repos","events_url":"https://api.github.com/users/xitrum-framework/events{/privacy}","received_events_url":"https://api.github.com/users/xitrum-framework/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xitrum-framework/xitrum","description":"Async and clustered Scala web framework and HTTP(S) server","fork":false,"url":"https://api.github.com/repos/xitrum-framework/xitrum","forks_url":"https://api.github.com/repos/xitrum-framework/xitrum/forks","keys_url":"https://api.github.com/repos/xitrum-framework/xitrum/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xitrum-framework/xitrum/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xitrum-framework/xitrum/teams","hooks_url":"https://api.github.com/repos/xitrum-framework/xitrum/hooks","issue_events_url":"https://api.github.com/repos/xitrum-framework/xitrum/issues/events{/number}","events_url":"https://api.github.com/repos/xitrum-framework/xitrum/events","assignees_url":"https://api.github.com/repos/xitrum-framework/xitrum/assignees{/user}","branches_url":"https://api.github.com/repos/xitrum-framework/xitrum/branches{/branch}","tags_url":"https://api.github.com/repos/xitrum-framework/xitrum/tags","blobs_url":"https://api.github.com/repos/xitrum-framework/xitrum/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xitrum-framework/xitrum/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xitrum-framework/xitrum/git/refs{/sha}","trees_url":"https://api.github.com/repos/xitrum-framework/xitrum/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xitrum-framework/xitrum/statuses/{sha}","languages_url":"https://api.github.com/repos/xitrum-framework/xitrum/languages","stargazers_url":"https://api.github.com/repos/xitrum-framework/xitrum/stargazers","contributors_url":"https://api.github.com/repos/xitrum-framework/xitrum/contributors","subscribers_url":"https://api.github.com/repos/xitrum-framework/xitrum/subscribers","subscription_url":"https://api.github.com/repos/xitrum-framework/xitrum/subscription","commits_url":"https://api.github.com/repos/xitrum-framework/xitrum/commits{/sha}","git_commits_url":"https://api.github.com/repos/xitrum-framework/xitrum/git/commits{/sha}","comments_url":"https://api.github.com/repos/xitrum-framework/xitrum/comments{/number}","issue_comment_url":"https://api.github.com/repos/xitrum-framework/xitrum/issues/comments/{number}","contents_url":"https://api.github.com/repos/xitrum-framework/xitrum/contents/{+path}","compare_url":"https://api.github.com/repos/xitrum-framework/xitrum/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xitrum-framework/xitrum/merges","archive_url":"https://api.github.com/repos/xitrum-framework/xitrum/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xitrum-framework/xitrum/downloads","issues_url":"https://api.github.com/repos/xitrum-framework/xitrum/issues{/number}","pulls_url":"https://api.github.com/repos/xitrum-framework/xitrum/pulls{/number}","milestones_url":"https://api.github.com/repos/xitrum-framework/xitrum/milestones{/number}","notifications_url":"https://api.github.com/repos/xitrum-framework/xitrum/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xitrum-framework/xitrum/labels{/name}","releases_url":"https://api.github.com/repos/xitrum-framework/xitrum/releases{/id}","created_at":"2010-07-19T22:58:50Z","updated_at":"2015-02-02T01:16:53Z","pushed_at":"2015-02-02T01:16:51Z","git_url":"git://github.com/xitrum-framework/xitrum.git","ssh_url":"git@github.com:xitrum-framework/xitrum.git","clone_url":"https://github.com/xitrum-framework/xitrum.git","svn_url":"https://github.com/xitrum-framework/xitrum","homepage":"http://xitrum-framework.github.io/","size":24698,"stargazers_count":303,"watchers_count":303,"language":"Scala","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":51,"forks":35,"open_issues":51,"watchers":303,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510"},"html":{"href":"https://github.com/xitrum-framework/xitrum/pull/510"},"issue":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/issues/510"},"comments":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/issues/510/comments"},"review_comments":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510/comments"},"review_comment":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/pulls/510/commits"},"statuses":{"href":"https://api.github.com/repos/xitrum-framework/xitrum/statuses/b9b027e2bdb9120a08403947e393e8d9282e5938"}}}}