{"action":"created","comment":{"url":"https://api.github.com/repos/ngageoint/geowave/pulls/comments/32209378","id":32209378,"diff_hunk":"@@ -196,8 +204,73 @@ public void fromBinary(\n \t\t\t\t\tfieldId));\n \t\t}\n \t\tbuf.get(theRest);\n-\t\tqueryGeometry = geometryInterner.intern(GeometryUtils.geometryFromBinary(geometryBinary));\n+\t\t// cannot intern the prepared geometry. It uses a Object.hashCode().\n+\t\tpreparedGeometryImage = geometryImageInterner.intern(new GeometryImage(\n+\t\t\t\tgeometryBinary));\n+\t\tpreparedGeometryImage.init();","path":"core/geotime/src/main/java/mil/nga/giat/geowave/core/geotime/store/filter/SpatialQueryFilter.java","position":78,"original_position":78,"commit_id":"eeba1245e35cc9c2ca03a90611a86a887e6c6dc1","original_commit_id":"eeba1245e35cc9c2ca03a90611a86a887e6c6dc1","user":{"login":"chrisbennight","id":1864782,"avatar_url":"https://avatars.githubusercontent.com/u/1864782?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisbennight","html_url":"https://github.com/chrisbennight","followers_url":"https://api.github.com/users/chrisbennight/followers","following_url":"https://api.github.com/users/chrisbennight/following{/other_user}","gists_url":"https://api.github.com/users/chrisbennight/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisbennight/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisbennight/subscriptions","organizations_url":"https://api.github.com/users/chrisbennight/orgs","repos_url":"https://api.github.com/users/chrisbennight/repos","events_url":"https://api.github.com/users/chrisbennight/events{/privacy}","received_events_url":"https://api.github.com/users/chrisbennight/received_events","type":"User","site_admin":false},"body":"Is there a good reason to have a separate .init() method?   Since there's no parameterless constructor for GeometryImage  you would only ever be calling init() directly after a constructor call (I don't see any benefit to deferring the init;  in that case you would just deferr object construction all together).\r\n\r\nSo thoughts on making the init() method private and calling it explicitly in the GeometryImage constructor(s)?","created_at":"2015-06-11T10:51:51Z","updated_at":"2015-06-11T10:51:51Z","html_url":"https://github.com/ngageoint/geowave/pull/426#discussion_r32209378","pull_request_url":"https://api.github.com/repos/ngageoint/geowave/pulls/426","_links":{"self":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/comments/32209378"},"html":{"href":"https://github.com/ngageoint/geowave/pull/426#discussion_r32209378"},"pull_request":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/426"}}},"pull_request":{"url":"https://api.github.com/repos/ngageoint/geowave/pulls/426","id":37425109,"html_url":"https://github.com/ngageoint/geowave/pull/426","diff_url":"https://github.com/ngageoint/geowave/pull/426.diff","patch_url":"https://github.com/ngageoint/geowave/pull/426.patch","issue_url":"https://api.github.com/repos/ngageoint/geowave/issues/426","number":426,"state":"open","locked":false,"title":"Issue #425 Optimize spatial queries to use prepared geometries.","user":{"login":"rwgdrummer","id":6342425,"avatar_url":"https://avatars.githubusercontent.com/u/6342425?v=3","gravatar_id":"","url":"https://api.github.com/users/rwgdrummer","html_url":"https://github.com/rwgdrummer","followers_url":"https://api.github.com/users/rwgdrummer/followers","following_url":"https://api.github.com/users/rwgdrummer/following{/other_user}","gists_url":"https://api.github.com/users/rwgdrummer/gists{/gist_id}","starred_url":"https://api.github.com/users/rwgdrummer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rwgdrummer/subscriptions","organizations_url":"https://api.github.com/users/rwgdrummer/orgs","repos_url":"https://api.github.com/users/rwgdrummer/repos","events_url":"https://api.github.com/users/rwgdrummer/events{/privacy}","received_events_url":"https://api.github.com/users/rwgdrummer/received_events","type":"User","site_admin":false},"body":"The new approach also adds an optimization for the use of Interning geometries.  The prior approach lead to excessive memory use due to the reconstitution of geometry PRIOR to interning, creating unnecessary duplicates.","created_at":"2015-06-11T02:59:10Z","updated_at":"2015-06-11T10:51:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e8a572bee36763f9ff411af90fd7d7de4a0b1201","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ngageoint/geowave/pulls/426/commits","review_comments_url":"https://api.github.com/repos/ngageoint/geowave/pulls/426/comments","review_comment_url":"https://api.github.com/repos/ngageoint/geowave/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ngageoint/geowave/issues/426/comments","statuses_url":"https://api.github.com/repos/ngageoint/geowave/statuses/eeba1245e35cc9c2ca03a90611a86a887e6c6dc1","head":{"label":"ngageoint:SPATIALOPT","ref":"SPATIALOPT","sha":"eeba1245e35cc9c2ca03a90611a86a887e6c6dc1","user":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"repo":{"id":20448696,"name":"geowave","full_name":"ngageoint/geowave","owner":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ngageoint/geowave","description":"GeoWave provides geospatial and temporal indexing on top of Accumulo","fork":false,"url":"https://api.github.com/repos/ngageoint/geowave","forks_url":"https://api.github.com/repos/ngageoint/geowave/forks","keys_url":"https://api.github.com/repos/ngageoint/geowave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ngageoint/geowave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ngageoint/geowave/teams","hooks_url":"https://api.github.com/repos/ngageoint/geowave/hooks","issue_events_url":"https://api.github.com/repos/ngageoint/geowave/issues/events{/number}","events_url":"https://api.github.com/repos/ngageoint/geowave/events","assignees_url":"https://api.github.com/repos/ngageoint/geowave/assignees{/user}","branches_url":"https://api.github.com/repos/ngageoint/geowave/branches{/branch}","tags_url":"https://api.github.com/repos/ngageoint/geowave/tags","blobs_url":"https://api.github.com/repos/ngageoint/geowave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ngageoint/geowave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ngageoint/geowave/git/refs{/sha}","trees_url":"https://api.github.com/repos/ngageoint/geowave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ngageoint/geowave/statuses/{sha}","languages_url":"https://api.github.com/repos/ngageoint/geowave/languages","stargazers_url":"https://api.github.com/repos/ngageoint/geowave/stargazers","contributors_url":"https://api.github.com/repos/ngageoint/geowave/contributors","subscribers_url":"https://api.github.com/repos/ngageoint/geowave/subscribers","subscription_url":"https://api.github.com/repos/ngageoint/geowave/subscription","commits_url":"https://api.github.com/repos/ngageoint/geowave/commits{/sha}","git_commits_url":"https://api.github.com/repos/ngageoint/geowave/git/commits{/sha}","comments_url":"https://api.github.com/repos/ngageoint/geowave/comments{/number}","issue_comment_url":"https://api.github.com/repos/ngageoint/geowave/issues/comments{/number}","contents_url":"https://api.github.com/repos/ngageoint/geowave/contents/{+path}","compare_url":"https://api.github.com/repos/ngageoint/geowave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ngageoint/geowave/merges","archive_url":"https://api.github.com/repos/ngageoint/geowave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ngageoint/geowave/downloads","issues_url":"https://api.github.com/repos/ngageoint/geowave/issues{/number}","pulls_url":"https://api.github.com/repos/ngageoint/geowave/pulls{/number}","milestones_url":"https://api.github.com/repos/ngageoint/geowave/milestones{/number}","notifications_url":"https://api.github.com/repos/ngageoint/geowave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ngageoint/geowave/labels{/name}","releases_url":"https://api.github.com/repos/ngageoint/geowave/releases{/id}","created_at":"2014-06-03T15:39:29Z","updated_at":"2015-06-05T08:30:20Z","pushed_at":"2015-06-11T02:59:10Z","git_url":"git://github.com/ngageoint/geowave.git","ssh_url":"git@github.com:ngageoint/geowave.git","clone_url":"https://github.com/ngageoint/geowave.git","svn_url":"https://github.com/ngageoint/geowave","homepage":null,"size":757202,"stargazers_count":75,"watchers_count":75,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":25,"mirror_url":null,"open_issues_count":71,"forks":25,"open_issues":71,"watchers":75,"default_branch":"master"}},"base":{"label":"ngageoint:master","ref":"master","sha":"d32f627a6ba8a6b95a01e4a2eb85f96cb504a7af","user":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"repo":{"id":20448696,"name":"geowave","full_name":"ngageoint/geowave","owner":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ngageoint/geowave","description":"GeoWave provides geospatial and temporal indexing on top of Accumulo","fork":false,"url":"https://api.github.com/repos/ngageoint/geowave","forks_url":"https://api.github.com/repos/ngageoint/geowave/forks","keys_url":"https://api.github.com/repos/ngageoint/geowave/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ngageoint/geowave/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ngageoint/geowave/teams","hooks_url":"https://api.github.com/repos/ngageoint/geowave/hooks","issue_events_url":"https://api.github.com/repos/ngageoint/geowave/issues/events{/number}","events_url":"https://api.github.com/repos/ngageoint/geowave/events","assignees_url":"https://api.github.com/repos/ngageoint/geowave/assignees{/user}","branches_url":"https://api.github.com/repos/ngageoint/geowave/branches{/branch}","tags_url":"https://api.github.com/repos/ngageoint/geowave/tags","blobs_url":"https://api.github.com/repos/ngageoint/geowave/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ngageoint/geowave/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ngageoint/geowave/git/refs{/sha}","trees_url":"https://api.github.com/repos/ngageoint/geowave/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ngageoint/geowave/statuses/{sha}","languages_url":"https://api.github.com/repos/ngageoint/geowave/languages","stargazers_url":"https://api.github.com/repos/ngageoint/geowave/stargazers","contributors_url":"https://api.github.com/repos/ngageoint/geowave/contributors","subscribers_url":"https://api.github.com/repos/ngageoint/geowave/subscribers","subscription_url":"https://api.github.com/repos/ngageoint/geowave/subscription","commits_url":"https://api.github.com/repos/ngageoint/geowave/commits{/sha}","git_commits_url":"https://api.github.com/repos/ngageoint/geowave/git/commits{/sha}","comments_url":"https://api.github.com/repos/ngageoint/geowave/comments{/number}","issue_comment_url":"https://api.github.com/repos/ngageoint/geowave/issues/comments{/number}","contents_url":"https://api.github.com/repos/ngageoint/geowave/contents/{+path}","compare_url":"https://api.github.com/repos/ngageoint/geowave/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ngageoint/geowave/merges","archive_url":"https://api.github.com/repos/ngageoint/geowave/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ngageoint/geowave/downloads","issues_url":"https://api.github.com/repos/ngageoint/geowave/issues{/number}","pulls_url":"https://api.github.com/repos/ngageoint/geowave/pulls{/number}","milestones_url":"https://api.github.com/repos/ngageoint/geowave/milestones{/number}","notifications_url":"https://api.github.com/repos/ngageoint/geowave/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ngageoint/geowave/labels{/name}","releases_url":"https://api.github.com/repos/ngageoint/geowave/releases{/id}","created_at":"2014-06-03T15:39:29Z","updated_at":"2015-06-05T08:30:20Z","pushed_at":"2015-06-11T02:59:10Z","git_url":"git://github.com/ngageoint/geowave.git","ssh_url":"git@github.com:ngageoint/geowave.git","clone_url":"https://github.com/ngageoint/geowave.git","svn_url":"https://github.com/ngageoint/geowave","homepage":null,"size":757202,"stargazers_count":75,"watchers_count":75,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":25,"mirror_url":null,"open_issues_count":71,"forks":25,"open_issues":71,"watchers":75,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/426"},"html":{"href":"https://github.com/ngageoint/geowave/pull/426"},"issue":{"href":"https://api.github.com/repos/ngageoint/geowave/issues/426"},"comments":{"href":"https://api.github.com/repos/ngageoint/geowave/issues/426/comments"},"review_comments":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/426/comments"},"review_comment":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ngageoint/geowave/pulls/426/commits"},"statuses":{"href":"https://api.github.com/repos/ngageoint/geowave/statuses/eeba1245e35cc9c2ca03a90611a86a887e6c6dc1"}}}}