{"action":"closed","issue":{"url":"https://api.github.com/repos/twitter/scalding/issues/1454","labels_url":"https://api.github.com/repos/twitter/scalding/issues/1454/labels{/name}","comments_url":"https://api.github.com/repos/twitter/scalding/issues/1454/comments","events_url":"https://api.github.com/repos/twitter/scalding/issues/1454/events","html_url":"https://github.com/twitter/scalding/issues/1454","id":116444604,"number":1454,"title":"Add separate InvalidSourceTap for dealing with no valid paths in FileSource","user":{"login":"rubanm","id":2401144,"avatar_url":"https://avatars.githubusercontent.com/u/2401144?v=3","gravatar_id":"","url":"https://api.github.com/users/rubanm","html_url":"https://github.com/rubanm","followers_url":"https://api.github.com/users/rubanm/followers","following_url":"https://api.github.com/users/rubanm/following{/other_user}","gists_url":"https://api.github.com/users/rubanm/gists{/gist_id}","starred_url":"https://api.github.com/users/rubanm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubanm/subscriptions","organizations_url":"https://api.github.com/users/rubanm/orgs","repos_url":"https://api.github.com/users/rubanm/repos","events_url":"https://api.github.com/users/rubanm/events{/privacy}","received_events_url":"https://api.github.com/users/rubanm/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-11-11T23:31:15Z","updated_at":"2016-01-06T23:41:22Z","closed_at":"2016-01-06T23:41:22Z","body":"The following can lead to edge cases:\r\nhttps://github.com/twitter/scalding/blob/develop/scalding-core/src/main/scala/com/twitter/scalding/FileSource.scala#L264\r\n\r\nThe assumption is that validateTaps throws if validation fails, but there are codepaths like source.toIterator where validate is not called.\r\n\r\nAdding separate InvalidSourceTap that throws in openForRead can cover both the regular read and toIterator cases I think."}}