{"action":"created","comment":{"url":"https://api.github.com/repos/aionnetwork/aion/pulls/comments/207042590","pull_request_review_id":142576489,"id":207042590,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNzA0MjU5MA==","diff_hunk":"@@ -0,0 +1,7 @@\n+package org.aion.zero.impl.config.dynamic;\n+\n+public class InFlightConfigChangeException extends Exception {","path":"modAionImpl/src/org/aion/zero/impl/config/dynamic/InFlightConfigChangeException.java","position":3,"original_position":3,"commit_id":"5dccc3024af15943280948aed58d51ce902b04ca","original_commit_id":"c5f6e33bbc7c3b7eecf295333d7ef1cd9d257248","user":{"login":"aion-kelvin","id":39999324,"node_id":"MDQ6VXNlcjM5OTk5MzI0","avatar_url":"https://avatars1.githubusercontent.com/u/39999324?v=4","gravatar_id":"","url":"https://api.github.com/users/aion-kelvin","html_url":"https://github.com/aion-kelvin","followers_url":"https://api.github.com/users/aion-kelvin/followers","following_url":"https://api.github.com/users/aion-kelvin/following{/other_user}","gists_url":"https://api.github.com/users/aion-kelvin/gists{/gist_id}","starred_url":"https://api.github.com/users/aion-kelvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aion-kelvin/subscriptions","organizations_url":"https://api.github.com/users/aion-kelvin/orgs","repos_url":"https://api.github.com/users/aion-kelvin/repos","events_url":"https://api.github.com/users/aion-kelvin/events{/privacy}","received_events_url":"https://api.github.com/users/aion-kelvin/received_events","type":"User","site_admin":false},"body":"I generally like specific exceptions, but I'll see if it can be simplified.  ","created_at":"2018-08-01T21:46:17Z","updated_at":"2018-08-01T21:46:17Z","html_url":"https://github.com/aionnetwork/aion/pull/558#discussion_r207042590","pull_request_url":"https://api.github.com/repos/aionnetwork/aion/pulls/558","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/comments/207042590"},"html":{"href":"https://github.com/aionnetwork/aion/pull/558#discussion_r207042590"},"pull_request":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/558"}},"in_reply_to_id":207027682},"pull_request":{"url":"https://api.github.com/repos/aionnetwork/aion/pulls/558","id":203357513,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzMzU3NTEz","html_url":"https://github.com/aionnetwork/aion/pull/558","diff_url":"https://github.com/aionnetwork/aion/pull/558.diff","patch_url":"https://github.com/aionnetwork/aion/pull/558.patch","issue_url":"https://api.github.com/repos/aionnetwork/aion/issues/558","number":558,"state":"open","locked":false,"title":"modGui - settings pane for GUI; kernel infrastructure for receiving new configs","user":{"login":"aion-kelvin","id":39999324,"node_id":"MDQ6VXNlcjM5OTk5MzI0","avatar_url":"https://avatars1.githubusercontent.com/u/39999324?v=4","gravatar_id":"","url":"https://api.github.com/users/aion-kelvin","html_url":"https://github.com/aion-kelvin","followers_url":"https://api.github.com/users/aion-kelvin/followers","following_url":"https://api.github.com/users/aion-kelvin/following{/other_user}","gists_url":"https://api.github.com/users/aion-kelvin/gists{/gist_id}","starred_url":"https://api.github.com/users/aion-kelvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aion-kelvin/subscriptions","organizations_url":"https://api.github.com/users/aion-kelvin/orgs","repos_url":"https://api.github.com/users/aion-kelvin/repos","events_url":"https://api.github.com/users/aion-kelvin/events{/privacy}","received_events_url":"https://api.github.com/users/aion-kelvin/received_events","type":"User","site_admin":false},"body":"## Notice\r\n\r\nIt is not allowed to submit your PR to the master branch directly, please submit your PR to the master-pre-merge branch.\r\n\r\n## Description\r\n\r\nPlease include a brief summary of the change that this pull request proposes. Include any relevant motivation and context. List any dependencies required for this change.\r\n\r\n- Added \"Settings\" tab to modGui (SettingsController.java, ConfigManipulator.java).  It has a textbox for editing config.xml and button for applying the changes to kernel.  \r\n- Created infrastructure in kernel for receiving config changes from the GUI (InFlightConfigReceiver.java, DynamicConfigKeyRegistry.java)\r\n - InFlightConfigReceiver has ability to undo partially-applied changes if it detects that an error occurred while applying a new config\r\n- Had to add equals() method to all Cfg*.java classes\r\n- Does not have any code for actually updating the kernel based on config right now; kernel changes are only for bringing up JMX server and receiving a new config file, and processing it.  Right now the processing just returns an error to the GUI saying you cannot modify this config value while kernel is running.\r\n\r\nFixes Issue # .\r\n\r\n## Type of change\r\n\r\nInsert **x** into the following checkboxes to confirm (eg. [x]):\r\n- [ ] Bug fix.\r\n- [x] New feature.\r\n- [ ] Enhancement.\r\n- [ ] Unit test.\r\n- [ ] Breaking change (a fix or feature that causes existing functionality to not work as expected).\r\n- [ ] Requires documentation update.\r\n\r\n## Testing\r\n\r\nPlease describe the tests you used to validate this pull request. Provide any relevant details for test configurations as well as any instructions to reproduce these results.\r\n\r\n- Unit tests for all new classes\r\n- For GUI: manual testing, plus an integration test that verifies model/controller/view work together correctly (SettingsControllerIntegTest.java)\r\n\r\n## Verification\r\nInsert **x** into the following checkboxes to confirm (eg. [x]):\r\n- [x] I have self-reviewed my own code and conformed to the style guidelines of this project.\r\n- [x] New and existing tests pass locally with my changes.\r\n- [x] I have added tests for my fix or feature.\r\n- [ ] I have made appropriate changes to the corresponding documentation.\r\n- [ ] My code generates no new warnings.\r\n- [ ] Any dependent changes have been made.\r\n","created_at":"2018-07-23T22:06:58Z","updated_at":"2018-08-01T21:46:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4f806dc805973018791322f1331fa8d4a5e633e8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"qoire","id":4521292,"node_id":"MDQ6VXNlcjQ1MjEyOTI=","avatar_url":"https://avatars0.githubusercontent.com/u/4521292?v=4","gravatar_id":"","url":"https://api.github.com/users/qoire","html_url":"https://github.com/qoire","followers_url":"https://api.github.com/users/qoire/followers","following_url":"https://api.github.com/users/qoire/following{/other_user}","gists_url":"https://api.github.com/users/qoire/gists{/gist_id}","starred_url":"https://api.github.com/users/qoire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qoire/subscriptions","organizations_url":"https://api.github.com/users/qoire/orgs","repos_url":"https://api.github.com/users/qoire/repos","events_url":"https://api.github.com/users/qoire/events{/privacy}","received_events_url":"https://api.github.com/users/qoire/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":961401515,"node_id":"MDU6TGFiZWw5NjE0MDE1MTU=","url":"https://api.github.com/repos/aionnetwork/aion/labels/feature","name":"feature","color":"e557aa","default":false}],"milestone":{"url":"https://api.github.com/repos/aionnetwork/aion/milestones/4","html_url":"https://github.com/aionnetwork/aion/milestone/4","labels_url":"https://api.github.com/repos/aionnetwork/aion/milestones/4/labels","id":3369553,"node_id":"MDk6TWlsZXN0b25lMzM2OTU1Mw==","number":4,"title":"v0.2.9 - Moldoveanu Peak","description":"","creator":{"login":"AionJayT","id":36162090,"node_id":"MDQ6VXNlcjM2MTYyMDkw","avatar_url":"https://avatars2.githubusercontent.com/u/36162090?v=4","gravatar_id":"","url":"https://api.github.com/users/AionJayT","html_url":"https://github.com/AionJayT","followers_url":"https://api.github.com/users/AionJayT/followers","following_url":"https://api.github.com/users/AionJayT/following{/other_user}","gists_url":"https://api.github.com/users/AionJayT/gists{/gist_id}","starred_url":"https://api.github.com/users/AionJayT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AionJayT/subscriptions","organizations_url":"https://api.github.com/users/AionJayT/orgs","repos_url":"https://api.github.com/users/AionJayT/repos","events_url":"https://api.github.com/users/AionJayT/events{/privacy}","received_events_url":"https://api.github.com/users/AionJayT/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":13,"state":"open","created_at":"2018-05-23T16:14:56Z","updated_at":"2018-07-30T22:08:07Z","due_on":"2018-08-16T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/aionnetwork/aion/pulls/558/commits","review_comments_url":"https://api.github.com/repos/aionnetwork/aion/pulls/558/comments","review_comment_url":"https://api.github.com/repos/aionnetwork/aion/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aionnetwork/aion/issues/558/comments","statuses_url":"https://api.github.com/repos/aionnetwork/aion/statuses/5dccc3024af15943280948aed58d51ce902b04ca","head":{"label":"aionnetwork:dev-modGui2-settingsPane","ref":"dev-modGui2-settingsPane","sha":"5dccc3024af15943280948aed58d51ce902b04ca","user":{"login":"aionnetwork","id":35697463,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1Njk3NDYz","avatar_url":"https://avatars1.githubusercontent.com/u/35697463?v=4","gravatar_id":"","url":"https://api.github.com/users/aionnetwork","html_url":"https://github.com/aionnetwork","followers_url":"https://api.github.com/users/aionnetwork/followers","following_url":"https://api.github.com/users/aionnetwork/following{/other_user}","gists_url":"https://api.github.com/users/aionnetwork/gists{/gist_id}","starred_url":"https://api.github.com/users/aionnetwork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aionnetwork/subscriptions","organizations_url":"https://api.github.com/users/aionnetwork/orgs","repos_url":"https://api.github.com/users/aionnetwork/repos","events_url":"https://api.github.com/users/aionnetwork/events{/privacy}","received_events_url":"https://api.github.com/users/aionnetwork/received_events","type":"Organization","site_admin":false},"repo":{"id":118477931,"node_id":"MDEwOlJlcG9zaXRvcnkxMTg0Nzc5MzE=","name":"aion","full_name":"aionnetwork/aion","owner":{"login":"aionnetwork","id":35697463,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1Njk3NDYz","avatar_url":"https://avatars1.githubusercontent.com/u/35697463?v=4","gravatar_id":"","url":"https://api.github.com/users/aionnetwork","html_url":"https://github.com/aionnetwork","followers_url":"https://api.github.com/users/aionnetwork/followers","following_url":"https://api.github.com/users/aionnetwork/following{/other_user}","gists_url":"https://api.github.com/users/aionnetwork/gists{/gist_id}","starred_url":"https://api.github.com/users/aionnetwork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aionnetwork/subscriptions","organizations_url":"https://api.github.com/users/aionnetwork/orgs","repos_url":"https://api.github.com/users/aionnetwork/repos","events_url":"https://api.github.com/users/aionnetwork/events{/privacy}","received_events_url":"https://api.github.com/users/aionnetwork/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aionnetwork/aion","description":"aion network","fork":false,"url":"https://api.github.com/repos/aionnetwork/aion","forks_url":"https://api.github.com/repos/aionnetwork/aion/forks","keys_url":"https://api.github.com/repos/aionnetwork/aion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aionnetwork/aion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aionnetwork/aion/teams","hooks_url":"https://api.github.com/repos/aionnetwork/aion/hooks","issue_events_url":"https://api.github.com/repos/aionnetwork/aion/issues/events{/number}","events_url":"https://api.github.com/repos/aionnetwork/aion/events","assignees_url":"https://api.github.com/repos/aionnetwork/aion/assignees{/user}","branches_url":"https://api.github.com/repos/aionnetwork/aion/branches{/branch}","tags_url":"https://api.github.com/repos/aionnetwork/aion/tags","blobs_url":"https://api.github.com/repos/aionnetwork/aion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aionnetwork/aion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aionnetwork/aion/git/refs{/sha}","trees_url":"https://api.github.com/repos/aionnetwork/aion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aionnetwork/aion/statuses/{sha}","languages_url":"https://api.github.com/repos/aionnetwork/aion/languages","stargazers_url":"https://api.github.com/repos/aionnetwork/aion/stargazers","contributors_url":"https://api.github.com/repos/aionnetwork/aion/contributors","subscribers_url":"https://api.github.com/repos/aionnetwork/aion/subscribers","subscription_url":"https://api.github.com/repos/aionnetwork/aion/subscription","commits_url":"https://api.github.com/repos/aionnetwork/aion/commits{/sha}","git_commits_url":"https://api.github.com/repos/aionnetwork/aion/git/commits{/sha}","comments_url":"https://api.github.com/repos/aionnetwork/aion/comments{/number}","issue_comment_url":"https://api.github.com/repos/aionnetwork/aion/issues/comments{/number}","contents_url":"https://api.github.com/repos/aionnetwork/aion/contents/{+path}","compare_url":"https://api.github.com/repos/aionnetwork/aion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aionnetwork/aion/merges","archive_url":"https://api.github.com/repos/aionnetwork/aion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aionnetwork/aion/downloads","issues_url":"https://api.github.com/repos/aionnetwork/aion/issues{/number}","pulls_url":"https://api.github.com/repos/aionnetwork/aion/pulls{/number}","milestones_url":"https://api.github.com/repos/aionnetwork/aion/milestones{/number}","notifications_url":"https://api.github.com/repos/aionnetwork/aion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aionnetwork/aion/labels{/name}","releases_url":"https://api.github.com/repos/aionnetwork/aion/releases{/id}","deployments_url":"https://api.github.com/repos/aionnetwork/aion/deployments","created_at":"2018-01-22T15:46:23Z","updated_at":"2018-08-01T10:26:49Z","pushed_at":"2018-08-01T21:39:10Z","git_url":"git://github.com/aionnetwork/aion.git","ssh_url":"git@github.com:aionnetwork/aion.git","clone_url":"https://github.com/aionnetwork/aion.git","svn_url":"https://github.com/aionnetwork/aion","homepage":"https://aion.network/","size":99321,"stargazers_count":209,"watchers_count":209,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":68,"mirror_url":null,"archived":false,"open_issues_count":37,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":68,"open_issues":37,"watchers":209,"default_branch":"master"}},"base":{"label":"aionnetwork:dev","ref":"dev","sha":"73519c3d08e20c3e6075f706bbd4198c7b7754b7","user":{"login":"aionnetwork","id":35697463,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1Njk3NDYz","avatar_url":"https://avatars1.githubusercontent.com/u/35697463?v=4","gravatar_id":"","url":"https://api.github.com/users/aionnetwork","html_url":"https://github.com/aionnetwork","followers_url":"https://api.github.com/users/aionnetwork/followers","following_url":"https://api.github.com/users/aionnetwork/following{/other_user}","gists_url":"https://api.github.com/users/aionnetwork/gists{/gist_id}","starred_url":"https://api.github.com/users/aionnetwork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aionnetwork/subscriptions","organizations_url":"https://api.github.com/users/aionnetwork/orgs","repos_url":"https://api.github.com/users/aionnetwork/repos","events_url":"https://api.github.com/users/aionnetwork/events{/privacy}","received_events_url":"https://api.github.com/users/aionnetwork/received_events","type":"Organization","site_admin":false},"repo":{"id":118477931,"node_id":"MDEwOlJlcG9zaXRvcnkxMTg0Nzc5MzE=","name":"aion","full_name":"aionnetwork/aion","owner":{"login":"aionnetwork","id":35697463,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM1Njk3NDYz","avatar_url":"https://avatars1.githubusercontent.com/u/35697463?v=4","gravatar_id":"","url":"https://api.github.com/users/aionnetwork","html_url":"https://github.com/aionnetwork","followers_url":"https://api.github.com/users/aionnetwork/followers","following_url":"https://api.github.com/users/aionnetwork/following{/other_user}","gists_url":"https://api.github.com/users/aionnetwork/gists{/gist_id}","starred_url":"https://api.github.com/users/aionnetwork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aionnetwork/subscriptions","organizations_url":"https://api.github.com/users/aionnetwork/orgs","repos_url":"https://api.github.com/users/aionnetwork/repos","events_url":"https://api.github.com/users/aionnetwork/events{/privacy}","received_events_url":"https://api.github.com/users/aionnetwork/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aionnetwork/aion","description":"aion network","fork":false,"url":"https://api.github.com/repos/aionnetwork/aion","forks_url":"https://api.github.com/repos/aionnetwork/aion/forks","keys_url":"https://api.github.com/repos/aionnetwork/aion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aionnetwork/aion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aionnetwork/aion/teams","hooks_url":"https://api.github.com/repos/aionnetwork/aion/hooks","issue_events_url":"https://api.github.com/repos/aionnetwork/aion/issues/events{/number}","events_url":"https://api.github.com/repos/aionnetwork/aion/events","assignees_url":"https://api.github.com/repos/aionnetwork/aion/assignees{/user}","branches_url":"https://api.github.com/repos/aionnetwork/aion/branches{/branch}","tags_url":"https://api.github.com/repos/aionnetwork/aion/tags","blobs_url":"https://api.github.com/repos/aionnetwork/aion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aionnetwork/aion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aionnetwork/aion/git/refs{/sha}","trees_url":"https://api.github.com/repos/aionnetwork/aion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aionnetwork/aion/statuses/{sha}","languages_url":"https://api.github.com/repos/aionnetwork/aion/languages","stargazers_url":"https://api.github.com/repos/aionnetwork/aion/stargazers","contributors_url":"https://api.github.com/repos/aionnetwork/aion/contributors","subscribers_url":"https://api.github.com/repos/aionnetwork/aion/subscribers","subscription_url":"https://api.github.com/repos/aionnetwork/aion/subscription","commits_url":"https://api.github.com/repos/aionnetwork/aion/commits{/sha}","git_commits_url":"https://api.github.com/repos/aionnetwork/aion/git/commits{/sha}","comments_url":"https://api.github.com/repos/aionnetwork/aion/comments{/number}","issue_comment_url":"https://api.github.com/repos/aionnetwork/aion/issues/comments{/number}","contents_url":"https://api.github.com/repos/aionnetwork/aion/contents/{+path}","compare_url":"https://api.github.com/repos/aionnetwork/aion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aionnetwork/aion/merges","archive_url":"https://api.github.com/repos/aionnetwork/aion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aionnetwork/aion/downloads","issues_url":"https://api.github.com/repos/aionnetwork/aion/issues{/number}","pulls_url":"https://api.github.com/repos/aionnetwork/aion/pulls{/number}","milestones_url":"https://api.github.com/repos/aionnetwork/aion/milestones{/number}","notifications_url":"https://api.github.com/repos/aionnetwork/aion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aionnetwork/aion/labels{/name}","releases_url":"https://api.github.com/repos/aionnetwork/aion/releases{/id}","deployments_url":"https://api.github.com/repos/aionnetwork/aion/deployments","created_at":"2018-01-22T15:46:23Z","updated_at":"2018-08-01T10:26:49Z","pushed_at":"2018-08-01T21:39:10Z","git_url":"git://github.com/aionnetwork/aion.git","ssh_url":"git@github.com:aionnetwork/aion.git","clone_url":"https://github.com/aionnetwork/aion.git","svn_url":"https://github.com/aionnetwork/aion","homepage":"https://aion.network/","size":99321,"stargazers_count":209,"watchers_count":209,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":68,"mirror_url":null,"archived":false,"open_issues_count":37,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":68,"open_issues":37,"watchers":209,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/558"},"html":{"href":"https://github.com/aionnetwork/aion/pull/558"},"issue":{"href":"https://api.github.com/repos/aionnetwork/aion/issues/558"},"comments":{"href":"https://api.github.com/repos/aionnetwork/aion/issues/558/comments"},"review_comments":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/558/comments"},"review_comment":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aionnetwork/aion/pulls/558/commits"},"statuses":{"href":"https://api.github.com/repos/aionnetwork/aion/statuses/5dccc3024af15943280948aed58d51ce902b04ca"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"aion-kelvin"}}