Java ExecutorServicve.invokeAll()不';不要打电话

Java ExecutorServicve.invokeAll()不';不要打电话,java,multithreading,parallel-processing,executorservice,callable,Java,Multithreading,Parallel Processing,Executorservice,Callable,陷入一种奇怪的境地。在本地调试项目时,在同一项目的单元测试中,ExecutorService invokeAll正确地进入call()方法 但是,当我将我的项目作为更大项目的一部分进行测试时(我的项目包含在jar中-我已经三次验证了依赖关系是否运行最新的代码),exectorService.invokeAll(任务)不会进入call()。以下是示例代码: public class ReaderWithBusinessRulesImpl implements Callable<List<

陷入一种奇怪的境地。在本地调试项目时,在同一项目的单元测试中,ExecutorService invokeAll正确地进入call()方法

但是,当我将我的项目作为更大项目的一部分进行测试时(我的项目包含在jar中-我已经三次验证了依赖关系是否运行最新的代码),exectorService.invokeAll(任务)不会进入call()。以下是示例代码:

public class ReaderWithBusinessRulesImpl implements Callable<List<FsDealWrapper>> {

@Override
public List<FsDealWrapper> call() throws Exception{
    return read(deals, context, cobFrom, cobTo);
}
public类ReaderWithBusinessRulesImpl实现可调用{
@凌驾
公共列表调用()引发异常{
返回读取(交易、上下文、cobFrom、cobTo);
}
执行这些可运行任务的类

final List<ReaderWithBusinessRulesImpl> tasks = Lists.newArrayList();
    for (List<FsDeal> dealsChunk : Lists.partition(req.getDeals(), readSize)) {
        tasks.add(new ReaderWithBusinessRulesImpl(fsDao, dealRequestsGenerator, dealsChunk, req.getContext(), cobFrom, cobTo));
    }
    try {
        for (Future<List<FsDealWrapper>> results : service.invokeAll(tasks)) {
final List tasks=Lists.newArrayList();
for(List dealshunk:Lists.partition(req.getDeals(),readSize)){
添加(新的ReaderWithBusinessRulesImpl(fsDao、dealRequestsGenerator、dealsChunk、req.getContext()、cobFrom、cobTo));
}
试一试{
for(未来结果:service.invokeAll(任务)){
最后一行(如上)仅在本地执行时正确地进入call()方法,而不是在另一个项目中


有什么建议吗?

现在可以用了。我以前没有打电话()带有@Override注解的方法。包括@Override现在给了我我所期望的结果。

你确定没有其他问题。这个解决方案对我来说似乎有点奇怪
@Override
注解只是为了编译时的安全;肯定还有另一个问题。@JacobG这似乎解决了我的程序的问题,我没有做任何其他更改艾德。这对我来说也有点怀疑,但我会接受它……现在。。。。。