@@ -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