Comment utiliser invokeAll() pour permettre à tous de pool de threads font leur travail?

    ExecutorService pool=Executors.newFixedThreadPool(7);
        List<Future<Hotel>> future=new ArrayList<Future<Hotel>>();
        List<Callable<Hotel>> callList = new ArrayList<Callable<Hotel>>();

        for(int i=0;i<=diff;i++){

            String str="2013-"+(liDates.get(i).get(Calendar.MONTH)+1)+"-"+liDates.get(i).get(Calendar.DATE);

            callList.add(new HotelCheapestFare(str));

        }       
     future=pool.invokeAll(callList);
for(int i=0;i<=future.size();i++){

        System.out.println("name is:"+future.get(i).get().getName());
    }

Maintenant, je veux piscine à invokeAll toutes les la tâche avant d'arriver à la boucle for, mais quand je lance ce programme pour la boucle sera exécuté avant que invokeAll et jette cette exception:

java.util.concurrent.ExecutionException: java.lang.NullPointerException at 
java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) at  
java.util.concurrent.FutureTask.get(Unknown Source) at 
com.mmt.freedom.cheapestfare.TestHotel.main(TestHotel.java:6‌​5)

Caused by: java.lang.NullPointerException at 
com.mmt.freedom.cheapestfare.HotelCheapestFare.getHotelCheapestFare(HotelCheapes‌​tFare.java:166) 
at com.mmt.freedom.cheapestfare.HotelCheapestFare.call(HotelChe‌​apestFare.java:219)
at com.mmt.freedom.cheapestfare.HotelCheapestFare.call(HotelChe‌​apestFare.java:1) 
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) atjava.util.concurrent.ThreadPoolExecutor$Worker.run(Unknow‌​n Source)
at java.lang.Thread.run
InvokeAll doit attendre que tous les Callables avez terminé. Pourriez-vous s'il vous plaît ajouter l'exception et la trace de la pile?
en interne, certains thread va pour la boucle avant l'achèvement et la jette exception
s'il vous plaît aider moi je dois soumettre ma tâche
Selon votre stack trace: com.mmt.freedom.cheapestfare.HotelCheapestFare.getHotelCheapestFare(HotelCheapes‌​tFare.java:166). Erreur devrait être là.
j'ai une liste à ce point, mais quand je le débogage je reçois ma liste

OriginalL'auteur Sahil Kohli | 2013-08-13