Skip to content

Commit 032ae8d

Browse files
Merge pull request #1767 from loganj/uncaught_executor
ExecutorScheduler delivers uncaught exceptions
2 parents c579355 + fa927ab commit 032ae8d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/main/java/rx/schedulers/ExecutorScheduler.java

+2
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ public void run() {
173173
actual.call();
174174
} catch (Throwable t) {
175175
RxJavaPlugins.getInstance().getErrorHandler().handleError(t);
176+
Thread thread = Thread.currentThread();
177+
thread.getUncaughtExceptionHandler().uncaughtException(thread, t);
176178
} finally {
177179
unsubscribe();
178180
}

src/test/java/rx/schedulers/ExecutorSchedulerTest.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package rx.schedulers;
1717

18+
import org.junit.Test;
1819
import rx.Scheduler;
1920
import rx.internal.util.RxThreadFactory;
2021

@@ -29,5 +30,14 @@ public class ExecutorSchedulerTest extends AbstractSchedulerConcurrencyTests {
2930
protected Scheduler getScheduler() {
3031
return Schedulers.from(executor);
3132
}
32-
33+
34+
@Test
35+
public final void testUnhandledErrorIsDeliveredToThreadHandler() throws InterruptedException {
36+
SchedulerTests.testUnhandledErrorIsDeliveredToThreadHandler(getScheduler());
37+
}
38+
39+
@Test
40+
public final void testHandledErrorIsNotDeliveredToThreadHandler() throws InterruptedException {
41+
SchedulerTests.testHandledErrorIsNotDeliveredToThreadHandler(getScheduler());
42+
}
3343
}

0 commit comments

Comments
 (0)