Dado o seguinte trecho da atividade:
String resultadoDoCallable = future.get(10, TimeUnit.SECONDS); //esperando por 10s
Se não houver resultado em 10s, o resultadoDoCallable será nulo.
De acordo com a documentação da Oracle para esse método, assim como o exemplo da implementação na classe JuntaResultadosFutureWSFutureBanco, o esperado é que seja lançado uma exceção do tipo TimeoutException caso não haja retorno dentro do limite definido.
Poderiam revisar o trecho em destaque?