我有这段代码:
final Future<Map<String, Object>> handle = FrameworkUtil.getExecutorService("GENERAL").submit(
new Callable<Map<String, Object>>() {
@SuppressWarnings("unchecked")
@Override
public Map<String, Object> call() throws SSPolicyException {
LOG.debug("calling SSPolicyEvaluator.getPolicyDecision()");
Map<String, Object> policyDecision = policyModule.getPolicyDecision(ssoTokenStr, "*", actions, env);
LOG.debug("SSPolicyEvaluator.getPolicyDecision() returned successfully");
return policyDecision;
}
});
大多数时候它工作正常,但是现在或者不时地执行对方法call
的调用(即使没有打印日志行。)并且我调用超时
handle.get(TIME_OUT_SECONDS, TimeUnit.SECONDS);
检查线程转储,但没有线程被卡住,池没有被充分利用。
call
未执行的其他原因可能是什么。