java.lang.ArrayIndexOutOfBoundsException : -1 future. get() 多线程

标签 java multithreading indexoutofboundsexception java.util.concurrent

为什么我的应用程序抛出

java.lang.ArrayIndexOutOfBoundsException: -1

当我在 java.utils.concurrent.Future 上调用 future.get() 时??

   List<Future> tableLoadings = new LinkedList<>();
   ExecutorService executor = Executors.newFixedThreadPool(8);
    try{
        for(Entry<Integer, String> entry: farmIds.entrySet())
        {   
            int id = entry.getKey();
            String username = entry.getValue(); 
            
            psLog.println("START ELABORAZIONE FARMACIA ID : "+ id+" TPH_USERNAME : "+username );    
            /*SdajSdaj*/
            tableLoadings.add(executor.submit(new StatusMultiThreading(id, username, psLog, connSTORY, connCF, mongoDatabase)));
        }
        for (Future<Void> future : tableLoadings) {         
                try{
                    future.get();           
                }catch(Exception e){
                    psLog.println("[EE] ERORE ELABORAZIONE THREAD FARMACIA [EE] "+e.getMessage());
                }
        }
    }finally{
        executor.shutdown(); 
        psLog.println("END CONSOLIDA STATUS FARMACIE");
    }           

这是日志..

START ELABORAZIONE FARMACIA ID : 62 TPH_USERNAME : A0102987
START ELABORAZIONE FARMACIA ID : 63 TPH_USERNAME : A0103019
START SENDING DATA TO DB FARMID = 66
...
START SENDING DATA TO DB FARMID = 17
[EE] ERORE ELABORAZIONE THREAD FARMACIA [EE] java.lang.ArrayIndexOutOfBoundsException: -1
[EE] ERRORE ELABORAZIONE THREAD FARMACIA [EE] java.lang.ArrayIndexOutOfBoundsException: -1
END CONSOLIDA STATUS FARMACIE

如果我调试的话,我找不到任何错误。

我无法进入 .get() 方法内部,所以我不明白哪一行代码无效。

最佳答案

到目前为止可以说的是:您使用 ExecutorService 传入任务:

new StatusMultiThreading(id, username, psLog, connSTORY, connCF, mongoDatabase)

稍后,当您调用 get() 时,就会触发相应的任务。所以这个异常发生在你的那个类中。

关于java.lang.ArrayIndexOutOfBoundsException : -1 future. get() 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630406/

相关文章:

java - 在 Java 内部,Liquibase 更新在应用变更集后挂起

java - 调用 httpconnect 时编码不起作用

java - 关于多线程上的相同 Runnable 引用

java - Test2 数组初始化错误

java - 从 JTable 中删除行 - Java

java - 从 Java 运行时与在终端中运行时的 SVN Info 命令不同

java - Scala 与 Java 互操作并使用对象重写方法

C# Service Application 启动无限线程

android - RxJava Android AmbWith 运算符导致 NetworkOnMainThread 异常

java - 字符串索引超出范围 : -1 error with loops