title: "Invalid lambda deserialization" when lambda used for interface implementation
body: <p>I have a wicket project with lambda expressions. On one page when user clicks on back button my application crashes on: </p>
  
  <pre><code>java.lang.IllegalArgumentException: Invalid lambda deserialization
  at x.y.z.MyPage$3.$deserializeLambda$(MyPage.java:1)
  </code></pre>
  
  <p>In the page class (where I return) I'm using lambda expression for implementation of this interface:</p>
  
  <pre><code>public interface Localizator extends Serializable {
      String getLocalizedString(String key);
  }
  </code></pre>
  
  <p>And the lambda:</p>
  
  <pre><code>protected void someMethod() {
      localize((String key) -&gt; getString(key));
  }
  </code></pre>
  
  <p>When I change lambda to anonymous class, everything works fine. How should I use lambda in this case?</p>
  
  <p>Env: Java 1.8.0_25, Netbeans 8.0.2, Wicket 6.17.0.</p>
  
  <p>EDIT: 
  This is real (but simplified) method with lambda:</p>
  
  <pre><code>@Override
  protected DataLoader createDataLoader() {
  
      return new DataLoader(){
  
          @Override
          public List loadData() {
              ...
          }
  
          @Override
          public List convertToTableRows(List data) {
              return Converter.asRowList(
                  data, 
                  (Record record) -&gt; {...}, // this lambda is OK
                  (String key) -&gt; getString(key)); // this lambda is crashing
          }
  
          @Override
          public List filterTableRow() {
              ...
          }
  
      };
  }
  </code></pre>
  
  <p>Converter class:</p>
  
  <pre><code>public class Converter implements Serializable { 
      public static ArrayList asRowList(List data, OtherLoader loader, Localizator localizator){...}
  </code></pre>
  
  <p>DataLoader also extends Serializable. </p>