{"action":"created","comment":{"url":"https://api.github.com/repos/druid-io/druid/pulls/comments/28733460","id":28733460,"diff_hunk":"@@ -282,13 +283,16 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE\n          .addData(\"peer\", req.getRemoteAddr())\n          .emit();\n \n-      return Response.serverError().type(contentType).entity(\n-          jsonWriter.writeValueAsBytes(\n-              ImmutableMap.of(\n-                  \"error\", e.getMessage() == null ? \"null exception\" : e.getMessage()\n-              )\n-          )\n-      ).build();\n+      return Response.serverError().type(contentType).entity(cleanError(e)).build();\n     }\n   }\n+\n+  private byte[] cleanError(Exception e) throws JsonProcessingException\n+  {\n+    return jsonMapper.writeValueAsBytes(","path":"server/src/main/java/io/druid/server/QueryResource.java","position":25,"original_position":25,"commit_id":"71431512b27a08c9d6674def9b0b80647cb8421c","original_commit_id":"71431512b27a08c9d6674def9b0b80647cb8421c","user":{"login":"xvrl","id":815147,"avatar_url":"https://avatars.githubusercontent.com/u/815147?v=3","gravatar_id":"","url":"https://api.github.com/users/xvrl","html_url":"https://github.com/xvrl","followers_url":"https://api.github.com/users/xvrl/followers","following_url":"https://api.github.com/users/xvrl/following{/other_user}","gists_url":"https://api.github.com/users/xvrl/gists{/gist_id}","starred_url":"https://api.github.com/users/xvrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xvrl/subscriptions","organizations_url":"https://api.github.com/users/xvrl/orgs","repos_url":"https://api.github.com/users/xvrl/repos","events_url":"https://api.github.com/users/xvrl/events{/privacy}","received_events_url":"https://api.github.com/users/xvrl/received_events","type":"User","site_admin":false},"body":"This actually changes the behavior, using jsonMapper instead of jsonWriter, which is incorrect when returning smile data. Any reason this was put in a separate method?","created_at":"2015-04-20T21:54:34Z","updated_at":"2015-04-20T21:54:34Z","html_url":"https://github.com/druid-io/druid/pull/1259#discussion_r28733460","pull_request_url":"https://api.github.com/repos/druid-io/druid/pulls/1259","_links":{"self":{"href":"https://api.github.com/repos/druid-io/druid/pulls/comments/28733460"},"html":{"href":"https://github.com/druid-io/druid/pull/1259#discussion_r28733460"},"pull_request":{"href":"https://api.github.com/repos/druid-io/druid/pulls/1259"}}},"pull_request":{"url":"https://api.github.com/repos/druid-io/druid/pulls/1259","id":32440849,"html_url":"https://github.com/druid-io/druid/pull/1259","diff_url":"https://github.com/druid-io/druid/pull/1259.diff","patch_url":"https://github.com/druid-io/druid/pull/1259.patch","issue_url":"https://api.github.com/repos/druid-io/druid/issues/1259","number":1259,"state":"open","locked":false,"title":"Query Time Lookup","user":{"login":"drcrallen","id":8213081,"avatar_url":"https://avatars.githubusercontent.com/u/8213081?v=3","gravatar_id":"","url":"https://api.github.com/users/drcrallen","html_url":"https://github.com/drcrallen","followers_url":"https://api.github.com/users/drcrallen/followers","following_url":"https://api.github.com/users/drcrallen/following{/other_user}","gists_url":"https://api.github.com/users/drcrallen/gists{/gist_id}","starred_url":"https://api.github.com/users/drcrallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drcrallen/subscriptions","organizations_url":"https://api.github.com/users/drcrallen/orgs","repos_url":"https://api.github.com/users/drcrallen/repos","events_url":"https://api.github.com/users/drcrallen/events{/privacy}","received_events_url":"https://api.github.com/users/drcrallen/received_events","type":"User","site_admin":false},"body":"This PR is at the code review stage. Comments on either the high-level overview or the low-level implementations are welcome. This master comment will be updated with pertinent discussion points if they become major topics in the track below.\r\n\r\nAdd query time lookups for renames via query \"namespace\" (may end up renaming this to something with a more natural description)\r\n\r\n* Add ability to explicitly rename using a \"namespace\" which is a particular data collection that is loaded on all realtime and historic nodes\r\n* Add namespace caching and populating (can be on heap or off heap)\r\n* Add NamespaceExtractionCacheManager for handling caches\r\n* Added ExtractionNamespace for handling metadata on the extraction namespaces\r\n* Added ExtractionNamespaceUpdate for handling metadata related to updates\r\n* Updates can be one-off or regularly scheduled. There is a Zookeeper path to handle the namespace update requests (defaults to `namespaces`)\r\n* Add ability to explicitly rename with a map passed at query time\r\n* Add ability to rename using a key/value lookup in a database\r\n* Add extension which caches renames from a kafka stream (requires kafka8)\r\n* Added README.md for the dim-rename kafka extension\r\n* Added docs to Historical-Config.md and DimensionSpecs.md\r\n* Added tests to show why PooledTopnAlgorithm cannot be used  for dim extraction fn topNs\r\n* Added endpoint for namespaces for coordinator at `/druid/coordinator/v1/namespaces`\r\n* Added awareness to topN and groupBy of potential optimizations for extraction functions depending on if it is a simple rename, or if the results need rebucketed.\r\n* Broker query runners calling pre and post merge decorators are now aware of extraction function optimizations.\r\n\r\nPrior PR:\r\nhttps://github.com/druid-io/druid/pull/1093\r\n\r\nMajor outstanding issues:\r\n* ~~Make what layer lookups apply a property of the namespace~~Done\r\n* ~~Add better metrics~~ Added `namespace/size`, `namespace/count`, `namespace/deltaTasksStarted`","created_at":"2015-04-01T17:27:04Z","updated_at":"2015-04-20T21:54:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4d1ae9f5b3c9c5ba6c26013a374c57c5beacf74b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/druid-io/druid/pulls/1259/commits","review_comments_url":"https://api.github.com/repos/druid-io/druid/pulls/1259/comments","review_comment_url":"https://api.github.com/repos/druid-io/druid/pulls/comments{/number}","comments_url":"https://api.github.com/repos/druid-io/druid/issues/1259/comments","statuses_url":"https://api.github.com/repos/druid-io/druid/statuses/71431512b27a08c9d6674def9b0b80647cb8421c","head":{"label":"metamx:queryTimeLookup","ref":"queryTimeLookup","sha":"71431512b27a08c9d6674def9b0b80647cb8421c","user":{"login":"metamx","id":299329,"avatar_url":"https://avatars.githubusercontent.com/u/299329?v=3","gravatar_id":"","url":"https://api.github.com/users/metamx","html_url":"https://github.com/metamx","followers_url":"https://api.github.com/users/metamx/followers","following_url":"https://api.github.com/users/metamx/following{/other_user}","gists_url":"https://api.github.com/users/metamx/gists{/gist_id}","starred_url":"https://api.github.com/users/metamx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metamx/subscriptions","organizations_url":"https://api.github.com/users/metamx/orgs","repos_url":"https://api.github.com/users/metamx/repos","events_url":"https://api.github.com/users/metamx/events{/privacy}","received_events_url":"https://api.github.com/users/metamx/received_events","type":"Organization","site_admin":false},"repo":{"id":28248872,"name":"druid","full_name":"metamx/druid","owner":{"login":"metamx","id":299329,"avatar_url":"https://avatars.githubusercontent.com/u/299329?v=3","gravatar_id":"","url":"https://api.github.com/users/metamx","html_url":"https://github.com/metamx","followers_url":"https://api.github.com/users/metamx/followers","following_url":"https://api.github.com/users/metamx/following{/other_user}","gists_url":"https://api.github.com/users/metamx/gists{/gist_id}","starred_url":"https://api.github.com/users/metamx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metamx/subscriptions","organizations_url":"https://api.github.com/users/metamx/orgs","repos_url":"https://api.github.com/users/metamx/repos","events_url":"https://api.github.com/users/metamx/events{/privacy}","received_events_url":"https://api.github.com/users/metamx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/metamx/druid","description":"Real²time Exploratory Analytics on Large Datasets","fork":true,"url":"https://api.github.com/repos/metamx/druid","forks_url":"https://api.github.com/repos/metamx/druid/forks","keys_url":"https://api.github.com/repos/metamx/druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/metamx/druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/metamx/druid/teams","hooks_url":"https://api.github.com/repos/metamx/druid/hooks","issue_events_url":"https://api.github.com/repos/metamx/druid/issues/events{/number}","events_url":"https://api.github.com/repos/metamx/druid/events","assignees_url":"https://api.github.com/repos/metamx/druid/assignees{/user}","branches_url":"https://api.github.com/repos/metamx/druid/branches{/branch}","tags_url":"https://api.github.com/repos/metamx/druid/tags","blobs_url":"https://api.github.com/repos/metamx/druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/metamx/druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/metamx/druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/metamx/druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/metamx/druid/statuses/{sha}","languages_url":"https://api.github.com/repos/metamx/druid/languages","stargazers_url":"https://api.github.com/repos/metamx/druid/stargazers","contributors_url":"https://api.github.com/repos/metamx/druid/contributors","subscribers_url":"https://api.github.com/repos/metamx/druid/subscribers","subscription_url":"https://api.github.com/repos/metamx/druid/subscription","commits_url":"https://api.github.com/repos/metamx/druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/metamx/druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/metamx/druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/metamx/druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/metamx/druid/contents/{+path}","compare_url":"https://api.github.com/repos/metamx/druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/metamx/druid/merges","archive_url":"https://api.github.com/repos/metamx/druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/metamx/druid/downloads","issues_url":"https://api.github.com/repos/metamx/druid/issues{/number}","pulls_url":"https://api.github.com/repos/metamx/druid/pulls{/number}","milestones_url":"https://api.github.com/repos/metamx/druid/milestones{/number}","notifications_url":"https://api.github.com/repos/metamx/druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/metamx/druid/labels{/name}","releases_url":"https://api.github.com/repos/metamx/druid/releases{/id}","created_at":"2014-12-19T22:30:25Z","updated_at":"2015-04-19T08:56:52Z","pushed_at":"2015-04-20T17:36:11Z","git_url":"git://github.com/metamx/druid.git","ssh_url":"git@github.com:metamx/druid.git","clone_url":"https://github.com/metamx/druid.git","svn_url":"https://github.com/metamx/druid","homepage":"http://druid.io","size":139067,"stargazers_count":22,"watchers_count":22,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"open_issues_count":0,"forks":11,"open_issues":0,"watchers":22,"default_branch":"master"}},"base":{"label":"druid-io:master","ref":"master","sha":"281adc045776bc4acaf267d144db5bf6bda01b6f","user":{"login":"druid-io","id":4203474,"avatar_url":"https://avatars.githubusercontent.com/u/4203474?v=3","gravatar_id":"","url":"https://api.github.com/users/druid-io","html_url":"https://github.com/druid-io","followers_url":"https://api.github.com/users/druid-io/followers","following_url":"https://api.github.com/users/druid-io/following{/other_user}","gists_url":"https://api.github.com/users/druid-io/gists{/gist_id}","starred_url":"https://api.github.com/users/druid-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/druid-io/subscriptions","organizations_url":"https://api.github.com/users/druid-io/orgs","repos_url":"https://api.github.com/users/druid-io/repos","events_url":"https://api.github.com/users/druid-io/events{/privacy}","received_events_url":"https://api.github.com/users/druid-io/received_events","type":"Organization","site_admin":false},"repo":{"id":6358188,"name":"druid","full_name":"druid-io/druid","owner":{"login":"druid-io","id":4203474,"avatar_url":"https://avatars.githubusercontent.com/u/4203474?v=3","gravatar_id":"","url":"https://api.github.com/users/druid-io","html_url":"https://github.com/druid-io","followers_url":"https://api.github.com/users/druid-io/followers","following_url":"https://api.github.com/users/druid-io/following{/other_user}","gists_url":"https://api.github.com/users/druid-io/gists{/gist_id}","starred_url":"https://api.github.com/users/druid-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/druid-io/subscriptions","organizations_url":"https://api.github.com/users/druid-io/orgs","repos_url":"https://api.github.com/users/druid-io/repos","events_url":"https://api.github.com/users/druid-io/events{/privacy}","received_events_url":"https://api.github.com/users/druid-io/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/druid-io/druid","description":"Real²time Exploratory Analytics on Large Datasets","fork":false,"url":"https://api.github.com/repos/druid-io/druid","forks_url":"https://api.github.com/repos/druid-io/druid/forks","keys_url":"https://api.github.com/repos/druid-io/druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/druid-io/druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/druid-io/druid/teams","hooks_url":"https://api.github.com/repos/druid-io/druid/hooks","issue_events_url":"https://api.github.com/repos/druid-io/druid/issues/events{/number}","events_url":"https://api.github.com/repos/druid-io/druid/events","assignees_url":"https://api.github.com/repos/druid-io/druid/assignees{/user}","branches_url":"https://api.github.com/repos/druid-io/druid/branches{/branch}","tags_url":"https://api.github.com/repos/druid-io/druid/tags","blobs_url":"https://api.github.com/repos/druid-io/druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/druid-io/druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/druid-io/druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/druid-io/druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/druid-io/druid/statuses/{sha}","languages_url":"https://api.github.com/repos/druid-io/druid/languages","stargazers_url":"https://api.github.com/repos/druid-io/druid/stargazers","contributors_url":"https://api.github.com/repos/druid-io/druid/contributors","subscribers_url":"https://api.github.com/repos/druid-io/druid/subscribers","subscription_url":"https://api.github.com/repos/druid-io/druid/subscription","commits_url":"https://api.github.com/repos/druid-io/druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/druid-io/druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/druid-io/druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/druid-io/druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/druid-io/druid/contents/{+path}","compare_url":"https://api.github.com/repos/druid-io/druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/druid-io/druid/merges","archive_url":"https://api.github.com/repos/druid-io/druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/druid-io/druid/downloads","issues_url":"https://api.github.com/repos/druid-io/druid/issues{/number}","pulls_url":"https://api.github.com/repos/druid-io/druid/pulls{/number}","milestones_url":"https://api.github.com/repos/druid-io/druid/milestones{/number}","notifications_url":"https://api.github.com/repos/druid-io/druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/druid-io/druid/labels{/name}","releases_url":"https://api.github.com/repos/druid-io/druid/releases{/id}","created_at":"2012-10-23T19:08:07Z","updated_at":"2015-04-20T20:54:57Z","pushed_at":"2015-04-20T17:36:14Z","git_url":"git://github.com/druid-io/druid.git","ssh_url":"git@github.com:druid-io/druid.git","clone_url":"https://github.com/druid-io/druid.git","svn_url":"https://github.com/druid-io/druid","homepage":"http://druid.io","size":169309,"stargazers_count":1620,"watchers_count":1620,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":345,"mirror_url":null,"open_issues_count":140,"forks":345,"open_issues":140,"watchers":1620,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/druid-io/druid/pulls/1259"},"html":{"href":"https://github.com/druid-io/druid/pull/1259"},"issue":{"href":"https://api.github.com/repos/druid-io/druid/issues/1259"},"comments":{"href":"https://api.github.com/repos/druid-io/druid/issues/1259/comments"},"review_comments":{"href":"https://api.github.com/repos/druid-io/druid/pulls/1259/comments"},"review_comment":{"href":"https://api.github.com/repos/druid-io/druid/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/druid-io/druid/pulls/1259/commits"},"statuses":{"href":"https://api.github.com/repos/druid-io/druid/statuses/71431512b27a08c9d6674def9b0b80647cb8421c"}}}}