java-memshell-generator-release icon indicating copy to clipboard operation
java-memshell-generator-release copied to clipboard

跨线程问题

Open steverpm890 opened this issue 1 year ago • 2 comments

在非Undertow线程,注入不成功。 调试了,发现,是在getContext,这里获取失败

steverpm890 avatar Oct 16 '24 17:10 steverpm890

你贴一下 undertow 版本 和 jdk 版本吧

pen4uin avatar Oct 17 '24 02:10 pen4uin

starting server: Undertow - 2.2.10.Final jdk11 我调了下,发现不是版本的问题 Object requestContext = invokeMethod(threads[i].getContextClassLoader().loadClass("io.undertow.servlet.handlers.ServletRequestContext"), "current"); Object servletContext = invokeMethod(requestContext, "getCurrentServletContext");

这2句,在非undertow线程执行,是有问题,如果当前,没有请求,是获取不到servletContext的 因为在io.undertow.servlet.handlers.ServletRequestContext setCurrentRequestContext,一个request完成后,这里会被置空,也就是ThreadLocal,会被清掉

steverpm890 avatar Oct 17 '24 08:10 steverpm890