{"action":"closed","number":42,"pull_request":{"url":"https://api.github.com/repos/atomix/catalyst/pulls/42","id":63663078,"html_url":"https://github.com/atomix/catalyst/pull/42","diff_url":"https://github.com/atomix/catalyst/pull/42.diff","patch_url":"https://github.com/atomix/catalyst/pull/42.patch","issue_url":"https://api.github.com/repos/atomix/catalyst/issues/42","number":42,"state":"closed","locked":false,"title":"Cache Class::getEnclosingClass call results","user":{"login":"madjam","id":8388825,"avatar_url":"https://avatars.githubusercontent.com/u/8388825?v=3","gravatar_id":"","url":"https://api.github.com/users/madjam","html_url":"https://github.com/madjam","followers_url":"https://api.github.com/users/madjam/followers","following_url":"https://api.github.com/users/madjam/following{/other_user}","gists_url":"https://api.github.com/users/madjam/gists{/gist_id}","starred_url":"https://api.github.com/users/madjam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madjam/subscriptions","organizations_url":"https://api.github.com/users/madjam/orgs","repos_url":"https://api.github.com/users/madjam/repos","events_url":"https://api.github.com/users/madjam/events{/privacy}","received_events_url":"https://api.github.com/users/madjam/received_events","type":"User","site_admin":false},"body":"This PR attempts to relieve a CPU hot spot in the Serializer::writeObject by caching results of the relatively expensive Class::getEnclosingClass method calls.\r\n\r\nAlso in this PR is a simple LRUCache utility.","created_at":"2016-03-22T02:52:45Z","updated_at":"2016-03-22T04:24:18Z","closed_at":"2016-03-22T04:24:18Z","merged_at":"2016-03-22T04:24:17Z","merge_commit_sha":"778fbb2e10b3b1d2f8d10a82740a1132994d99c3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/atomix/catalyst/pulls/42/commits","review_comments_url":"https://api.github.com/repos/atomix/catalyst/pulls/42/comments","review_comment_url":"https://api.github.com/repos/atomix/catalyst/pulls/comments{/number}","comments_url":"https://api.github.com/repos/atomix/catalyst/issues/42/comments","statuses_url":"https://api.github.com/repos/atomix/catalyst/statuses/9ad810ef2c5b6de1b854bf85d0b788b68efa69cb","head":{"label":"atomix:enclosing-class-cache","ref":"enclosing-class-cache","sha":"9ad810ef2c5b6de1b854bf85d0b788b68efa69cb","user":{"login":"atomix","id":14324067,"avatar_url":"https://avatars.githubusercontent.com/u/14324067?v=3","gravatar_id":"","url":"https://api.github.com/users/atomix","html_url":"https://github.com/atomix","followers_url":"https://api.github.com/users/atomix/followers","following_url":"https://api.github.com/users/atomix/following{/other_user}","gists_url":"https://api.github.com/users/atomix/gists{/gist_id}","starred_url":"https://api.github.com/users/atomix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atomix/subscriptions","organizations_url":"https://api.github.com/users/atomix/orgs","repos_url":"https://api.github.com/users/atomix/repos","events_url":"https://api.github.com/users/atomix/events{/privacy}","received_events_url":"https://api.github.com/users/atomix/received_events","type":"Organization","site_admin":false},"repo":{"id":42548377,"name":"catalyst","full_name":"atomix/catalyst","owner":{"login":"atomix","id":14324067,"avatar_url":"https://avatars.githubusercontent.com/u/14324067?v=3","gravatar_id":"","url":"https://api.github.com/users/atomix","html_url":"https://github.com/atomix","followers_url":"https://api.github.com/users/atomix/followers","following_url":"https://api.github.com/users/atomix/following{/other_user}","gists_url":"https://api.github.com/users/atomix/gists{/gist_id}","starred_url":"https://api.github.com/users/atomix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atomix/subscriptions","organizations_url":"https://api.github.com/users/atomix/orgs","repos_url":"https://api.github.com/users/atomix/repos","events_url":"https://api.github.com/users/atomix/events{/privacy}","received_events_url":"https://api.github.com/users/atomix/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/atomix/catalyst","description":"Fast, extensible asynchronous I/O & binary serialization framework for Java","fork":false,"url":"https://api.github.com/repos/atomix/catalyst","forks_url":"https://api.github.com/repos/atomix/catalyst/forks","keys_url":"https://api.github.com/repos/atomix/catalyst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/atomix/catalyst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/atomix/catalyst/teams","hooks_url":"https://api.github.com/repos/atomix/catalyst/hooks","issue_events_url":"https://api.github.com/repos/atomix/catalyst/issues/events{/number}","events_url":"https://api.github.com/repos/atomix/catalyst/events","assignees_url":"https://api.github.com/repos/atomix/catalyst/assignees{/user}","branches_url":"https://api.github.com/repos/atomix/catalyst/branches{/branch}","tags_url":"https://api.github.com/repos/atomix/catalyst/tags","blobs_url":"https://api.github.com/repos/atomix/catalyst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/atomix/catalyst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/atomix/catalyst/git/refs{/sha}","trees_url":"https://api.github.com/repos/atomix/catalyst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/atomix/catalyst/statuses/{sha}","languages_url":"https://api.github.com/repos/atomix/catalyst/languages","stargazers_url":"https://api.github.com/repos/atomix/catalyst/stargazers","contributors_url":"https://api.github.com/repos/atomix/catalyst/contributors","subscribers_url":"https://api.github.com/repos/atomix/catalyst/subscribers","subscription_url":"https://api.github.com/repos/atomix/catalyst/subscription","commits_url":"https://api.github.com/repos/atomix/catalyst/commits{/sha}","git_commits_url":"https://api.github.com/repos/atomix/catalyst/git/commits{/sha}","comments_url":"https://api.github.com/repos/atomix/catalyst/comments{/number}","issue_comment_url":"https://api.github.com/repos/atomix/catalyst/issues/comments{/number}","contents_url":"https://api.github.com/repos/atomix/catalyst/contents/{+path}","compare_url":"https://api.github.com/repos/atomix/catalyst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/atomix/catalyst/merges","archive_url":"https://api.github.com/repos/atomix/catalyst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/atomix/catalyst/downloads","issues_url":"https://api.github.com/repos/atomix/catalyst/issues{/number}","pulls_url":"https://api.github.com/repos/atomix/catalyst/pulls{/number}","milestones_url":"https://api.github.com/repos/atomix/catalyst/milestones{/number}","notifications_url":"https://api.github.com/repos/atomix/catalyst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/atomix/catalyst/labels{/name}","releases_url":"https://api.github.com/repos/atomix/catalyst/releases{/id}","deployments_url":"https://api.github.com/repos/atomix/catalyst/deployments","created_at":"2015-09-15T21:44:12Z","updated_at":"2016-03-08T07:50:10Z","pushed_at":"2016-03-22T04:24:18Z","git_url":"git://github.com/atomix/catalyst.git","ssh_url":"git@github.com:atomix/catalyst.git","clone_url":"https://github.com/atomix/catalyst.git","svn_url":"https://github.com/atomix/catalyst","homepage":"http://atomix.io/catalyst","size":460,"stargazers_count":13,"watchers_count":13,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":8,"forks":7,"open_issues":8,"watchers":13,"default_branch":"master"}},"base":{"label":"atomix:master","ref":"master","sha":"86f1450c4925f8b002d00253058c163c55ac9416","user":{"login":"atomix","id":14324067,"avatar_url":"https://avatars.githubusercontent.com/u/14324067?v=3","gravatar_id":"","url":"https://api.github.com/users/atomix","html_url":"https://github.com/atomix","followers_url":"https://api.github.com/users/atomix/followers","following_url":"https://api.github.com/users/atomix/following{/other_user}","gists_url":"https://api.github.com/users/atomix/gists{/gist_id}","starred_url":"https://api.github.com/users/atomix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atomix/subscriptions","organizations_url":"https://api.github.com/users/atomix/orgs","repos_url":"https://api.github.com/users/atomix/repos","events_url":"https://api.github.com/users/atomix/events{/privacy}","received_events_url":"https://api.github.com/users/atomix/received_events","type":"Organization","site_admin":false},"repo":{"id":42548377,"name":"catalyst","full_name":"atomix/catalyst","owner":{"login":"atomix","id":14324067,"avatar_url":"https://avatars.githubusercontent.com/u/14324067?v=3","gravatar_id":"","url":"https://api.github.com/users/atomix","html_url":"https://github.com/atomix","followers_url":"https://api.github.com/users/atomix/followers","following_url":"https://api.github.com/users/atomix/following{/other_user}","gists_url":"https://api.github.com/users/atomix/gists{/gist_id}","starred_url":"https://api.github.com/users/atomix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atomix/subscriptions","organizations_url":"https://api.github.com/users/atomix/orgs","repos_url":"https://api.github.com/users/atomix/repos","events_url":"https://api.github.com/users/atomix/events{/privacy}","received_events_url":"https://api.github.com/users/atomix/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/atomix/catalyst","description":"Fast, extensible asynchronous I/O & binary serialization framework for Java","fork":false,"url":"https://api.github.com/repos/atomix/catalyst","forks_url":"https://api.github.com/repos/atomix/catalyst/forks","keys_url":"https://api.github.com/repos/atomix/catalyst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/atomix/catalyst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/atomix/catalyst/teams","hooks_url":"https://api.github.com/repos/atomix/catalyst/hooks","issue_events_url":"https://api.github.com/repos/atomix/catalyst/issues/events{/number}","events_url":"https://api.github.com/repos/atomix/catalyst/events","assignees_url":"https://api.github.com/repos/atomix/catalyst/assignees{/user}","branches_url":"https://api.github.com/repos/atomix/catalyst/branches{/branch}","tags_url":"https://api.github.com/repos/atomix/catalyst/tags","blobs_url":"https://api.github.com/repos/atomix/catalyst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/atomix/catalyst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/atomix/catalyst/git/refs{/sha}","trees_url":"https://api.github.com/repos/atomix/catalyst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/atomix/catalyst/statuses/{sha}","languages_url":"https://api.github.com/repos/atomix/catalyst/languages","stargazers_url":"https://api.github.com/repos/atomix/catalyst/stargazers","contributors_url":"https://api.github.com/repos/atomix/catalyst/contributors","subscribers_url":"https://api.github.com/repos/atomix/catalyst/subscribers","subscription_url":"https://api.github.com/repos/atomix/catalyst/subscription","commits_url":"https://api.github.com/repos/atomix/catalyst/commits{/sha}","git_commits_url":"https://api.github.com/repos/atomix/catalyst/git/commits{/sha}","comments_url":"https://api.github.com/repos/atomix/catalyst/comments{/number}","issue_comment_url":"https://api.github.com/repos/atomix/catalyst/issues/comments{/number}","contents_url":"https://api.github.com/repos/atomix/catalyst/contents/{+path}","compare_url":"https://api.github.com/repos/atomix/catalyst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/atomix/catalyst/merges","archive_url":"https://api.github.com/repos/atomix/catalyst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/atomix/catalyst/downloads","issues_url":"https://api.github.com/repos/atomix/catalyst/issues{/number}","pulls_url":"https://api.github.com/repos/atomix/catalyst/pulls{/number}","milestones_url":"https://api.github.com/repos/atomix/catalyst/milestones{/number}","notifications_url":"https://api.github.com/repos/atomix/catalyst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/atomix/catalyst/labels{/name}","releases_url":"https://api.github.com/repos/atomix/catalyst/releases{/id}","deployments_url":"https://api.github.com/repos/atomix/catalyst/deployments","created_at":"2015-09-15T21:44:12Z","updated_at":"2016-03-08T07:50:10Z","pushed_at":"2016-03-22T04:24:18Z","git_url":"git://github.com/atomix/catalyst.git","ssh_url":"git@github.com:atomix/catalyst.git","clone_url":"https://github.com/atomix/catalyst.git","svn_url":"https://github.com/atomix/catalyst","homepage":"http://atomix.io/catalyst","size":460,"stargazers_count":13,"watchers_count":13,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":8,"forks":7,"open_issues":8,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/atomix/catalyst/pulls/42"},"html":{"href":"https://github.com/atomix/catalyst/pull/42"},"issue":{"href":"https://api.github.com/repos/atomix/catalyst/issues/42"},"comments":{"href":"https://api.github.com/repos/atomix/catalyst/issues/42/comments"},"review_comments":{"href":"https://api.github.com/repos/atomix/catalyst/pulls/42/comments"},"review_comment":{"href":"https://api.github.com/repos/atomix/catalyst/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/atomix/catalyst/pulls/42/commits"},"statuses":{"href":"https://api.github.com/repos/atomix/catalyst/statuses/9ad810ef2c5b6de1b854bf85d0b788b68efa69cb"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"madjam","id":8388825,"avatar_url":"https://avatars.githubusercontent.com/u/8388825?v=3","gravatar_id":"","url":"https://api.github.com/users/madjam","html_url":"https://github.com/madjam","followers_url":"https://api.github.com/users/madjam/followers","following_url":"https://api.github.com/users/madjam/following{/other_user}","gists_url":"https://api.github.com/users/madjam/gists{/gist_id}","starred_url":"https://api.github.com/users/madjam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madjam/subscriptions","organizations_url":"https://api.github.com/users/madjam/orgs","repos_url":"https://api.github.com/users/madjam/repos","events_url":"https://api.github.com/users/madjam/events{/privacy}","received_events_url":"https://api.github.com/users/madjam/received_events","type":"User","site_admin":false},"comments":3,"review_comments":0,"commits":1,"additions":94,"deletions":4,"changed_files":3}}