{"action":"created","comment":{"url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/comments/60255840","id":60255840,"diff_hunk":"@@ -480,4 +488,33 @@ private static String resolveReferenceID(String rawReferenceID, Map<String, Stri\n         return errors;\n     }\n \n+    private List<Step> getUnreachableSteps(Deque<Step> steps, Deque<Step> onFailureSteps) {\n+        List<Step> unreachableSteps = new ArrayList<>();\n+        if (steps.size() > 0) {\n+            Map<String, Step> reachableSteps = new LinkedHashMap<>();\n+            getReachableSteps(steps.getFirst(), steps, reachableSteps);\n+            Step onFailureStep = onFailureSteps.size() == 0 ? null : onFailureSteps.getFirst();\n+            for (Step step : steps) {\n+                boolean isOnFailureStep = onFailureStep != null && onFailureStep.getName().equals(step.getName());\n+                if (reachableSteps.get(step.getName()) == null && !isOnFailureStep) {\n+                    unreachableSteps.add(step);\n+                }\n+            }\n+        }\n+        return unreachableSteps;\n+    }\n+\n+    private void getReachableSteps(Step step, Deque<Step> steps, Map<String, Step> reachableSteps) {\n+        reachableSteps.put(step.getName(), step);\n+        for (Map<String, String> map : step.getNavigationStrings()) {","path":"cloudslang-compiler/src/main/java/io/cloudslang/lang/compiler/modeller/ExecutableBuilder.java","position":58,"original_position":58,"commit_id":"9f443549d507ec6cd32dd7882b748b71f85ad218","original_commit_id":"9f443549d507ec6cd32dd7882b748b71f85ad218","user":{"login":"Bonczidai","id":8058961,"avatar_url":"https://avatars.githubusercontent.com/u/8058961?v=3","gravatar_id":"","url":"https://api.github.com/users/Bonczidai","html_url":"https://github.com/Bonczidai","followers_url":"https://api.github.com/users/Bonczidai/followers","following_url":"https://api.github.com/users/Bonczidai/following{/other_user}","gists_url":"https://api.github.com/users/Bonczidai/gists{/gist_id}","starred_url":"https://api.github.com/users/Bonczidai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bonczidai/subscriptions","organizations_url":"https://api.github.com/users/Bonczidai/orgs","repos_url":"https://api.github.com/users/Bonczidai/repos","events_url":"https://api.github.com/users/Bonczidai/events{/privacy}","received_events_url":"https://api.github.com/users/Bonczidai/received_events","type":"User","site_admin":false},"body":"please update from master - method signature changed: `public List<Map<String, String>> getNavigationStrings() {\r\n        return navigationStrings;\r\n    }`","created_at":"2016-04-19T15:41:37Z","updated_at":"2016-04-19T15:41:37Z","html_url":"https://github.com/CloudSlang/cloud-slang/pull/651#discussion_r60255840","pull_request_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651","_links":{"self":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/comments/60255840"},"html":{"href":"https://github.com/CloudSlang/cloud-slang/pull/651#discussion_r60255840"},"pull_request":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651"}}},"pull_request":{"url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651","id":66496717,"html_url":"https://github.com/CloudSlang/cloud-slang/pull/651","diff_url":"https://github.com/CloudSlang/cloud-slang/pull/651.diff","patch_url":"https://github.com/CloudSlang/cloud-slang/pull/651.patch","issue_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/651","number":651,"state":"open","locked":false,"title":"Fail compilation if task is not reachable","user":{"login":"ifatgv4","id":17292202,"avatar_url":"https://avatars.githubusercontent.com/u/17292202?v=3","gravatar_id":"","url":"https://api.github.com/users/ifatgv4","html_url":"https://github.com/ifatgv4","followers_url":"https://api.github.com/users/ifatgv4/followers","following_url":"https://api.github.com/users/ifatgv4/following{/other_user}","gists_url":"https://api.github.com/users/ifatgv4/gists{/gist_id}","starred_url":"https://api.github.com/users/ifatgv4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ifatgv4/subscriptions","organizations_url":"https://api.github.com/users/ifatgv4/orgs","repos_url":"https://api.github.com/users/ifatgv4/repos","events_url":"https://api.github.com/users/ifatgv4/events{/privacy}","received_events_url":"https://api.github.com/users/ifatgv4/received_events","type":"User","site_admin":false},"body":"fixes #305\nI added to ExecutableBuilder.compileWorkFlow() code that finds all the tasks that are not reachable. (This code is similar to existing code in ExecutionPlanBuilder, that compiles the reachable steps).\n\nI also added 4 tests for 4 new .sl files:\n\n1. unreachable_tasks.sl - contains two unreachable tasks. The preCompilation returns two unreachable task exceptions\n2. unreachable_on_failure_task - all tasks are reachable, except for the one in onFailure - compilation succeeds\n3. unreachable_task_reachable_from_on_failure - one task is unreachable from other tasks, but is reachable from the onFailure task - compilation succeeds\n4. unreachable_tasks_one_reachable_from_on_failure - contains two tasks which are unreachable from other tasks, but one of them is reachable from the onFailure task - The compilation returns only one unreachable task exception, for the one that is not reachable","created_at":"2016-04-14T14:45:38Z","updated_at":"2016-04-19T15:41:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"77565baa8cb34256c9ae563014d412af98e0f697","assignee":{"login":"Bonczidai","id":8058961,"avatar_url":"https://avatars.githubusercontent.com/u/8058961?v=3","gravatar_id":"","url":"https://api.github.com/users/Bonczidai","html_url":"https://github.com/Bonczidai","followers_url":"https://api.github.com/users/Bonczidai/followers","following_url":"https://api.github.com/users/Bonczidai/following{/other_user}","gists_url":"https://api.github.com/users/Bonczidai/gists{/gist_id}","starred_url":"https://api.github.com/users/Bonczidai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bonczidai/subscriptions","organizations_url":"https://api.github.com/users/Bonczidai/orgs","repos_url":"https://api.github.com/users/Bonczidai/repos","events_url":"https://api.github.com/users/Bonczidai/events{/privacy}","received_events_url":"https://api.github.com/users/Bonczidai/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/CloudSlang/cloud-slang/milestones/28","html_url":"https://github.com/CloudSlang/cloud-slang/milestones/0.9.60%20-%20sprint%203","labels_url":"https://api.github.com/repos/CloudSlang/cloud-slang/milestones/28/labels","id":1712047,"number":28,"title":"0.9.60 - sprint 3","description":"","creator":{"login":"meshipeer","id":6988387,"avatar_url":"https://avatars.githubusercontent.com/u/6988387?v=3","gravatar_id":"","url":"https://api.github.com/users/meshipeer","html_url":"https://github.com/meshipeer","followers_url":"https://api.github.com/users/meshipeer/followers","following_url":"https://api.github.com/users/meshipeer/following{/other_user}","gists_url":"https://api.github.com/users/meshipeer/gists{/gist_id}","starred_url":"https://api.github.com/users/meshipeer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meshipeer/subscriptions","organizations_url":"https://api.github.com/users/meshipeer/orgs","repos_url":"https://api.github.com/users/meshipeer/repos","events_url":"https://api.github.com/users/meshipeer/events{/privacy}","received_events_url":"https://api.github.com/users/meshipeer/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":6,"state":"open","created_at":"2016-04-17T10:30:47Z","updated_at":"2016-04-19T14:51:58Z","due_on":"2016-04-29T21:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651/commits","review_comments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651/comments","review_comment_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/651/comments","statuses_url":"https://api.github.com/repos/CloudSlang/cloud-slang/statuses/9f443549d507ec6cd32dd7882b748b71f85ad218","head":{"label":"CloudSlang:Fail-compilation-if-task-is-not-wired","ref":"Fail-compilation-if-task-is-not-wired","sha":"9f443549d507ec6cd32dd7882b748b71f85ad218","user":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"repo":{"id":28305425,"name":"cloud-slang","full_name":"CloudSlang/cloud-slang","owner":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CloudSlang/cloud-slang","description":"CloudSlang Language, CLI and Builder","fork":false,"url":"https://api.github.com/repos/CloudSlang/cloud-slang","forks_url":"https://api.github.com/repos/CloudSlang/cloud-slang/forks","keys_url":"https://api.github.com/repos/CloudSlang/cloud-slang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CloudSlang/cloud-slang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CloudSlang/cloud-slang/teams","hooks_url":"https://api.github.com/repos/CloudSlang/cloud-slang/hooks","issue_events_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/events{/number}","events_url":"https://api.github.com/repos/CloudSlang/cloud-slang/events","assignees_url":"https://api.github.com/repos/CloudSlang/cloud-slang/assignees{/user}","branches_url":"https://api.github.com/repos/CloudSlang/cloud-slang/branches{/branch}","tags_url":"https://api.github.com/repos/CloudSlang/cloud-slang/tags","blobs_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/refs{/sha}","trees_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CloudSlang/cloud-slang/statuses/{sha}","languages_url":"https://api.github.com/repos/CloudSlang/cloud-slang/languages","stargazers_url":"https://api.github.com/repos/CloudSlang/cloud-slang/stargazers","contributors_url":"https://api.github.com/repos/CloudSlang/cloud-slang/contributors","subscribers_url":"https://api.github.com/repos/CloudSlang/cloud-slang/subscribers","subscription_url":"https://api.github.com/repos/CloudSlang/cloud-slang/subscription","commits_url":"https://api.github.com/repos/CloudSlang/cloud-slang/commits{/sha}","git_commits_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/commits{/sha}","comments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/comments{/number}","issue_comment_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/comments{/number}","contents_url":"https://api.github.com/repos/CloudSlang/cloud-slang/contents/{+path}","compare_url":"https://api.github.com/repos/CloudSlang/cloud-slang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CloudSlang/cloud-slang/merges","archive_url":"https://api.github.com/repos/CloudSlang/cloud-slang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CloudSlang/cloud-slang/downloads","issues_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues{/number}","pulls_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls{/number}","milestones_url":"https://api.github.com/repos/CloudSlang/cloud-slang/milestones{/number}","notifications_url":"https://api.github.com/repos/CloudSlang/cloud-slang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CloudSlang/cloud-slang/labels{/name}","releases_url":"https://api.github.com/repos/CloudSlang/cloud-slang/releases{/id}","deployments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/deployments","created_at":"2014-12-21T16:32:24Z","updated_at":"2016-04-14T14:43:40Z","pushed_at":"2016-04-19T15:01:28Z","git_url":"git://github.com/CloudSlang/cloud-slang.git","ssh_url":"git@github.com:CloudSlang/cloud-slang.git","clone_url":"https://github.com/CloudSlang/cloud-slang.git","svn_url":"https://github.com/CloudSlang/cloud-slang","homepage":"http://cloudslang.io","size":5998,"stargazers_count":108,"watchers_count":108,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":86,"forks":31,"open_issues":86,"watchers":108,"default_branch":"master"}},"base":{"label":"CloudSlang:master","ref":"master","sha":"8eb0e279b0e5478f797492ac15c729a7cc75ad99","user":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"repo":{"id":28305425,"name":"cloud-slang","full_name":"CloudSlang/cloud-slang","owner":{"login":"CloudSlang","id":10261505,"avatar_url":"https://avatars.githubusercontent.com/u/10261505?v=3","gravatar_id":"","url":"https://api.github.com/users/CloudSlang","html_url":"https://github.com/CloudSlang","followers_url":"https://api.github.com/users/CloudSlang/followers","following_url":"https://api.github.com/users/CloudSlang/following{/other_user}","gists_url":"https://api.github.com/users/CloudSlang/gists{/gist_id}","starred_url":"https://api.github.com/users/CloudSlang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CloudSlang/subscriptions","organizations_url":"https://api.github.com/users/CloudSlang/orgs","repos_url":"https://api.github.com/users/CloudSlang/repos","events_url":"https://api.github.com/users/CloudSlang/events{/privacy}","received_events_url":"https://api.github.com/users/CloudSlang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CloudSlang/cloud-slang","description":"CloudSlang Language, CLI and Builder","fork":false,"url":"https://api.github.com/repos/CloudSlang/cloud-slang","forks_url":"https://api.github.com/repos/CloudSlang/cloud-slang/forks","keys_url":"https://api.github.com/repos/CloudSlang/cloud-slang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CloudSlang/cloud-slang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CloudSlang/cloud-slang/teams","hooks_url":"https://api.github.com/repos/CloudSlang/cloud-slang/hooks","issue_events_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/events{/number}","events_url":"https://api.github.com/repos/CloudSlang/cloud-slang/events","assignees_url":"https://api.github.com/repos/CloudSlang/cloud-slang/assignees{/user}","branches_url":"https://api.github.com/repos/CloudSlang/cloud-slang/branches{/branch}","tags_url":"https://api.github.com/repos/CloudSlang/cloud-slang/tags","blobs_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/refs{/sha}","trees_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CloudSlang/cloud-slang/statuses/{sha}","languages_url":"https://api.github.com/repos/CloudSlang/cloud-slang/languages","stargazers_url":"https://api.github.com/repos/CloudSlang/cloud-slang/stargazers","contributors_url":"https://api.github.com/repos/CloudSlang/cloud-slang/contributors","subscribers_url":"https://api.github.com/repos/CloudSlang/cloud-slang/subscribers","subscription_url":"https://api.github.com/repos/CloudSlang/cloud-slang/subscription","commits_url":"https://api.github.com/repos/CloudSlang/cloud-slang/commits{/sha}","git_commits_url":"https://api.github.com/repos/CloudSlang/cloud-slang/git/commits{/sha}","comments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/comments{/number}","issue_comment_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/comments{/number}","contents_url":"https://api.github.com/repos/CloudSlang/cloud-slang/contents/{+path}","compare_url":"https://api.github.com/repos/CloudSlang/cloud-slang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CloudSlang/cloud-slang/merges","archive_url":"https://api.github.com/repos/CloudSlang/cloud-slang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CloudSlang/cloud-slang/downloads","issues_url":"https://api.github.com/repos/CloudSlang/cloud-slang/issues{/number}","pulls_url":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls{/number}","milestones_url":"https://api.github.com/repos/CloudSlang/cloud-slang/milestones{/number}","notifications_url":"https://api.github.com/repos/CloudSlang/cloud-slang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CloudSlang/cloud-slang/labels{/name}","releases_url":"https://api.github.com/repos/CloudSlang/cloud-slang/releases{/id}","deployments_url":"https://api.github.com/repos/CloudSlang/cloud-slang/deployments","created_at":"2014-12-21T16:32:24Z","updated_at":"2016-04-14T14:43:40Z","pushed_at":"2016-04-19T15:01:28Z","git_url":"git://github.com/CloudSlang/cloud-slang.git","ssh_url":"git@github.com:CloudSlang/cloud-slang.git","clone_url":"https://github.com/CloudSlang/cloud-slang.git","svn_url":"https://github.com/CloudSlang/cloud-slang","homepage":"http://cloudslang.io","size":5998,"stargazers_count":108,"watchers_count":108,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":86,"forks":31,"open_issues":86,"watchers":108,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651"},"html":{"href":"https://github.com/CloudSlang/cloud-slang/pull/651"},"issue":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/651"},"comments":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/issues/651/comments"},"review_comments":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651/comments"},"review_comment":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/pulls/651/commits"},"statuses":{"href":"https://api.github.com/repos/CloudSlang/cloud-slang/statuses/9f443549d507ec6cd32dd7882b748b71f85ad218"}}}}