{"action":"created","issue":{"url":"https://api.github.com/repos/akka/akka/issues/20386","repository_url":"https://api.github.com/repos/akka/akka","labels_url":"https://api.github.com/repos/akka/akka/issues/20386/labels{/name}","comments_url":"https://api.github.com/repos/akka/akka/issues/20386/comments","events_url":"https://api.github.com/repos/akka/akka/issues/20386/events","html_url":"https://github.com/akka/akka/pull/20386","id":150536653,"number":20386,"title":"Retire InvalidAbsorbTermination as it is not needed in GraphStage","user":{"login":"richard-imaoka","id":7414320,"avatar_url":"https://avatars.githubusercontent.com/u/7414320?v=3","gravatar_id":"","url":"https://api.github.com/users/richard-imaoka","html_url":"https://github.com/richard-imaoka","followers_url":"https://api.github.com/users/richard-imaoka/followers","following_url":"https://api.github.com/users/richard-imaoka/following{/other_user}","gists_url":"https://api.github.com/users/richard-imaoka/gists{/gist_id}","starred_url":"https://api.github.com/users/richard-imaoka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/richard-imaoka/subscriptions","organizations_url":"https://api.github.com/users/richard-imaoka/orgs","repos_url":"https://api.github.com/users/richard-imaoka/repos","events_url":"https://api.github.com/users/richard-imaoka/events{/privacy}","received_events_url":"https://api.github.com/users/richard-imaoka/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/akka/akka/labels/tested","name":"tested","color":"d7e102"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2016-04-23T09:26:47Z","updated_at":"2016-04-29T09:08:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/akka/akka/pulls/20386","html_url":"https://github.com/akka/akka/pull/20386","diff_url":"https://github.com/akka/akka/pull/20386.diff","patch_url":"https://github.com/akka/akka/pull/20386.patch"},"body":"Refs #20288\r\n\r\nAccording to the [Replacement Guideline](http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0.4/scala/migration-guide-1.0-2.x-scala.html#AsyncStage_has_been_replaced_by_GraphStage),  `ctx.absorbTermination()` should be replaced by \r\n`if (isAvailable(shape.outlet)) <call the onPull() handler>`\r\n\r\nIf I understood it correctly, it means [this condition](https://github.com/akka/akka/blob/65a9e0a0f9372d2e2ecb945c8a9dae129a438f77/akka-stream/src/main/scala/akka/stream/stage/Stage.scala#L123L130), which InvalidAbsorbTermination was checking, is no longer relevant?\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/akka/akka/issues/comments/215664779","html_url":"https://github.com/akka/akka/pull/20386#issuecomment-215664779","issue_url":"https://api.github.com/repos/akka/akka/issues/20386","id":215664779,"user":{"login":"richard-imaoka","id":7414320,"avatar_url":"https://avatars.githubusercontent.com/u/7414320?v=3","gravatar_id":"","url":"https://api.github.com/users/richard-imaoka","html_url":"https://github.com/richard-imaoka","followers_url":"https://api.github.com/users/richard-imaoka/followers","following_url":"https://api.github.com/users/richard-imaoka/following{/other_user}","gists_url":"https://api.github.com/users/richard-imaoka/gists{/gist_id}","starred_url":"https://api.github.com/users/richard-imaoka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/richard-imaoka/subscriptions","organizations_url":"https://api.github.com/users/richard-imaoka/orgs","repos_url":"https://api.github.com/users/richard-imaoka/repos","events_url":"https://api.github.com/users/richard-imaoka/events{/privacy}","received_events_url":"https://api.github.com/users/richard-imaoka/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T09:08:54Z","updated_at":"2016-04-29T09:08:54Z","body":"Thanks for the feedback.\r\n\r\nSo, is deprecation ok or should we still keep and modify the InvalidAbsorbTermination test? I am not sure what should throw an UnsupportedOperationException in that case - is it onPull() to throw the exception when called within onDownstreamFinish()?"}}