{"action":"created","comment":{"url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/comments/52932885","id":52932885,"diff_hunk":"@@ -1353,4 +1386,364 @@ public String call() throws Exception {\n         int numberOfErrors = retryCounter.getOnErrorEvents().size();\n         assertEquals(retryCount, numberOfErrors);\n     }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilSuccess() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestSingle other = new TestSingle(sOther);\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Single.create(other));\n+        stringSingle.subscribe(result);\n+        other.sendOnSuccess(\"one\");\n+\n+        result.assertError(CancellationException.class);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilSourceSuccess() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestSingle other = new TestSingle(sOther);\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Single.create(other));\n+        stringSingle.subscribe(result);\n+        source.sendOnSuccess(\"one\");\n+\n+        result.assertValue(\"one\");\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilNext() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestObservable other = new TestObservable(sOther);\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Observable.create(other));\n+        stringSingle.subscribe(result);\n+        other.sendOnNext(\"one\");\n+\n+        result.assertError(CancellationException.class);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilSourceSuccessObservable() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestObservable other = new TestObservable(sOther);\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Observable.create(other));\n+        stringSingle.subscribe(result);\n+        source.sendOnSuccess(\"one\");\n+\n+        result.assertValue(\"one\");\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilSourceError() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestSingle other = new TestSingle(sOther);\n+        Throwable error = new Throwable();\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Single.create(other));\n+        stringSingle.subscribe(result);\n+        source.sendOnError(error);\n+\n+        result.assertError(error);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilSourceErrorObservable() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestObservable other = new TestObservable(sOther);\n+        Throwable error = new Throwable();\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Observable.create(other));\n+        stringSingle.subscribe(result);\n+        source.sendOnError(error);\n+\n+        result.assertError(error);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilOtherError() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestSingle other = new TestSingle(sOther);\n+        Throwable error = new Throwable();\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Single.create(other));\n+        stringSingle.subscribe(result);\n+        other.sendOnError(error);\n+\n+        result.assertError(error);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilOtherErrorObservable() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestObservable other = new TestObservable(sOther);\n+        Throwable error = new Throwable();\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Observable.create(other));\n+        stringSingle.subscribe(result);\n+        other.sendOnError(error);\n+\n+        result.assertError(error);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+    }\n+\n+    @Test\n+    @SuppressWarnings(\"unchecked\")\n+    public void testTakeUntilOtherCompleted() {\n+        Subscription sSource = mock(Subscription.class);\n+        Subscription sOther = mock(Subscription.class);\n+        TestSingle source = new TestSingle(sSource);\n+        TestObservable other = new TestObservable(sOther);\n+\n+        TestSubscriber<String> result = new TestSubscriber<String>();\n+        Single<String> stringSingle = Single.create(source).takeUntil(Observable.create(other));\n+        stringSingle.subscribe(result);\n+        other.sendOnCompleted();\n+\n+        result.assertError(CancellationException.class);\n+        verify(sSource, times(1)).unsubscribe();\n+        verify(sOther, times(1)).unsubscribe();\n+\n+    }\n+\n+    private static class TestObservable implements Observable.OnSubscribe<String> {","path":"src/test/java/rx/SingleTest.java","position":237,"original_position":237,"commit_id":"6b19358fe0a1e6a33c7f4fa306d1309f1476d18e","original_commit_id":"6b19358fe0a1e6a33c7f4fa306d1309f1476d18e","user":{"login":"hzsweers","id":1361086,"avatar_url":"https://avatars.githubusercontent.com/u/1361086?v=3","gravatar_id":"","url":"https://api.github.com/users/hzsweers","html_url":"https://github.com/hzsweers","followers_url":"https://api.github.com/users/hzsweers/followers","following_url":"https://api.github.com/users/hzsweers/following{/other_user}","gists_url":"https://api.github.com/users/hzsweers/gists{/gist_id}","starred_url":"https://api.github.com/users/hzsweers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hzsweers/subscriptions","organizations_url":"https://api.github.com/users/hzsweers/orgs","repos_url":"https://api.github.com/users/hzsweers/repos","events_url":"https://api.github.com/users/hzsweers/events{/privacy}","received_events_url":"https://api.github.com/users/hzsweers/received_events","type":"User","site_admin":false},"body":"Most of these tests are adapted from the `OperatorTakeUntilTest`, which used these. I was just matching behavior. Could use subjects, but if we do then I think we should update both places.","created_at":"2016-02-15T18:55:05Z","updated_at":"2016-02-15T18:55:05Z","html_url":"https://github.com/ReactiveX/RxJava/pull/3712#discussion_r52932885","pull_request_url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712","_links":{"self":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/comments/52932885"},"html":{"href":"https://github.com/ReactiveX/RxJava/pull/3712#discussion_r52932885"},"pull_request":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712"}}},"pull_request":{"url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712","id":59339846,"html_url":"https://github.com/ReactiveX/RxJava/pull/3712","diff_url":"https://github.com/ReactiveX/RxJava/pull/3712.diff","patch_url":"https://github.com/ReactiveX/RxJava/pull/3712.patch","issue_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3712","number":3712,"state":"open","locked":false,"title":"Add takeUntil support in Single","user":{"login":"hzsweers","id":1361086,"avatar_url":"https://avatars.githubusercontent.com/u/1361086?v=3","gravatar_id":"","url":"https://api.github.com/users/hzsweers","html_url":"https://github.com/hzsweers","followers_url":"https://api.github.com/users/hzsweers/followers","following_url":"https://api.github.com/users/hzsweers/following{/other_user}","gists_url":"https://api.github.com/users/hzsweers/gists{/gist_id}","starred_url":"https://api.github.com/users/hzsweers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hzsweers/subscriptions","organizations_url":"https://api.github.com/users/hzsweers/orgs","repos_url":"https://api.github.com/users/hzsweers/repos","events_url":"https://api.github.com/users/hzsweers/events{/privacy}","received_events_url":"https://api.github.com/users/hzsweers/received_events","type":"User","site_admin":false},"body":"As discussed in #3708\r\n\r\nThis adds `takeUntil(Observable)` and `takeUntil(Single)` support in `Single`. It was mostly just adapting the logic from the existing `OperatorTakeUntil` and adjusting it for accepting a `Single` and sending a `CancelattionException` in the event of a submission from `other` prior to a terminal event in the source `Single`.\r\n\r\nAny feedback is appreciated it, this is my first time contributing an implementation to this project. Particularly wondering if it's worth keeping both overloads or if the user should just coerce their `other` to one type or ther other. Also particularly looking for feedback on what information to include in the `CancellationException`.","created_at":"2016-02-15T09:42:22Z","updated_at":"2016-02-15T18:55:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"55fbbb6a452f1c17f6c51665c52d65bbadd995ed","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712/commits","review_comments_url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712/comments","review_comment_url":"https://api.github.com/repos/ReactiveX/RxJava/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/3712/comments","statuses_url":"https://api.github.com/repos/ReactiveX/RxJava/statuses/6b19358fe0a1e6a33c7f4fa306d1309f1476d18e","head":{"label":"hzsweers:z/single_takeuntil","ref":"z/single_takeuntil","sha":"6b19358fe0a1e6a33c7f4fa306d1309f1476d18e","user":{"login":"hzsweers","id":1361086,"avatar_url":"https://avatars.githubusercontent.com/u/1361086?v=3","gravatar_id":"","url":"https://api.github.com/users/hzsweers","html_url":"https://github.com/hzsweers","followers_url":"https://api.github.com/users/hzsweers/followers","following_url":"https://api.github.com/users/hzsweers/following{/other_user}","gists_url":"https://api.github.com/users/hzsweers/gists{/gist_id}","starred_url":"https://api.github.com/users/hzsweers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hzsweers/subscriptions","organizations_url":"https://api.github.com/users/hzsweers/orgs","repos_url":"https://api.github.com/users/hzsweers/repos","events_url":"https://api.github.com/users/hzsweers/events{/privacy}","received_events_url":"https://api.github.com/users/hzsweers/received_events","type":"User","site_admin":false},"repo":{"id":50802152,"name":"RxJava","full_name":"hzsweers/RxJava","owner":{"login":"hzsweers","id":1361086,"avatar_url":"https://avatars.githubusercontent.com/u/1361086?v=3","gravatar_id":"","url":"https://api.github.com/users/hzsweers","html_url":"https://github.com/hzsweers","followers_url":"https://api.github.com/users/hzsweers/followers","following_url":"https://api.github.com/users/hzsweers/following{/other_user}","gists_url":"https://api.github.com/users/hzsweers/gists{/gist_id}","starred_url":"https://api.github.com/users/hzsweers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hzsweers/subscriptions","organizations_url":"https://api.github.com/users/hzsweers/orgs","repos_url":"https://api.github.com/users/hzsweers/repos","events_url":"https://api.github.com/users/hzsweers/events{/privacy}","received_events_url":"https://api.github.com/users/hzsweers/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/hzsweers/RxJava","description":"RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.","fork":true,"url":"https://api.github.com/repos/hzsweers/RxJava","forks_url":"https://api.github.com/repos/hzsweers/RxJava/forks","keys_url":"https://api.github.com/repos/hzsweers/RxJava/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hzsweers/RxJava/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hzsweers/RxJava/teams","hooks_url":"https://api.github.com/repos/hzsweers/RxJava/hooks","issue_events_url":"https://api.github.com/repos/hzsweers/RxJava/issues/events{/number}","events_url":"https://api.github.com/repos/hzsweers/RxJava/events","assignees_url":"https://api.github.com/repos/hzsweers/RxJava/assignees{/user}","branches_url":"https://api.github.com/repos/hzsweers/RxJava/branches{/branch}","tags_url":"https://api.github.com/repos/hzsweers/RxJava/tags","blobs_url":"https://api.github.com/repos/hzsweers/RxJava/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hzsweers/RxJava/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hzsweers/RxJava/git/refs{/sha}","trees_url":"https://api.github.com/repos/hzsweers/RxJava/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hzsweers/RxJava/statuses/{sha}","languages_url":"https://api.github.com/repos/hzsweers/RxJava/languages","stargazers_url":"https://api.github.com/repos/hzsweers/RxJava/stargazers","contributors_url":"https://api.github.com/repos/hzsweers/RxJava/contributors","subscribers_url":"https://api.github.com/repos/hzsweers/RxJava/subscribers","subscription_url":"https://api.github.com/repos/hzsweers/RxJava/subscription","commits_url":"https://api.github.com/repos/hzsweers/RxJava/commits{/sha}","git_commits_url":"https://api.github.com/repos/hzsweers/RxJava/git/commits{/sha}","comments_url":"https://api.github.com/repos/hzsweers/RxJava/comments{/number}","issue_comment_url":"https://api.github.com/repos/hzsweers/RxJava/issues/comments{/number}","contents_url":"https://api.github.com/repos/hzsweers/RxJava/contents/{+path}","compare_url":"https://api.github.com/repos/hzsweers/RxJava/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hzsweers/RxJava/merges","archive_url":"https://api.github.com/repos/hzsweers/RxJava/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hzsweers/RxJava/downloads","issues_url":"https://api.github.com/repos/hzsweers/RxJava/issues{/number}","pulls_url":"https://api.github.com/repos/hzsweers/RxJava/pulls{/number}","milestones_url":"https://api.github.com/repos/hzsweers/RxJava/milestones{/number}","notifications_url":"https://api.github.com/repos/hzsweers/RxJava/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hzsweers/RxJava/labels{/name}","releases_url":"https://api.github.com/repos/hzsweers/RxJava/releases{/id}","deployments_url":"https://api.github.com/repos/hzsweers/RxJava/deployments","created_at":"2016-01-31T23:56:17Z","updated_at":"2016-01-31T23:56:21Z","pushed_at":"2016-02-15T09:37:55Z","git_url":"git://github.com/hzsweers/RxJava.git","ssh_url":"git@github.com:hzsweers/RxJava.git","clone_url":"https://github.com/hzsweers/RxJava.git","svn_url":"https://github.com/hzsweers/RxJava","homepage":"","size":20733,"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":"1.x"}},"base":{"label":"ReactiveX:1.x","ref":"1.x","sha":"9b77f42e9e303e1ae5d3b1db1555c889ac077efc","user":{"login":"ReactiveX","id":6407041,"avatar_url":"https://avatars.githubusercontent.com/u/6407041?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveX","html_url":"https://github.com/ReactiveX","followers_url":"https://api.github.com/users/ReactiveX/followers","following_url":"https://api.github.com/users/ReactiveX/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveX/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveX/subscriptions","organizations_url":"https://api.github.com/users/ReactiveX/orgs","repos_url":"https://api.github.com/users/ReactiveX/repos","events_url":"https://api.github.com/users/ReactiveX/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveX/received_events","type":"Organization","site_admin":false},"repo":{"id":7508411,"name":"RxJava","full_name":"ReactiveX/RxJava","owner":{"login":"ReactiveX","id":6407041,"avatar_url":"https://avatars.githubusercontent.com/u/6407041?v=3","gravatar_id":"","url":"https://api.github.com/users/ReactiveX","html_url":"https://github.com/ReactiveX","followers_url":"https://api.github.com/users/ReactiveX/followers","following_url":"https://api.github.com/users/ReactiveX/following{/other_user}","gists_url":"https://api.github.com/users/ReactiveX/gists{/gist_id}","starred_url":"https://api.github.com/users/ReactiveX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ReactiveX/subscriptions","organizations_url":"https://api.github.com/users/ReactiveX/orgs","repos_url":"https://api.github.com/users/ReactiveX/repos","events_url":"https://api.github.com/users/ReactiveX/events{/privacy}","received_events_url":"https://api.github.com/users/ReactiveX/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ReactiveX/RxJava","description":"RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.","fork":false,"url":"https://api.github.com/repos/ReactiveX/RxJava","forks_url":"https://api.github.com/repos/ReactiveX/RxJava/forks","keys_url":"https://api.github.com/repos/ReactiveX/RxJava/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ReactiveX/RxJava/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ReactiveX/RxJava/teams","hooks_url":"https://api.github.com/repos/ReactiveX/RxJava/hooks","issue_events_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/events{/number}","events_url":"https://api.github.com/repos/ReactiveX/RxJava/events","assignees_url":"https://api.github.com/repos/ReactiveX/RxJava/assignees{/user}","branches_url":"https://api.github.com/repos/ReactiveX/RxJava/branches{/branch}","tags_url":"https://api.github.com/repos/ReactiveX/RxJava/tags","blobs_url":"https://api.github.com/repos/ReactiveX/RxJava/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ReactiveX/RxJava/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ReactiveX/RxJava/git/refs{/sha}","trees_url":"https://api.github.com/repos/ReactiveX/RxJava/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ReactiveX/RxJava/statuses/{sha}","languages_url":"https://api.github.com/repos/ReactiveX/RxJava/languages","stargazers_url":"https://api.github.com/repos/ReactiveX/RxJava/stargazers","contributors_url":"https://api.github.com/repos/ReactiveX/RxJava/contributors","subscribers_url":"https://api.github.com/repos/ReactiveX/RxJava/subscribers","subscription_url":"https://api.github.com/repos/ReactiveX/RxJava/subscription","commits_url":"https://api.github.com/repos/ReactiveX/RxJava/commits{/sha}","git_commits_url":"https://api.github.com/repos/ReactiveX/RxJava/git/commits{/sha}","comments_url":"https://api.github.com/repos/ReactiveX/RxJava/comments{/number}","issue_comment_url":"https://api.github.com/repos/ReactiveX/RxJava/issues/comments{/number}","contents_url":"https://api.github.com/repos/ReactiveX/RxJava/contents/{+path}","compare_url":"https://api.github.com/repos/ReactiveX/RxJava/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ReactiveX/RxJava/merges","archive_url":"https://api.github.com/repos/ReactiveX/RxJava/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ReactiveX/RxJava/downloads","issues_url":"https://api.github.com/repos/ReactiveX/RxJava/issues{/number}","pulls_url":"https://api.github.com/repos/ReactiveX/RxJava/pulls{/number}","milestones_url":"https://api.github.com/repos/ReactiveX/RxJava/milestones{/number}","notifications_url":"https://api.github.com/repos/ReactiveX/RxJava/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ReactiveX/RxJava/labels{/name}","releases_url":"https://api.github.com/repos/ReactiveX/RxJava/releases{/id}","deployments_url":"https://api.github.com/repos/ReactiveX/RxJava/deployments","created_at":"2013-01-08T20:11:48Z","updated_at":"2016-02-15T18:39:53Z","pushed_at":"2016-02-15T10:14:23Z","git_url":"git://github.com/ReactiveX/RxJava.git","ssh_url":"git@github.com:ReactiveX/RxJava.git","clone_url":"https://github.com/ReactiveX/RxJava.git","svn_url":"https://github.com/ReactiveX/RxJava","homepage":"","size":25839,"stargazers_count":11004,"watchers_count":11004,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1652,"mirror_url":null,"open_issues_count":138,"forks":1652,"open_issues":138,"watchers":11004,"default_branch":"1.x"}},"_links":{"self":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712"},"html":{"href":"https://github.com/ReactiveX/RxJava/pull/3712"},"issue":{"href":"https://api.github.com/repos/ReactiveX/RxJava/issues/3712"},"comments":{"href":"https://api.github.com/repos/ReactiveX/RxJava/issues/3712/comments"},"review_comments":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712/comments"},"review_comment":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ReactiveX/RxJava/pulls/3712/commits"},"statuses":{"href":"https://api.github.com/repos/ReactiveX/RxJava/statuses/6b19358fe0a1e6a33c7f4fa306d1309f1476d18e"}}}}