{"action":"created","comment":{"url":"https://api.github.com/repos/linkedin/gobblin/pulls/comments/34370585","id":34370585,"diff_hunk":"@@ -392,4 +396,22 @@ private boolean inMultipleBranches(List<Boolean> branches) {\n     }\n     return inBranches > 1;\n   }\n+\n+  /**\n+   * Get the final state of each construct used by this task and add it to the {@link gobblin.runtime.TaskState}.\n+   * @param extractor {@link gobblin.instrumented.extractor.InstrumentedExtractorBase} used by this task.\n+   * @param converter {@link gobblin.converter.Converter} used by this task.\n+   */\n+  private void addConstructsFinalStateToTaskState(InstrumentedExtractorBase<?, ?> extractor,\n+      Converter<?, ?, ?, ?> converter) {\n+    this.taskState.addFinalConstructState(Constructs.EXTRACTOR.toString().toLowerCase(), extractor.getFinalState());\n+    this.taskState.addFinalConstructState(Constructs.CONVERTER.toString().toLowerCase(), converter.getFinalState());\n+    int forkIdx = 0;\n+    for(Optional<Fork> fork : this.forks) {\n+      if(fork.isPresent()) {\n+        this.taskState.addFinalConstructState(\"fork.\" + forkIdx, fork.get().getFinalState());","path":"gobblin-runtime/src/main/java/gobblin/runtime/Task.java","position":55,"original_position":55,"commit_id":"47310b5c56c95c3058e6db748a6c3e6a9cbd8487","original_commit_id":"47310b5c56c95c3058e6db748a6c3e6a9cbd8487","user":{"login":"ibuenros","id":1364112,"avatar_url":"https://avatars.githubusercontent.com/u/1364112?v=3","gravatar_id":"","url":"https://api.github.com/users/ibuenros","html_url":"https://github.com/ibuenros","followers_url":"https://api.github.com/users/ibuenros/followers","following_url":"https://api.github.com/users/ibuenros/following{/other_user}","gists_url":"https://api.github.com/users/ibuenros/gists{/gist_id}","starred_url":"https://api.github.com/users/ibuenros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibuenros/subscriptions","organizations_url":"https://api.github.com/users/ibuenros/orgs","repos_url":"https://api.github.com/users/ibuenros/repos","events_url":"https://api.github.com/users/ibuenros/events{/privacy}","received_events_url":"https://api.github.com/users/ibuenros/received_events","type":"User","site_admin":false},"body":"This is not a FORK_OPERATOR, it is a Fork, which is not part of gobblin-core. I will add the constant somewhere else though.","created_at":"2015-07-10T16:20:26Z","updated_at":"2015-07-10T16:20:26Z","html_url":"https://github.com/linkedin/gobblin/pull/207#discussion_r34370585","pull_request_url":"https://api.github.com/repos/linkedin/gobblin/pulls/207","_links":{"self":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/comments/34370585"},"html":{"href":"https://github.com/linkedin/gobblin/pull/207#discussion_r34370585"},"pull_request":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/207"}}},"pull_request":{"url":"https://api.github.com/repos/linkedin/gobblin/pulls/207","id":39503585,"html_url":"https://github.com/linkedin/gobblin/pull/207","diff_url":"https://github.com/linkedin/gobblin/pull/207.diff","patch_url":"https://github.com/linkedin/gobblin/pull/207.patch","issue_url":"https://api.github.com/repos/linkedin/gobblin/issues/207","number":207,"state":"open","locked":false,"title":"Final task state","user":{"login":"ibuenros","id":1364112,"avatar_url":"https://avatars.githubusercontent.com/u/1364112?v=3","gravatar_id":"","url":"https://api.github.com/users/ibuenros","html_url":"https://github.com/ibuenros","followers_url":"https://api.github.com/users/ibuenros/followers","following_url":"https://api.github.com/users/ibuenros/following{/other_user}","gists_url":"https://api.github.com/users/ibuenros/gists{/gist_id}","starred_url":"https://api.github.com/users/ibuenros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibuenros/subscriptions","organizations_url":"https://api.github.com/users/ibuenros/orgs","repos_url":"https://api.github.com/users/ibuenros/repos","events_url":"https://api.github.com/users/ibuenros/events{/privacy}","received_events_url":"https://api.github.com/users/ibuenros/received_events","type":"User","site_admin":false},"body":"This PR implements final construct states that get added to the Task state at the end of the task execution. This allows for recovering interesting construct states in the driver.","created_at":"2015-07-08T17:45:23Z","updated_at":"2015-07-10T16:20:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ef437b839c9d41d8857965072462e3140dee6fe3","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/linkedin/gobblin/pulls/207/commits","review_comments_url":"https://api.github.com/repos/linkedin/gobblin/pulls/207/comments","review_comment_url":"https://api.github.com/repos/linkedin/gobblin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/linkedin/gobblin/issues/207/comments","statuses_url":"https://api.github.com/repos/linkedin/gobblin/statuses/47310b5c56c95c3058e6db748a6c3e6a9cbd8487","head":{"label":"ibuenros:final-task-state","ref":"final-task-state","sha":"47310b5c56c95c3058e6db748a6c3e6a9cbd8487","user":{"login":"ibuenros","id":1364112,"avatar_url":"https://avatars.githubusercontent.com/u/1364112?v=3","gravatar_id":"","url":"https://api.github.com/users/ibuenros","html_url":"https://github.com/ibuenros","followers_url":"https://api.github.com/users/ibuenros/followers","following_url":"https://api.github.com/users/ibuenros/following{/other_user}","gists_url":"https://api.github.com/users/ibuenros/gists{/gist_id}","starred_url":"https://api.github.com/users/ibuenros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibuenros/subscriptions","organizations_url":"https://api.github.com/users/ibuenros/orgs","repos_url":"https://api.github.com/users/ibuenros/repos","events_url":"https://api.github.com/users/ibuenros/events{/privacy}","received_events_url":"https://api.github.com/users/ibuenros/received_events","type":"User","site_admin":false},"repo":{"id":33570608,"name":"gobblin","full_name":"ibuenros/gobblin","owner":{"login":"ibuenros","id":1364112,"avatar_url":"https://avatars.githubusercontent.com/u/1364112?v=3","gravatar_id":"","url":"https://api.github.com/users/ibuenros","html_url":"https://github.com/ibuenros","followers_url":"https://api.github.com/users/ibuenros/followers","following_url":"https://api.github.com/users/ibuenros/following{/other_user}","gists_url":"https://api.github.com/users/ibuenros/gists{/gist_id}","starred_url":"https://api.github.com/users/ibuenros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibuenros/subscriptions","organizations_url":"https://api.github.com/users/ibuenros/orgs","repos_url":"https://api.github.com/users/ibuenros/repos","events_url":"https://api.github.com/users/ibuenros/events{/privacy}","received_events_url":"https://api.github.com/users/ibuenros/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ibuenros/gobblin","description":"","fork":true,"url":"https://api.github.com/repos/ibuenros/gobblin","forks_url":"https://api.github.com/repos/ibuenros/gobblin/forks","keys_url":"https://api.github.com/repos/ibuenros/gobblin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ibuenros/gobblin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ibuenros/gobblin/teams","hooks_url":"https://api.github.com/repos/ibuenros/gobblin/hooks","issue_events_url":"https://api.github.com/repos/ibuenros/gobblin/issues/events{/number}","events_url":"https://api.github.com/repos/ibuenros/gobblin/events","assignees_url":"https://api.github.com/repos/ibuenros/gobblin/assignees{/user}","branches_url":"https://api.github.com/repos/ibuenros/gobblin/branches{/branch}","tags_url":"https://api.github.com/repos/ibuenros/gobblin/tags","blobs_url":"https://api.github.com/repos/ibuenros/gobblin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ibuenros/gobblin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ibuenros/gobblin/git/refs{/sha}","trees_url":"https://api.github.com/repos/ibuenros/gobblin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ibuenros/gobblin/statuses/{sha}","languages_url":"https://api.github.com/repos/ibuenros/gobblin/languages","stargazers_url":"https://api.github.com/repos/ibuenros/gobblin/stargazers","contributors_url":"https://api.github.com/repos/ibuenros/gobblin/contributors","subscribers_url":"https://api.github.com/repos/ibuenros/gobblin/subscribers","subscription_url":"https://api.github.com/repos/ibuenros/gobblin/subscription","commits_url":"https://api.github.com/repos/ibuenros/gobblin/commits{/sha}","git_commits_url":"https://api.github.com/repos/ibuenros/gobblin/git/commits{/sha}","comments_url":"https://api.github.com/repos/ibuenros/gobblin/comments{/number}","issue_comment_url":"https://api.github.com/repos/ibuenros/gobblin/issues/comments{/number}","contents_url":"https://api.github.com/repos/ibuenros/gobblin/contents/{+path}","compare_url":"https://api.github.com/repos/ibuenros/gobblin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ibuenros/gobblin/merges","archive_url":"https://api.github.com/repos/ibuenros/gobblin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ibuenros/gobblin/downloads","issues_url":"https://api.github.com/repos/ibuenros/gobblin/issues{/number}","pulls_url":"https://api.github.com/repos/ibuenros/gobblin/pulls{/number}","milestones_url":"https://api.github.com/repos/ibuenros/gobblin/milestones{/number}","notifications_url":"https://api.github.com/repos/ibuenros/gobblin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ibuenros/gobblin/labels{/name}","releases_url":"https://api.github.com/repos/ibuenros/gobblin/releases{/id}","created_at":"2015-04-07T22:03:00Z","updated_at":"2015-05-01T22:12:41Z","pushed_at":"2015-07-09T23:29:31Z","git_url":"git://github.com/ibuenros/gobblin.git","ssh_url":"git@github.com:ibuenros/gobblin.git","clone_url":"https://github.com/ibuenros/gobblin.git","svn_url":"https://github.com/ibuenros/gobblin","homepage":null,"size":77855,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"linkedin:master","ref":"master","sha":"595cb6e53515fc47a582765cc317b0e371289767","user":{"login":"linkedin","id":357098,"avatar_url":"https://avatars.githubusercontent.com/u/357098?v=3","gravatar_id":"","url":"https://api.github.com/users/linkedin","html_url":"https://github.com/linkedin","followers_url":"https://api.github.com/users/linkedin/followers","following_url":"https://api.github.com/users/linkedin/following{/other_user}","gists_url":"https://api.github.com/users/linkedin/gists{/gist_id}","starred_url":"https://api.github.com/users/linkedin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linkedin/subscriptions","organizations_url":"https://api.github.com/users/linkedin/orgs","repos_url":"https://api.github.com/users/linkedin/repos","events_url":"https://api.github.com/users/linkedin/events{/privacy}","received_events_url":"https://api.github.com/users/linkedin/received_events","type":"Organization","site_admin":false},"repo":{"id":27392543,"name":"gobblin","full_name":"linkedin/gobblin","owner":{"login":"linkedin","id":357098,"avatar_url":"https://avatars.githubusercontent.com/u/357098?v=3","gravatar_id":"","url":"https://api.github.com/users/linkedin","html_url":"https://github.com/linkedin","followers_url":"https://api.github.com/users/linkedin/followers","following_url":"https://api.github.com/users/linkedin/following{/other_user}","gists_url":"https://api.github.com/users/linkedin/gists{/gist_id}","starred_url":"https://api.github.com/users/linkedin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linkedin/subscriptions","organizations_url":"https://api.github.com/users/linkedin/orgs","repos_url":"https://api.github.com/users/linkedin/repos","events_url":"https://api.github.com/users/linkedin/events{/privacy}","received_events_url":"https://api.github.com/users/linkedin/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/linkedin/gobblin","description":"Universal data ingestion framework for Hadoop.","fork":false,"url":"https://api.github.com/repos/linkedin/gobblin","forks_url":"https://api.github.com/repos/linkedin/gobblin/forks","keys_url":"https://api.github.com/repos/linkedin/gobblin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/linkedin/gobblin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/linkedin/gobblin/teams","hooks_url":"https://api.github.com/repos/linkedin/gobblin/hooks","issue_events_url":"https://api.github.com/repos/linkedin/gobblin/issues/events{/number}","events_url":"https://api.github.com/repos/linkedin/gobblin/events","assignees_url":"https://api.github.com/repos/linkedin/gobblin/assignees{/user}","branches_url":"https://api.github.com/repos/linkedin/gobblin/branches{/branch}","tags_url":"https://api.github.com/repos/linkedin/gobblin/tags","blobs_url":"https://api.github.com/repos/linkedin/gobblin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/linkedin/gobblin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/linkedin/gobblin/git/refs{/sha}","trees_url":"https://api.github.com/repos/linkedin/gobblin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/linkedin/gobblin/statuses/{sha}","languages_url":"https://api.github.com/repos/linkedin/gobblin/languages","stargazers_url":"https://api.github.com/repos/linkedin/gobblin/stargazers","contributors_url":"https://api.github.com/repos/linkedin/gobblin/contributors","subscribers_url":"https://api.github.com/repos/linkedin/gobblin/subscribers","subscription_url":"https://api.github.com/repos/linkedin/gobblin/subscription","commits_url":"https://api.github.com/repos/linkedin/gobblin/commits{/sha}","git_commits_url":"https://api.github.com/repos/linkedin/gobblin/git/commits{/sha}","comments_url":"https://api.github.com/repos/linkedin/gobblin/comments{/number}","issue_comment_url":"https://api.github.com/repos/linkedin/gobblin/issues/comments{/number}","contents_url":"https://api.github.com/repos/linkedin/gobblin/contents/{+path}","compare_url":"https://api.github.com/repos/linkedin/gobblin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/linkedin/gobblin/merges","archive_url":"https://api.github.com/repos/linkedin/gobblin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/linkedin/gobblin/downloads","issues_url":"https://api.github.com/repos/linkedin/gobblin/issues{/number}","pulls_url":"https://api.github.com/repos/linkedin/gobblin/pulls{/number}","milestones_url":"https://api.github.com/repos/linkedin/gobblin/milestones{/number}","notifications_url":"https://api.github.com/repos/linkedin/gobblin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/linkedin/gobblin/labels{/name}","releases_url":"https://api.github.com/repos/linkedin/gobblin/releases{/id}","created_at":"2014-12-01T18:10:50Z","updated_at":"2015-07-01T23:22:08Z","pushed_at":"2015-07-10T01:49:27Z","git_url":"git://github.com/linkedin/gobblin.git","ssh_url":"git@github.com:linkedin/gobblin.git","clone_url":"https://github.com/linkedin/gobblin.git","svn_url":"https://github.com/linkedin/gobblin","homepage":"","size":157077,"stargazers_count":64,"watchers_count":64,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":36,"mirror_url":null,"open_issues_count":4,"forks":36,"open_issues":4,"watchers":64,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/207"},"html":{"href":"https://github.com/linkedin/gobblin/pull/207"},"issue":{"href":"https://api.github.com/repos/linkedin/gobblin/issues/207"},"comments":{"href":"https://api.github.com/repos/linkedin/gobblin/issues/207/comments"},"review_comments":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/207/comments"},"review_comment":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/linkedin/gobblin/pulls/207/commits"},"statuses":{"href":"https://api.github.com/repos/linkedin/gobblin/statuses/47310b5c56c95c3058e6db748a6c3e6a9cbd8487"}}}}