{"action":"created","comment":{"url":"https://api.github.com/repos/iotaledger/iri/pulls/comments/235695642","pull_request_review_id":177619091,"id":235695642,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNTY5NTY0Mg==","diff_hunk":"@@ -150,12 +150,12 @@ public boolean isBalanceDiffConsistent(Set<Hash> approvedHashes, Map<Hash, Long>\n         Hash transactionPointer;\n         while ((transactionPointer = nonAnalyzedTransactions.poll()) != null) {\n             if (visitedTransactions.add(transactionPointer)) {\n-\n                 try {\n                     final TransactionViewModel transactionViewModel = TransactionViewModel.fromHash(tangle,\n                             transactionPointer);\n \n-                    if (milestoneService.transactionBelongsToMilestone(transactionViewModel, milestoneIndex)) {\n+                    if (milestoneService.transactionBelongsToMilestone(transactionViewModel,\n+                            latestSolidMilestoneIndex + 1)) {","path":"src/main/java/com/iota/iri/service/ledger/impl/LedgerServiceImpl.java","position":22,"original_position":22,"commit_id":"b2e32c87a7f28e7586b381c725db7a5ca9f2182b","original_commit_id":"b2e32c87a7f28e7586b381c725db7a5ca9f2182b","user":{"login":"GalRogozinski","id":7954839,"node_id":"MDQ6VXNlcjc5NTQ4Mzk=","avatar_url":"https://avatars3.githubusercontent.com/u/7954839?v=4","gravatar_id":"","url":"https://api.github.com/users/GalRogozinski","html_url":"https://github.com/GalRogozinski","followers_url":"https://api.github.com/users/GalRogozinski/followers","following_url":"https://api.github.com/users/GalRogozinski/following{/other_user}","gists_url":"https://api.github.com/users/GalRogozinski/gists{/gist_id}","starred_url":"https://api.github.com/users/GalRogozinski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GalRogozinski/subscriptions","organizations_url":"https://api.github.com/users/GalRogozinski/orgs","repos_url":"https://api.github.com/users/GalRogozinski/repos","events_url":"https://api.github.com/users/GalRogozinski/events{/privacy}","received_events_url":"https://api.github.com/users/GalRogozinski/received_events","type":"User","site_admin":false},"body":"Wait one second... In the old `LedgerValidator` we could have start traversing from an area that is non confirmed if I am not mistaken and calculate the balance (`getLatestDiff`). How do we do it now?\r\n\r\nIn the old version condition (3) is not accurate. In the new `LedgerService` it is since you start traversing from a `milestoneHash`.","created_at":"2018-11-22T11:42:42Z","updated_at":"2018-11-22T11:42:42Z","html_url":"https://github.com/iotaledger/iri/pull/1184#discussion_r235695642","pull_request_url":"https://api.github.com/repos/iotaledger/iri/pulls/1184","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/comments/235695642"},"html":{"href":"https://github.com/iotaledger/iri/pull/1184#discussion_r235695642"},"pull_request":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/1184"}},"in_reply_to_id":235628727},"pull_request":{"url":"https://api.github.com/repos/iotaledger/iri/pulls/1184","id":232850540,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyODUwNTQw","html_url":"https://github.com/iotaledger/iri/pull/1184","diff_url":"https://github.com/iotaledger/iri/pull/1184.diff","patch_url":"https://github.com/iotaledger/iri/pull/1184.patch","issue_url":"https://api.github.com/repos/iotaledger/iri/issues/1184","number":1184,"state":"open","locked":false,"title":"Hotfix for the solidification bug of the Local Snapshots branch","user":{"login":"hmoog","id":3293976,"node_id":"MDQ6VXNlcjMyOTM5NzY=","avatar_url":"https://avatars0.githubusercontent.com/u/3293976?v=4","gravatar_id":"","url":"https://api.github.com/users/hmoog","html_url":"https://github.com/hmoog","followers_url":"https://api.github.com/users/hmoog/followers","following_url":"https://api.github.com/users/hmoog/following{/other_user}","gists_url":"https://api.github.com/users/hmoog/gists{/gist_id}","starred_url":"https://api.github.com/users/hmoog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmoog/subscriptions","organizations_url":"https://api.github.com/users/hmoog/orgs","repos_url":"https://api.github.com/users/hmoog/repos","events_url":"https://api.github.com/users/hmoog/events{/privacy}","received_events_url":"https://api.github.com/users/hmoog/received_events","type":"User","site_admin":false},"body":"# Description\r\n\r\nWhile refactoring the code we introduced a small but severe bug where the generateBalanceDiff method of the LedgerService traversed one milestone too far, booking balances twice.\r\n\r\nIn addition it fixes the shutdown() order (IRI crashed before - not being able to shutdown all instances in time because some of the legacy shutdown-methods take a really long time to terminate). The shutdown-methods of the new classes terminate instantly.\r\n\r\n## Type of change\r\n\r\n- Bug fix (a non-breaking change which fixes an issue)\r\n\r\n# Checklist:\r\n\r\n_Please delete items that are not relevant._\r\n\r\n- [x] My code follows the style guidelines for this project\r\n- [x] I have performed a self-review of my own code\r\n- [x] I have commented my code, particularly in hard-to-understand areas\r\n- [x] I have made corresponding changes to the documentation\r\n- [x] New and existing unit tests pass locally with my changes","created_at":"2018-11-22T03:32:10Z","updated_at":"2018-11-22T11:42:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ae8674cf5c6f602dd648a1beb91defb5bf046930","assignee":null,"assignees":[],"requested_reviewers":[{"login":"alon-e","id":25587995,"node_id":"MDQ6VXNlcjI1NTg3OTk1","avatar_url":"https://avatars3.githubusercontent.com/u/25587995?v=4","gravatar_id":"","url":"https://api.github.com/users/alon-e","html_url":"https://github.com/alon-e","followers_url":"https://api.github.com/users/alon-e/followers","following_url":"https://api.github.com/users/alon-e/following{/other_user}","gists_url":"https://api.github.com/users/alon-e/gists{/gist_id}","starred_url":"https://api.github.com/users/alon-e/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alon-e/subscriptions","organizations_url":"https://api.github.com/users/alon-e/orgs","repos_url":"https://api.github.com/users/alon-e/repos","events_url":"https://api.github.com/users/alon-e/events{/privacy}","received_events_url":"https://api.github.com/users/alon-e/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/iotaledger/iri/pulls/1184/commits","review_comments_url":"https://api.github.com/repos/iotaledger/iri/pulls/1184/comments","review_comment_url":"https://api.github.com/repos/iotaledger/iri/pulls/comments{/number}","comments_url":"https://api.github.com/repos/iotaledger/iri/issues/1184/comments","statuses_url":"https://api.github.com/repos/iotaledger/iri/statuses/b2e32c87a7f28e7586b381c725db7a5ca9f2182b","head":{"label":"iotadevelopment:merge_hotfix","ref":"merge_hotfix","sha":"b2e32c87a7f28e7586b381c725db7a5ca9f2182b","user":{"login":"iotadevelopment","id":41309595,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxMzA5NTk1","avatar_url":"https://avatars0.githubusercontent.com/u/41309595?v=4","gravatar_id":"","url":"https://api.github.com/users/iotadevelopment","html_url":"https://github.com/iotadevelopment","followers_url":"https://api.github.com/users/iotadevelopment/followers","following_url":"https://api.github.com/users/iotadevelopment/following{/other_user}","gists_url":"https://api.github.com/users/iotadevelopment/gists{/gist_id}","starred_url":"https://api.github.com/users/iotadevelopment/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iotadevelopment/subscriptions","organizations_url":"https://api.github.com/users/iotadevelopment/orgs","repos_url":"https://api.github.com/users/iotadevelopment/repos","events_url":"https://api.github.com/users/iotadevelopment/events{/privacy}","received_events_url":"https://api.github.com/users/iotadevelopment/received_events","type":"Organization","site_admin":false},"repo":{"id":141203538,"node_id":"MDEwOlJlcG9zaXRvcnkxNDEyMDM1Mzg=","name":"iri","full_name":"iotadevelopment/iri","private":false,"owner":{"login":"iotadevelopment","id":41309595,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQxMzA5NTk1","avatar_url":"https://avatars0.githubusercontent.com/u/41309595?v=4","gravatar_id":"","url":"https://api.github.com/users/iotadevelopment","html_url":"https://github.com/iotadevelopment","followers_url":"https://api.github.com/users/iotadevelopment/followers","following_url":"https://api.github.com/users/iotadevelopment/following{/other_user}","gists_url":"https://api.github.com/users/iotadevelopment/gists{/gist_id}","starred_url":"https://api.github.com/users/iotadevelopment/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iotadevelopment/subscriptions","organizations_url":"https://api.github.com/users/iotadevelopment/orgs","repos_url":"https://api.github.com/users/iotadevelopment/repos","events_url":"https://api.github.com/users/iotadevelopment/events{/privacy}","received_events_url":"https://api.github.com/users/iotadevelopment/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/iotadevelopment/iri","description":"IOTA Reference Implementation","fork":true,"url":"https://api.github.com/repos/iotadevelopment/iri","forks_url":"https://api.github.com/repos/iotadevelopment/iri/forks","keys_url":"https://api.github.com/repos/iotadevelopment/iri/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iotadevelopment/iri/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iotadevelopment/iri/teams","hooks_url":"https://api.github.com/repos/iotadevelopment/iri/hooks","issue_events_url":"https://api.github.com/repos/iotadevelopment/iri/issues/events{/number}","events_url":"https://api.github.com/repos/iotadevelopment/iri/events","assignees_url":"https://api.github.com/repos/iotadevelopment/iri/assignees{/user}","branches_url":"https://api.github.com/repos/iotadevelopment/iri/branches{/branch}","tags_url":"https://api.github.com/repos/iotadevelopment/iri/tags","blobs_url":"https://api.github.com/repos/iotadevelopment/iri/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iotadevelopment/iri/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iotadevelopment/iri/git/refs{/sha}","trees_url":"https://api.github.com/repos/iotadevelopment/iri/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iotadevelopment/iri/statuses/{sha}","languages_url":"https://api.github.com/repos/iotadevelopment/iri/languages","stargazers_url":"https://api.github.com/repos/iotadevelopment/iri/stargazers","contributors_url":"https://api.github.com/repos/iotadevelopment/iri/contributors","subscribers_url":"https://api.github.com/repos/iotadevelopment/iri/subscribers","subscription_url":"https://api.github.com/repos/iotadevelopment/iri/subscription","commits_url":"https://api.github.com/repos/iotadevelopment/iri/commits{/sha}","git_commits_url":"https://api.github.com/repos/iotadevelopment/iri/git/commits{/sha}","comments_url":"https://api.github.com/repos/iotadevelopment/iri/comments{/number}","issue_comment_url":"https://api.github.com/repos/iotadevelopment/iri/issues/comments{/number}","contents_url":"https://api.github.com/repos/iotadevelopment/iri/contents/{+path}","compare_url":"https://api.github.com/repos/iotadevelopment/iri/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iotadevelopment/iri/merges","archive_url":"https://api.github.com/repos/iotadevelopment/iri/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iotadevelopment/iri/downloads","issues_url":"https://api.github.com/repos/iotadevelopment/iri/issues{/number}","pulls_url":"https://api.github.com/repos/iotadevelopment/iri/pulls{/number}","milestones_url":"https://api.github.com/repos/iotadevelopment/iri/milestones{/number}","notifications_url":"https://api.github.com/repos/iotadevelopment/iri/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iotadevelopment/iri/labels{/name}","releases_url":"https://api.github.com/repos/iotadevelopment/iri/releases{/id}","deployments_url":"https://api.github.com/repos/iotadevelopment/iri/deployments","created_at":"2018-07-16T22:57:22Z","updated_at":"2018-11-20T16:08:41Z","pushed_at":"2018-11-22T03:37:57Z","git_url":"git://github.com/iotadevelopment/iri.git","ssh_url":"git@github.com:iotadevelopment/iri.git","clone_url":"https://github.com/iotadevelopment/iri.git","svn_url":"https://github.com/iotadevelopment/iri","homepage":null,"size":178697,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":17,"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":0,"open_issues":17,"watchers":0,"default_branch":"dev"}},"base":{"label":"iotaledger:dev-localsnapshots","ref":"dev-localsnapshots","sha":"37ff79669d8c47be3afd6268021a14251e45091a","user":{"login":"iotaledger","id":20126597,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwMTI2NTk3","avatar_url":"https://avatars3.githubusercontent.com/u/20126597?v=4","gravatar_id":"","url":"https://api.github.com/users/iotaledger","html_url":"https://github.com/iotaledger","followers_url":"https://api.github.com/users/iotaledger/followers","following_url":"https://api.github.com/users/iotaledger/following{/other_user}","gists_url":"https://api.github.com/users/iotaledger/gists{/gist_id}","starred_url":"https://api.github.com/users/iotaledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iotaledger/subscriptions","organizations_url":"https://api.github.com/users/iotaledger/orgs","repos_url":"https://api.github.com/users/iotaledger/repos","events_url":"https://api.github.com/users/iotaledger/events{/privacy}","received_events_url":"https://api.github.com/users/iotaledger/received_events","type":"Organization","site_admin":false},"repo":{"id":71836159,"node_id":"MDEwOlJlcG9zaXRvcnk3MTgzNjE1OQ==","name":"iri","full_name":"iotaledger/iri","private":false,"owner":{"login":"iotaledger","id":20126597,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIwMTI2NTk3","avatar_url":"https://avatars3.githubusercontent.com/u/20126597?v=4","gravatar_id":"","url":"https://api.github.com/users/iotaledger","html_url":"https://github.com/iotaledger","followers_url":"https://api.github.com/users/iotaledger/followers","following_url":"https://api.github.com/users/iotaledger/following{/other_user}","gists_url":"https://api.github.com/users/iotaledger/gists{/gist_id}","starred_url":"https://api.github.com/users/iotaledger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iotaledger/subscriptions","organizations_url":"https://api.github.com/users/iotaledger/orgs","repos_url":"https://api.github.com/users/iotaledger/repos","events_url":"https://api.github.com/users/iotaledger/events{/privacy}","received_events_url":"https://api.github.com/users/iotaledger/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/iotaledger/iri","description":"IOTA Reference Implementation","fork":false,"url":"https://api.github.com/repos/iotaledger/iri","forks_url":"https://api.github.com/repos/iotaledger/iri/forks","keys_url":"https://api.github.com/repos/iotaledger/iri/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iotaledger/iri/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iotaledger/iri/teams","hooks_url":"https://api.github.com/repos/iotaledger/iri/hooks","issue_events_url":"https://api.github.com/repos/iotaledger/iri/issues/events{/number}","events_url":"https://api.github.com/repos/iotaledger/iri/events","assignees_url":"https://api.github.com/repos/iotaledger/iri/assignees{/user}","branches_url":"https://api.github.com/repos/iotaledger/iri/branches{/branch}","tags_url":"https://api.github.com/repos/iotaledger/iri/tags","blobs_url":"https://api.github.com/repos/iotaledger/iri/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iotaledger/iri/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iotaledger/iri/git/refs{/sha}","trees_url":"https://api.github.com/repos/iotaledger/iri/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iotaledger/iri/statuses/{sha}","languages_url":"https://api.github.com/repos/iotaledger/iri/languages","stargazers_url":"https://api.github.com/repos/iotaledger/iri/stargazers","contributors_url":"https://api.github.com/repos/iotaledger/iri/contributors","subscribers_url":"https://api.github.com/repos/iotaledger/iri/subscribers","subscription_url":"https://api.github.com/repos/iotaledger/iri/subscription","commits_url":"https://api.github.com/repos/iotaledger/iri/commits{/sha}","git_commits_url":"https://api.github.com/repos/iotaledger/iri/git/commits{/sha}","comments_url":"https://api.github.com/repos/iotaledger/iri/comments{/number}","issue_comment_url":"https://api.github.com/repos/iotaledger/iri/issues/comments{/number}","contents_url":"https://api.github.com/repos/iotaledger/iri/contents/{+path}","compare_url":"https://api.github.com/repos/iotaledger/iri/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iotaledger/iri/merges","archive_url":"https://api.github.com/repos/iotaledger/iri/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iotaledger/iri/downloads","issues_url":"https://api.github.com/repos/iotaledger/iri/issues{/number}","pulls_url":"https://api.github.com/repos/iotaledger/iri/pulls{/number}","milestones_url":"https://api.github.com/repos/iotaledger/iri/milestones{/number}","notifications_url":"https://api.github.com/repos/iotaledger/iri/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iotaledger/iri/labels{/name}","releases_url":"https://api.github.com/repos/iotaledger/iri/releases{/id}","deployments_url":"https://api.github.com/repos/iotaledger/iri/deployments","created_at":"2016-10-24T22:06:06Z","updated_at":"2018-11-21T06:54:07Z","pushed_at":"2018-11-22T03:37:59Z","git_url":"git://github.com/iotaledger/iri.git","ssh_url":"git@github.com:iotaledger/iri.git","clone_url":"https://github.com/iotaledger/iri.git","svn_url":"https://github.com/iotaledger/iri","homepage":null,"size":177247,"stargazers_count":1076,"watchers_count":1076,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":377,"mirror_url":null,"archived":false,"open_issues_count":293,"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":377,"open_issues":293,"watchers":1076,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/1184"},"html":{"href":"https://github.com/iotaledger/iri/pull/1184"},"issue":{"href":"https://api.github.com/repos/iotaledger/iri/issues/1184"},"comments":{"href":"https://api.github.com/repos/iotaledger/iri/issues/1184/comments"},"review_comments":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/1184/comments"},"review_comment":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/iotaledger/iri/pulls/1184/commits"},"statuses":{"href":"https://api.github.com/repos/iotaledger/iri/statuses/b2e32c87a7f28e7586b381c725db7a5ca9f2182b"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"GalRogozinski"}}