Skip to content

Commit 3b2ec8c

Browse files
committed
Removing custom abort logic and custom exception
1 parent c02ae01 commit 3b2ec8c

File tree

3 files changed

+10
-165
lines changed

3 files changed

+10
-165
lines changed

extras/rxjava/src/main/java/org/asynchttpclient/extras/rxjava/AsyncHttpClientErrorException.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

extras/rxjava/src/main/java/org/asynchttpclient/extras/rxjava/AsyncHttpObservable.java

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,12 @@
2828
public class AsyncHttpObservable {
2929

3030
/**
31-
* Observe a request execution and emit the full response no matter what.
31+
* Observe a request execution and emit the response to the observer.
3232
*
3333
* @param supplier
3434
* @return The cold observable (must be subscribed to in order to execute).
3535
*/
3636
public static Observable<Response> toObservable(final Func0<BoundRequestBuilder> supplier) {
37-
return toObservable(false, supplier);
38-
}
39-
40-
/**
41-
* Observe a request execution and emit an error for http status error codes >= 400.
42-
*
43-
* @param abortOnErrorStatus
44-
* @param supplier
45-
* @return The cold observable (must be subscribed to in order to execute).
46-
*/
47-
public static Observable<Response> toObservable(final Boolean abortOnErrorStatus, final Func0<BoundRequestBuilder> supplier) {
4837

4938
//Get the builder from the function
5039
final BoundRequestBuilder builder = supplier.call();
@@ -58,23 +47,13 @@ public void call(final Subscriber<? super Response> subscriber) {
5847
AsyncCompletionHandler<Void> handler = new AsyncCompletionHandler<Void>() {
5948
@Override
6049
public State onStatusReceived(HttpResponseStatus status) throws Exception {
61-
State state = super.onStatusReceived(status);
62-
if (abortOnErrorStatus) {
63-
int code = status.getStatusCode();
64-
if (code >= 400) {
65-
state = State.ABORT;
66-
subscriber.onError(new AsyncHttpClientErrorException(String.format("Client error status code: %s", code)));
67-
}
68-
}
69-
return state;
50+
return super.onStatusReceived(status);
7051
}
7152

7253
@Override
7354
public Void onCompleted(Response response) throws Exception {
74-
if (!(abortOnErrorStatus && response.getStatusCode() >= 400)) {
75-
subscriber.onNext(response);
76-
subscriber.onCompleted();
77-
}
55+
subscriber.onNext(response);
56+
subscriber.onCompleted();
7857
return null;
7958
}
8059

@@ -95,27 +74,16 @@ public void onThrowable(Throwable t) {
9574
}
9675

9776
/**
98-
* Observe a request execution and emit the full response no matter what.
77+
* Observe a request execution and emit the response to the observer.
9978
*
10079
* @param supplier
10180
* @return The hot observable (eagerly executes).
10281
*/
10382
public static Observable<Response> observe(final Func0<BoundRequestBuilder> supplier) {
104-
return observe(false, supplier);
105-
}
106-
107-
/**
108-
* Observe a request execution and emit an error for http status error codes >= 400.
109-
*
110-
* @param abortOnErrorStatus
111-
* @param supplier
112-
* @return The hot observable (eagerly executes).
113-
*/
114-
public static Observable<Response> observe(final Boolean abortOnErrorStatus, final Func0<BoundRequestBuilder> supplier) {
11583
//use a ReplaySubject to buffer the eagerly subscribed-to Observable
11684
ReplaySubject<Response> subject = ReplaySubject.create();
11785
//eagerly kick off subscription
118-
toObservable(abortOnErrorStatus, supplier).subscribe(subject);
86+
toObservable(supplier).subscribe(subject);
11987
//return the subject that can be subscribed to later while the execution has already started
12088
return subject;
12189
}

extras/rxjava/src/test/java/org/asynchttpclient/extras/rxjava/AsyncHttpObservableTest.java

Lines changed: 4 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
public class AsyncHttpObservableTest {
3333

3434
@Test(groups = "fast")
35-
public void testToObservableNoAbortNoError() {
35+
public void testToObservableNoError() {
3636
final TestSubscriber<Response> tester = new TestSubscriber<>();
3737

3838
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
@@ -57,7 +57,7 @@ public BoundRequestBuilder call() {
5757
}
5858

5959
@Test(groups = "fast")
60-
public void testToObservableNoAbortError() {
60+
public void testToObservableError() {
6161
final TestSubscriber<Response> tester = new TestSubscriber<>();
6262

6363
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
@@ -82,55 +82,7 @@ public BoundRequestBuilder call() {
8282
}
8383

8484
@Test(groups = "fast")
85-
public void testToObservableAbortNoError() {
86-
final TestSubscriber<Response> tester = new TestSubscriber<>();
87-
88-
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
89-
Observable<Response> o1 = AsyncHttpObservable.toObservable(true, new Func0<BoundRequestBuilder>() {
90-
@Override
91-
public BoundRequestBuilder call() {
92-
return client.prepareGet("http://www.ning.com");
93-
}
94-
});
95-
o1.subscribe(tester);
96-
tester.awaitTerminalEvent();
97-
tester.assertTerminalEvent();
98-
tester.assertCompleted();
99-
List<Response> responses = tester.getOnNextEvents();
100-
assertNotNull(responses);
101-
assertEquals(responses.size(), 1);
102-
assertEquals(responses.get(1).getStatusCode(), 200);
103-
} catch (Exception e) {
104-
Thread.currentThread().interrupt();
105-
}
106-
}
107-
108-
@Test(groups = "fast")
109-
public void testToObservableAbortError() {
110-
final TestSubscriber<Response> tester = new TestSubscriber<>();
111-
112-
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
113-
Observable<Response> o1 = AsyncHttpObservable.toObservable(true, new Func0<BoundRequestBuilder>() {
114-
@Override
115-
public BoundRequestBuilder call() {
116-
return client.prepareGet("http://www.ning.com/ttfn");
117-
}
118-
});
119-
o1.subscribe(tester);
120-
tester.awaitTerminalEvent();
121-
tester.assertTerminalEvent();
122-
tester.assertNotCompleted();
123-
tester.assertError(AsyncHttpClientErrorException.class);
124-
List<Response> responses = tester.getOnNextEvents();
125-
assertNotNull(responses);
126-
assertEquals(responses.size(), 0);
127-
} catch (Exception e) {
128-
Thread.currentThread().interrupt();
129-
}
130-
}
131-
132-
@Test(groups = "fast")
133-
public void testObserveNoAbortNoError() {
85+
public void testObserveNoError() {
13486
final TestSubscriber<Response> tester = new TestSubscriber<>();
13587

13688
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
@@ -155,7 +107,7 @@ public BoundRequestBuilder call() {
155107
}
156108

157109
@Test(groups = "fast")
158-
public void testObserveNoAbortError() {
110+
public void testObserveError() {
159111
final TestSubscriber<Response> tester = new TestSubscriber<>();
160112

161113
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
@@ -179,54 +131,6 @@ public BoundRequestBuilder call() {
179131
}
180132
}
181133

182-
@Test(groups = "fast")
183-
public void testObserveAbortNoError() {
184-
final TestSubscriber<Response> tester = new TestSubscriber<>();
185-
186-
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
187-
Observable<Response> o1 = AsyncHttpObservable.observe(true, new Func0<BoundRequestBuilder>() {
188-
@Override
189-
public BoundRequestBuilder call() {
190-
return client.prepareGet("http://www.ning.com");
191-
}
192-
});
193-
o1.subscribe(tester);
194-
tester.awaitTerminalEvent();
195-
tester.assertTerminalEvent();
196-
tester.assertCompleted();
197-
List<Response> responses = tester.getOnNextEvents();
198-
assertNotNull(responses);
199-
assertEquals(responses.size(), 1);
200-
assertEquals(responses.get(1).getStatusCode(), 200);
201-
} catch (Exception e) {
202-
Thread.currentThread().interrupt();
203-
}
204-
}
205-
206-
@Test(groups = "fast")
207-
public void testObserveAbortError() {
208-
final TestSubscriber<Response> tester = new TestSubscriber<>();
209-
210-
try (AsyncHttpClient client = new DefaultAsyncHttpClient()) {
211-
Observable<Response> o1 = AsyncHttpObservable.observe(true, new Func0<BoundRequestBuilder>() {
212-
@Override
213-
public BoundRequestBuilder call() {
214-
return client.prepareGet("http://www.ning.com/ttfn");
215-
}
216-
});
217-
o1.subscribe(tester);
218-
tester.awaitTerminalEvent();
219-
tester.assertTerminalEvent();
220-
tester.assertNotCompleted();
221-
tester.assertError(AsyncHttpClientErrorException.class);
222-
List<Response> responses = tester.getOnNextEvents();
223-
assertNotNull(responses);
224-
assertEquals(responses.size(), 0);
225-
} catch (Exception e) {
226-
Thread.currentThread().interrupt();
227-
}
228-
}
229-
230134
@Test(groups = "fast")
231135
public void testObserveMultiple() {
232136
final TestSubscriber<Response> tester = new TestSubscriber<>();

0 commit comments

Comments
 (0)