title: Interpret Java stack trace with lambdas such as ".lambda$null$2" & and "$$Lambda$"
body: <p>I'm looking for a definition of the parts that occurs around a lambda in the Java 8 stack trace</p>
  
  <p>For example this code</p>
  
  <pre><code>Object inputData = someData();
  
  myList.stream().forEach(listItem -&gt; {
  
      Query query = (Query) listItem.getSingle().apply(this.getId());
  
      Object data = diffUtils.applyProjection(query, inputData);
  
      myStringCollection.stream()
         .filter(destination -&gt; myPredicateMethod(listItem, destination))
         .forEach(destination -&gt; myProcessMethod(destination, data));
  }
  </code></pre>
  
  <p>sometimes produces this exception.</p>
  
  <pre><code>at [CLASS].lambda$null$2([CLASS].java:85)
  at [CLASS]$$Lambda$64/730559617.accept(Unknown Source)
  </code></pre>
  
  <p>What is the different parts describing in the exception? What is the "null", "2", "64", "730559617" and "Unknown Source" telling me?</p>
  
  <p>A more elaborated example can be found here (but here the "null" in my exception above is not present). <a href="http://blog.takipi.com/the-dark-side-of-lambda-expressions-in-java-8/" rel="noreferrer">http://blog.takipi.com/the-dark-side-of-lambda-expressions-in-java-8/</a></p>