title: ExecutorService.Submit(Callable<T>) is returning null value for Future<T> object
body: <p>I'm using <code>ExecutorService</code> to spawn threads for performing different tasks. When the <code>submit(Callable&lt;T&gt;)</code> method is made, it should return a <code>Future&lt;T&gt;</code> object. Instead, it is returning null. As a result, when <code>Future&lt;T&gt;.get()</code> method is called, it will fail with <code>NullPointerException</code>.</p>
  
  <p>Has any one faced this problem? Or, am I doing something wrong?</p>
  
  <pre><code>ArrayList&lt;Boolean&gt; resultsList = new ArrayList&lt;Boolean&gt; ();
  ExecutorService excutorService  = Executors.newCachedThreadPool();
  for(ClassImplementingCallable myClassImplementingCallable : listOfClassesImplementingCallable) {
      resultsList.add( excutorService.submit( myClassImplementingCallable ) );
  }
  excutorService.shutdown();
  for ( Future&lt; Boolean &gt; result : resultList ) {
      result.get(); // getting exception here..
  }
  </code></pre>