title: Reason for the exception java.lang.VerifyError: Bad type on operand stack
body: <p>The below simple java code sends the 
  <strong>java.lang.VerifyError: Bad type on operand stack</strong> exception </p>
  
  <pre><code>public class TestJavaCodes {
  
      int parentData = 0;
  
      public void init() {
          A ob = new B();
      }
  
      public static void main(String[] args) {
  
          TestJavaCodes testJavaCodes = new TestJavaCodes();
          testJavaCodes.init();
      }
  
      public static class A {
          public A(MyLambdaFunc lambdaFunc) {
          }
      }
  
      public class B extends A {
  
          public B() {
              super((data1, type) -&gt; {
                  parentData = 1;
              });
          }
      }
  
      @FunctionalInterface
      public static interface MyLambdaFunc {
          public void onData(String data, int type);
      }
  }
  </code></pre>
  
  <p>If I remove the code </p>
  
  <pre><code>parentData = 1
  </code></pre>
  
  <p>from <code>B</code>'s constructor, the exception won't come.</p>
  
  <p>Can any one tell the reason for this?</p>