在org.jvnet.hk2.internal.ServiceHandleImpl.pushInjectee上有争用吗?

时间:2019-08-19 14:09:34

标签: jersey jersey-2.0 hk2

我的LnP测试表明我的球衣过滤器在以下位置阻塞:

org.jvnet.hk2.internal.ServiceHandleImpl.pushInjectee(ServiceHandleImpl.java:222)
org.jvnet.hk2.internal.MethodInterceptorImpl.invoke(MethodInterceptorImpl.java:119)
org.jvnet.hk2.internal.MethodInterceptorInvocationHandler.invoke(MethodInterceptorInvocationHandler.java:62) 
com.sun.proxy.$Proxy258.getResourceMethod(Unknown Source) 

这是因为我在过滤器中注入了一些东西并使用了它:

public class MyFilter implements ContainerRequestFilter {

@Context 

private ResourceInfo resourceInfo

}

其他@Context注入(例如HttpServletRequest)也有类似的问题,只要它是代理即可。

似乎只有1个ServiceHandleImpl并在线程之间共享。

这是一个已知问题吗?我有什么机会可以绕开这一争论?

例如,我可以重写代理生成器以为基于线程本地的代理提供“每线程ServiceHandleImpl”而不是单例代理吗?

0 个答案:

没有答案