title: Handle null value using Guava MapMaker/CacheBuilder
body: <p>I try to make a cache using MapMaker/CacheBuilder but I don't understand how to properly handle null values.</p>
  
  <pre><code> ConcurrentMap&lt;Key, Graph&gt; graphs = new MapMaker()
         .concurrencyLevel(4)
         .weakKeys()
         .maximumSize(10000)
         .expireAfterWrite(10, TimeUnit.MINUTES)
         .makeComputingMap(
             new Function&lt;Key, Graph&gt;() {
               public Graph apply(Key key) {
                 return createExpensiveGraph(key);
               }
             });
  </code></pre>
  
  <p>If the method createExpensiveGraph returns a null value, then a NullpointerException is thrown.
  I don't understand why the ComputingConcurrentHashMap throws a NPE instead of just returning a null value.</p>
  
  <p>How to properly handle this ? Just catch the NPE and return null instead ?
  Am I missing something ?</p>