diff --git a/half-sync-half-async/pom.xml b/half-sync-half-async/pom.xml
index 2490e9214..ce8689cee 100644
--- a/half-sync-half-async/pom.xml
+++ b/half-sync-half-async/pom.xml
@@ -14,5 +14,10 @@
junit
test
+
+ org.mockito
+ mockito-core
+ test
+
diff --git a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java
index 457dffa20..3be340c02 100644
--- a/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java
+++ b/half-sync-half-async/src/main/java/com/iluwatar/halfsynchalfasync/AsynchronousService.java
@@ -50,6 +50,7 @@ public class AsynchronousService {
task.onPreCall();
} catch (Exception e) {
task.onError(e);
+ return;
}
service.submit(new FutureTask(task) {
diff --git a/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java
new file mode 100644
index 000000000..01c905039
--- /dev/null
+++ b/half-sync-half-async/src/test/java/com/iluwatar/halfsynchalfasync/AsynchronousServiceTest.java
@@ -0,0 +1,79 @@
+package com.iluwatar.halfsynchalfasync;
+
+import org.junit.Test;
+import org.mockito.InOrder;
+
+import java.io.IOException;
+import java.util.concurrent.LinkedBlockingQueue;
+
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+/**
+ * Date: 12/12/15 - 11:15 PM
+ *
+ * @author Jeroen Meulemeester
+ */
+public class AsynchronousServiceTest {
+
+ @Test
+ public void testPerfectExecution() throws Exception {
+ final AsynchronousService service = new AsynchronousService(new LinkedBlockingQueue<>());
+ final AsyncTask