title: Java bug when combining lambdas and multi-catch clauses?
body: <pre><code>import java.io.*;             
  import java.net.*;            
  
  public class Test {           
      public static void main(String[] arguments) throws Exception {
          Runnable runnable = () -&gt; {
              try {
                  throwException();
              }
              catch (SocketException|EOFException exception) {
                  System.err.println("wrong");
              }
              catch (IOException exception) {
                  System.err.println("right");
              }
          };
  
          runnable.run();
      }                         
  
      private static void throwException() throws IOException {
          throw new NotSerializableException();
      }                         
  }
  </code></pre>
  
  <p>Why does this program print "wrong"? If I remove the lambda, or if I break apart the multi-catch clause, then it prints "right".</p>
  
  <pre class="lang-none prettyprint-override"><code>$ javac -version
  javac 1.8.0_11
  $ java -version
  java version "1.8.0_11"
  Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
  Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
  </code></pre>