Skip to content

Commit 4f53514

Browse files
committed
Remove try/catch after startAsync refactor
1 parent a3fa87f commit 4f53514

1 file changed

Lines changed: 33 additions & 37 deletions

File tree

jooby/src/main/java/org/jooby/internal/HttpHandlerImpl.java

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -327,44 +327,40 @@ private void done(final RequestImpl req, final ResponseImpl rsp, final Throwable
327327

328328
private void onDeferred(final Map<Object, Object> scope, final NativeRequest request,
329329
final RequestImpl req, final ResponseImpl rsp, final Deferred deferred) {
330-
try {
331-
/** Deferred executor. */
332-
Key<Executor> execKey = deferred.executor()
333-
.map(it -> Key.get(Executor.class, Names.named(it)))
334-
.orElse(gexec);
335-
336-
/** Get executor. */
337-
Executor executor = injector.getInstance(execKey);
338-
339-
request.startAsync(executor, () -> {
340-
try {
341-
deferred.handler(req, (success, x) -> {
342-
boolean close = false;
343-
Optional<Throwable> failure = Optional.ofNullable(x);
344-
try {
345-
requestScope.enter(scope);
346-
if (success != null) {
347-
close = true;
348-
rsp.send(success);
349-
}
350-
} catch (Throwable exerr) {
351-
failure = Optional.of(failure.orElse(exerr));
352-
} finally {
353-
Throwable cause = failure.orElse(null);
354-
if (cause != null) {
355-
close = true;
356-
handleErr(req, rsp, cause);
357-
}
358-
cleanup(req, rsp, close, cause, true);
330+
/** Deferred executor. */
331+
Key<Executor> execKey = deferred.executor()
332+
.map(it -> Key.get(Executor.class, Names.named(it)))
333+
.orElse(gexec);
334+
335+
/** Get executor. */
336+
Executor executor = injector.getInstance(execKey);
337+
338+
request.startAsync(executor, () -> {
339+
try {
340+
deferred.handler(req, (success, x) -> {
341+
boolean close = false;
342+
Optional<Throwable> failure = Optional.ofNullable(x);
343+
try {
344+
requestScope.enter(scope);
345+
if (success != null) {
346+
close = true;
347+
rsp.send(success);
359348
}
360-
});
361-
} catch (Exception ex) {
362-
handleErr(req, rsp, ex);
363-
}
364-
});
365-
} catch (Exception ex) {
366-
handleErr(req, rsp, ex);
367-
}
349+
} catch (Throwable exerr) {
350+
failure = Optional.of(failure.orElse(exerr));
351+
} finally {
352+
Throwable cause = failure.orElse(null);
353+
if (cause != null) {
354+
close = true;
355+
handleErr(req, rsp, cause);
356+
}
357+
cleanup(req, rsp, close, cause, true);
358+
}
359+
});
360+
} catch (Exception ex) {
361+
handleErr(req, rsp, ex);
362+
}
363+
});
368364
}
369365

370366
private void cleanup(final RequestImpl req, final ResponseImpl rsp, final boolean close,

0 commit comments

Comments
 (0)