Copy servlet listener over to new context on dispatch.

This allows it to finish the span with the correct response.
This commit is contained in:
Tyler Benson 2019-07-26 16:30:23 -07:00
parent c3203dace8
commit d6b903665e
3 changed files with 38 additions and 40 deletions

View File

@ -58,9 +58,9 @@ public class TagSettingAsyncListener implements AsyncListener {
} }
} }
/** Finish current span on dispatch. New listener will be attached by Servlet3Advice */ /** Transfer the listener over to the new context. */
@Override @Override
public void onStartAsync(final AsyncEvent event) throws IOException { public void onStartAsync(final AsyncEvent event) throws IOException {
onComplete(event); event.getAsyncContext().addListener(this);
} }
} }

View File

@ -137,25 +137,24 @@ class JettyServlet3TestDispatchImmediate extends JettyDispatchTest {
} }
} }
// TODO: Behavior in this test is pretty inconsistent with expectations. Fix and reenable. class JettyServlet3TestDispatchAsync extends JettyDispatchTest {
//class JettyServlet3TestDispatchAsync extends JettyDispatchTest { @Override
// @Override Class<Servlet> servlet() {
// Class<Servlet> servlet() { TestServlet3.Async
// TestServlet3.Async }
// }
// @Override
// @Override protected void setupServlets(ServletContextHandler context) {
// protected void setupServlets(ServletContextHandler context) { super.setupServlets(context)
// super.setupServlets(context)
// addServlet(context, "/dispatch" + SUCCESS.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + SUCCESS.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + ERROR.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + ERROR.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + EXCEPTION.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + EXCEPTION.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + REDIRECT.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + REDIRECT.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + AUTH_REQUIRED.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + AUTH_REQUIRED.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch/recursive", TestServlet3.DispatchRecursive)
// addServlet(context, "/dispatch/recursive", TestServlet3.DispatchRecursive) }
// } }
//}
abstract class JettyDispatchTest extends JettyServlet3Test { abstract class JettyDispatchTest extends JettyServlet3Test {
@Override @Override

View File

@ -178,25 +178,24 @@ class TomcatServlet3TestDispatchImmediate extends TomcatDispatchTest {
} }
} }
// TODO: Behavior in this test is pretty inconsistent with expectations. Fix and reenable. class TomcatServlet3TestDispatchAsync extends TomcatDispatchTest {
//class TomcatServlet3TestDispatchAsync extends TomcatDispatchTest { @Override
// @Override Class<Servlet> servlet() {
// Class<Servlet> servlet() { TestServlet3.Async
// TestServlet3.Async }
// }
// @Override
// @Override protected void setupServlets(Context context) {
// protected void setupServlets(Context context) { super.setupServlets(context)
// super.setupServlets(context)
// addServlet(context, "/dispatch" + SUCCESS.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + SUCCESS.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + ERROR.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + ERROR.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + EXCEPTION.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + EXCEPTION.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + REDIRECT.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + REDIRECT.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch" + AUTH_REQUIRED.path, TestServlet3.DispatchAsync)
// addServlet(context, "/dispatch" + AUTH_REQUIRED.path, TestServlet3.DispatchAsync) addServlet(context, "/dispatch/recursive", TestServlet3.DispatchRecursive)
// addServlet(context, "/dispatch/recursive", TestServlet3.DispatchRecursive) }
// } }
//}
abstract class TomcatDispatchTest extends TomcatServlet3Test { abstract class TomcatDispatchTest extends TomcatServlet3Test {
@Override @Override