Skip to content

Instantly share code, notes, and snippets.

@hierynomus
Last active February 19, 2021 07:41
Show Gist options
  • Save hierynomus/a2f143a555466f83d9bc to your computer and use it in GitHub Desktop.
Save hierynomus/a2f143a555466f83d9bc to your computer and use it in GitHub Desktop.

Revisions

  1. hierynomus revised this gist Aug 24, 2015. 2 changed files with 66 additions and 1015 deletions.
    65 changes: 65 additions & 0 deletions ThreeLevelsDownStackOverflow.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    import com.esotericsoftware.kryo.Kryo;
    import com.esotericsoftware.kryo.io.FastOutput;
    import com.esotericsoftware.minlog.Log;
    import org.junit.Test;

    import java.io.ByteArrayOutputStream;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.Map;

    /**
    * Created by ajvanerp on 24/08/15.
    */
    public class ThreeLevelsDownStackOverflow {
    @Test
    public void goBananas() {
    BarRef barRef = new BarRef();
    GenericBar<BarRef> genBar1 = new GenericBar<>(barRef);
    GenericBar<BarRef> genBar2 = new GenericBar<>(barRef);
    List<GenericBar<?>> bars = new ArrayList<>();
    bars.add(genBar2);
    bars.add(genBar1);
    // Now added another generics class in the mix.
    // During serialization there now is no direct link between genericsScope and parentScope
    // But rather there is a cycle.
    new GenericContainer<>(new BarContainer(bars));
    Kryo kryo = new Kryo();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    Log.set(Log.LEVEL_TRACE);
    kryo.writeObject(new FastOutput(outputStream), genBar1);
    }
    }

    class GenericContainer<T extends Bar> {
    BarContainer barContainer;

    public GenericContainer(BarContainer barContainer) {
    this.barContainer = barContainer;
    for (GenericBar<?> foo : barContainer.foos) {
    foo.container = this;
    }
    }
    }

    class BarContainer {
    List<GenericBar<?>> foos;

    public BarContainer(List<GenericBar<?>> foos) {
    this.foos = foos;
    }
    }

    interface Bar {}
    class BarRef implements Bar {}
    class GenericBar<B extends Bar> implements Bar {
    private Map<String, Object> map = Collections.singletonMap("myself", (Object) this);
    B foo;
    GenericContainer<?> container;

    public GenericBar(B foo) {
    this.foo = foo;
    }
    }
    1,016 changes: 1 addition & 1,015 deletions result.txt
    Original file line number Diff line number Diff line change
    @@ -19,1021 +19,7 @@ java.lang.StackOverflowError
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    [...]
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)

    java.lang.StackOverflowError
  2. hierynomus revised this gist Aug 24, 2015. 3 changed files with 251 additions and 0 deletions.
    18 changes: 18 additions & 0 deletions StackOverflowTest_2_24_0.java → StackOverflowTest.java
    Original file line number Diff line number Diff line change
    @@ -11,11 +11,28 @@
    public class StackOverflowTest_2_24_0 {

    @Test
    public void thisWorks() {
    FooRef fooRef = new FooRef();
    GenericFoo<FooRef> genFoo1 = new GenericFoo<>(fooRef);
    GenericFoo<FooRef> genFoo2 = new GenericFoo<>(fooRef);
    List<GenericFoo<?>> foos = new ArrayList<>();
    // Note the order of the items in the list (vs goBananas)
    foos.add(genFoo1);
    foos.add(genFoo2);
    new FooContainer(foos);
    Kryo kryo = new Kryo();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    kryo.writeObject(new FastOutput(outputStream), genFoo1);
    }

    @Test
    public void goBananas() {
    FooRef fooRef = new FooRef();
    GenericFoo<FooRef> genFoo1 = new GenericFoo<>(fooRef);
    GenericFoo<FooRef> genFoo2 = new GenericFoo<>(fooRef);
    List<GenericFoo<?>> foos = new ArrayList<>();
    // Note the order of the items in the list (vs thisWorks)
    foos.add(genFoo2);
    foos.add(genFoo1);
    new FooContainer(foos);
    @@ -24,6 +41,7 @@ public void goBananas() {

    kryo.writeObject(new FastOutput(outputStream), genFoo1);
    }

    }

    class FooContainer {
    80 changes: 80 additions & 0 deletions trace (goBananas).log
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,80 @@
    00:00 TRACE: [kryo] Write initial object reference 0: GenericFoo
    00:00 DEBUG: [kryo] Write: GenericFoo
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Field 'map' of type interface java.util.Map of generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Processing actual type class java.lang.String (java.lang.Class)
    00:00 TRACE: [kryo] Processing actual type class java.lang.Object (java.lang.Class)
    00:00 TRACE: [kryo] Class java.util.Map has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=K type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for K is: java.lang.String
    00:00 TRACE: [kryo] Type parameter variable: name=V type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for V is: java.lang.Object
    00:00 TRACE: [kryo] Generics scope of field 'map' of class java.util.Map<java.lang.String, java.lang.Object> is {V=class java.lang.Object, K=class java.lang.String}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'map' to be java.util.Map<java.lang.String, java.lang.Object> where type parameters are [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field generics: [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field 'foo' of type interface Foo of generic type B
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
    00:00 TRACE: [kryo] Generics scope of field 'foo' of class B is null
    00:00 TRACE: [kryo] Field container: class FooContainer
    00:00 TRACE: [kryo] Register class name: GenericFoo (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: GenericFoo
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Write field: container (GenericFoo) pos=1
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Field 'foos' of type interface java.util.List of generic type java.util.List<GenericFoo<?>>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.List<GenericFoo<?>>
    00:00 TRACE: [kryo] Processing actual type GenericFoo<?> (sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl)
    00:00 TRACE: [kryo] Class java.util.List has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=E type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for E is: GenericFoo
    00:00 TRACE: [kryo] Generics scope of field 'foos' of class java.util.List<GenericFoo<?>> is {E=class GenericFoo}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'foos' to be java.util.List<GenericFoo<?>> where type parameters are [class GenericFoo]
    00:00 TRACE: [kryo] Field generics: [class GenericFoo]
    00:00 TRACE: [kryo] Register class name: FooContainer (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] Write class name: FooContainer
    00:00 TRACE: [kryo] Write initial object reference 1: FooContainer
    00:00 DEBUG: [kryo] Write: FooContainer
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: FooContainer
    00:00 TRACE: [kryo] Write field: foos (FooContainer) pos=16
    00:00 TRACE: [kryo] Register class name: java.util.ArrayList (com.esotericsoftware.kryo.serializers.CollectionSerializer)
    00:00 TRACE: [kryo] Write class name: java.util.ArrayList
    00:00 TRACE: [kryo] Write initial object reference 2: [GenericFoo@5d3411d, GenericFoo@3c679bde]
    00:00 DEBUG: [kryo] Write: [GenericFoo@5d3411d, GenericFoo@3c679bde]
    00:00 TRACE: [kryo] Write class name: GenericFoo
    00:00 TRACE: [kryo] Write initial object reference 3: GenericFoo
    00:00 DEBUG: [kryo] Write: GenericFoo
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: GenericFoo
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Write field: container (GenericFoo) pos=52
    00:00 TRACE: [kryo] Write class name reference 0: FooContainer
    00:00 DEBUG: [kryo] Write object reference 1: FooContainer
    00:00 TRACE: [kryo] Write field: foo (GenericFoo) pos=55
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Register class name: FooRef (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] Write class name: FooRef
    00:00 TRACE: [kryo] Write initial object reference 4: FooRef
    00:00 DEBUG: [kryo] Write: FooRef
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: FooRef
    00:00 TRACE: [kryo] Write field: map (GenericFoo) pos=64
    00:00 TRACE: [kryo] Register class name: java.util.Collections$SingletonMap (com.esotericsoftware.kryo.serializers.DefaultSerializers$CollectionsSingletonMapSerializer)
    00:00 TRACE: [kryo] Write class name: java.util.Collections$SingletonMap
    00:00 TRACE: [kryo] Write initial object reference 5: {myself=GenericFoo@5d3411d}
    00:00 DEBUG: [kryo] Write: {myself=GenericFoo@5d3411d}
    00:00 TRACE: [kryo] Write class 1: String
    00:00 TRACE: [kryo] Write initial object reference 6: myself
    00:00 TRACE: [kryo] Write: myself
    00:00 TRACE: [kryo] Write class name reference 2: GenericFoo
    00:00 DEBUG: [kryo] Write object reference 3: GenericFoo
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Object graph complete.

    java.lang.StackOverflowError
    153 changes: 153 additions & 0 deletions trace (thisWorks).log
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,153 @@
    00:00 TRACE: [kryo] Write initial object reference 0: GenericFoo
    00:00 DEBUG: [kryo] Write: GenericFoo
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Field 'map' of type interface java.util.Map of generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Processing actual type class java.lang.String (java.lang.Class)
    00:00 TRACE: [kryo] Processing actual type class java.lang.Object (java.lang.Class)
    00:00 TRACE: [kryo] Class java.util.Map has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=K type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for K is: java.lang.String
    00:00 TRACE: [kryo] Type parameter variable: name=V type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for V is: java.lang.Object
    00:00 TRACE: [kryo] Generics scope of field 'map' of class java.util.Map<java.lang.String, java.lang.Object> is {V=class java.lang.Object, K=class java.lang.String}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'map' to be java.util.Map<java.lang.String, java.lang.Object> where type parameters are [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field generics: [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field 'foo' of type interface Foo of generic type B
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
    00:00 TRACE: [kryo] Generics scope of field 'foo' of class B is null
    00:00 TRACE: [kryo] Field container: class FooContainer
    00:00 TRACE: [kryo] Register class name: GenericFoo (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: GenericFoo
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Write field: container (GenericFoo) pos=1
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Field 'foos' of type interface java.util.List of generic type java.util.List<GenericFoo<?>>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.List<GenericFoo<?>>
    00:00 TRACE: [kryo] Processing actual type GenericFoo<?> (sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl)
    00:00 TRACE: [kryo] Class java.util.List has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=E type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for E is: GenericFoo
    00:00 TRACE: [kryo] Generics scope of field 'foos' of class java.util.List<GenericFoo<?>> is {E=class GenericFoo}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'foos' to be java.util.List<GenericFoo<?>> where type parameters are [class GenericFoo]
    00:00 TRACE: [kryo] Field generics: [class GenericFoo]
    00:00 TRACE: [kryo] Register class name: FooContainer (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] Write class name: FooContainer
    00:00 TRACE: [kryo] Write initial object reference 1: FooContainer
    00:00 DEBUG: [kryo] Write: FooContainer
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: FooContainer
    00:00 TRACE: [kryo] Write field: foos (FooContainer) pos=16
    00:00 TRACE: [kryo] Register class name: java.util.ArrayList (com.esotericsoftware.kryo.serializers.CollectionSerializer)
    00:00 TRACE: [kryo] Write class name: java.util.ArrayList
    00:00 TRACE: [kryo] Write initial object reference 2: [GenericFoo@3c679bde, GenericFoo@5d3411d]
    00:00 DEBUG: [kryo] Write: [GenericFoo@3c679bde, GenericFoo@5d3411d]
    00:00 TRACE: [kryo] Write class name: GenericFoo
    00:00 DEBUG: [kryo] Write object reference 0: GenericFoo
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Field container: class FooContainer
    00:00 TRACE: [kryo] Field 'foo' of type interface Foo of generic type B
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
    00:00 TRACE: [kryo] Generics scope of field 'foo' of class B is null
    00:00 TRACE: [kryo] Field 'map' of type interface java.util.Map of generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Processing actual type class java.lang.String (java.lang.Class)
    00:00 TRACE: [kryo] Processing actual type class java.lang.Object (java.lang.Class)
    00:00 TRACE: [kryo] Class java.util.Map has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=K type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for K is: java.lang.String
    00:00 TRACE: [kryo] Type parameter variable: name=V type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for V is: java.lang.Object
    00:00 TRACE: [kryo] Generics scope of field 'map' of class java.util.Map<java.lang.String, java.lang.Object> is {V=class java.lang.Object, K=class java.lang.String}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'map' to be java.util.Map<java.lang.String, java.lang.Object> where type parameters are [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field generics: [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Write class name reference 2: GenericFoo
    00:00 TRACE: [kryo] Write initial object reference 3: GenericFoo
    00:00 DEBUG: [kryo] Write: GenericFoo
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: GenericFoo
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Write field: container (GenericFoo) pos=55
    00:00 TRACE: [kryo] Write class name reference 0: FooContainer
    00:00 DEBUG: [kryo] Write object reference 1: FooContainer
    00:00 TRACE: [kryo] Write field: foo (GenericFoo) pos=58
    00:00 TRACE: [kryo] Optimize ints: true
    00:00 TRACE: [kryo] Register class name: FooRef (com.esotericsoftware.kryo.serializers.FieldSerializer)
    00:00 TRACE: [kryo] Write class name: FooRef
    00:00 TRACE: [kryo] Write initial object reference 4: FooRef
    00:00 DEBUG: [kryo] Write: FooRef
    00:00 TRACE: [kryo] FieldSerializer.write fields of class: FooRef
    00:00 TRACE: [kryo] Write field: map (GenericFoo) pos=67
    00:00 TRACE: [kryo] Register class name: java.util.Collections$SingletonMap (com.esotericsoftware.kryo.serializers.DefaultSerializers$CollectionsSingletonMapSerializer)
    00:00 TRACE: [kryo] Write class name: java.util.Collections$SingletonMap
    00:00 TRACE: [kryo] Write initial object reference 5: {myself=GenericFoo@5d3411d}
    00:00 DEBUG: [kryo] Write: {myself=GenericFoo@5d3411d}
    00:00 TRACE: [kryo] Write class 1: String
    00:00 TRACE: [kryo] Write initial object reference 6: myself
    00:00 TRACE: [kryo] Write: myself
    00:00 TRACE: [kryo] Write class name reference 2: GenericFoo
    00:00 DEBUG: [kryo] Write object reference 3: GenericFoo
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Field container: class FooContainer
    00:00 TRACE: [kryo] Field 'foo' of type interface Foo of generic type B
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
    00:00 TRACE: [kryo] Generics scope of field 'foo' of class B is null
    00:00 TRACE: [kryo] Field 'map' of type interface java.util.Map of generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Processing actual type class java.lang.String (java.lang.Class)
    00:00 TRACE: [kryo] Processing actual type class java.lang.Object (java.lang.Class)
    00:00 TRACE: [kryo] Class java.util.Map has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=K type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for K is: java.lang.String
    00:00 TRACE: [kryo] Type parameter variable: name=V type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for V is: java.lang.Object
    00:00 TRACE: [kryo] Generics scope of field 'map' of class java.util.Map<java.lang.String, java.lang.Object> is {V=class java.lang.Object, K=class java.lang.String}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'map' to be java.util.Map<java.lang.String, java.lang.Object> where type parameters are [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field generics: [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Write field: foo (GenericFoo) pos=115
    00:00 TRACE: [kryo] Write class name reference 3: FooRef
    00:00 DEBUG: [kryo] Write object reference 4: FooRef
    00:00 TRACE: [kryo] Write field: map (GenericFoo) pos=118
    00:00 TRACE: [kryo] Write class name reference 4: java.util.Collections$SingletonMap
    00:00 TRACE: [kryo] Write initial object reference 7: {myself=GenericFoo@3c679bde}
    00:00 DEBUG: [kryo] Write: {myself=GenericFoo@3c679bde}
    00:00 TRACE: [kryo] Write class 1: String
    00:00 DEBUG: [kryo] Write object reference 6: myself
    00:00 TRACE: [kryo] Write class name reference 2: GenericFoo
    00:00 DEBUG: [kryo] Write object reference 0: GenericFoo
    00:00 TRACE: [kryo] Class GenericFoo has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=B type bounds=[interface Foo]
    00:00 TRACE: [kryo] Trying to use kryo.getGenericScope
    00:00 TRACE: [kryo] Settting a new generics scope for class GenericFoo: {}
    00:00 TRACE: [kryo] Field container: class FooContainer
    00:00 TRACE: [kryo] Field 'foo' of type interface Foo of generic type B
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
    00:00 TRACE: [kryo] Generics scope of field 'foo' of class B is null
    00:00 TRACE: [kryo] Field 'map' of type interface java.util.Map of generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Field generic type is of class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
    00:00 TRACE: [kryo] Processing generic type java.util.Map<java.lang.String, java.lang.Object>
    00:00 TRACE: [kryo] Processing actual type class java.lang.String (java.lang.Class)
    00:00 TRACE: [kryo] Processing actual type class java.lang.Object (java.lang.Class)
    00:00 TRACE: [kryo] Class java.util.Map has generic type parameters
    00:00 TRACE: [kryo] Type parameter variable: name=K type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for K is: java.lang.String
    00:00 TRACE: [kryo] Type parameter variable: name=V type bounds=[class java.lang.Object]
    00:00 TRACE: [kryo] Concrete type used for V is: java.lang.Object
    00:00 TRACE: [kryo] Generics scope of field 'map' of class java.util.Map<java.lang.String, java.lang.Object> is {V=class java.lang.Object, K=class java.lang.String}
    00:00 TRACE: [kryo] Determined concrete class of parametrized 'map' to be java.util.Map<java.lang.String, java.lang.Object> where type parameters are [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Field generics: [class java.lang.String, class java.lang.Object]
    00:00 TRACE: [kryo] Object graph complete.

    Process finished with exit code 0
  3. hierynomus revised this gist Aug 24, 2015. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions StackOverflowTest_2_24_0.java
    Original file line number Diff line number Diff line change
    @@ -4,9 +4,9 @@

    import java.io.ByteArrayOutputStream;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.ArrayList;

    public class StackOverflowTest_2_24_0 {

    @@ -15,9 +15,9 @@ public void goBananas() {
    FooRef fooRef = new FooRef();
    GenericFoo<FooRef> genFoo1 = new GenericFoo<>(fooRef);
    GenericFoo<FooRef> genFoo2 = new GenericFoo<>(fooRef);
    HashSet<GenericFoo<?>> foos = new HashSet<>();
    foos.add(genFoo1);
    List<GenericFoo<?>> foos = new ArrayList<>();
    foos.add(genFoo2);
    foos.add(genFoo1);
    new FooContainer(foos);
    Kryo kryo = new Kryo();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    @@ -27,9 +27,9 @@ public void goBananas() {
    }

    class FooContainer {
    Set<GenericFoo<?>> foos = new HashSet<>();
    List<GenericFoo<?>> foos;

    public FooContainer(Set<GenericFoo<?>> foos) {
    public FooContainer(List<GenericFoo<?>> foos) {
    this.foos = foos;
    for (GenericFoo<?> foo : foos) {
    foo.container = this;
  4. hierynomus revised this gist Aug 23, 2015. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion build.gradle
    Original file line number Diff line number Diff line change
    @@ -6,5 +6,6 @@ repositories {

    dependencies {
    testCompile "junit:junit:4.12"
    testCompile "com.esotericsoftware.kryo:kryo:2.24.0"
    //testCompile "com.esotericsoftware.kryo:kryo:2.24.0"
    testCompile "com.esotericsoftware:kryo:3.0.3"
    }
  5. hierynomus revised this gist Aug 21, 2015. 1 changed file with 1050 additions and 0 deletions.
    1,050 changes: 1,050 additions & 0 deletions result.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1050 @@
    Testing started at 21:58 ...
    21:58:14: Executing external tasks 'cleanTest test --tests "StackOverflowTest_2_24_0.goBananas"'...
    :cleanTest
    :compileJava UP-TO-DATE
    :processResources UP-TO-DATE
    :classes UP-TO-DATE
    :compileTestJava
    :processTestResources UP-TO-DATE
    :testClasses
    :test
    StackOverflowTest_2_24_0 > goBananas FAILED

    java.lang.StackOverflowError
    at java.util.HashMap.hash(HashMap.java:338)
    at java.util.HashMap.get(HashMap.java:556)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:43)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)
    at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:44)

    java.lang.StackOverflowError
    1 test completed, 1 failed
    :test FAILED
    FAILURE: Build failed with an exception.
    * What went wrong:
    Execution failed for task ':test'.
    > There were failing tests. See the report at: file:///Users/ajvanerp/src/hierynomus/kryoverflow/build/reports/tests/index.html
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    BUILD FAILED
    Total time: 5.514 secs
    There were failing tests. See the report at: file:///Users/ajvanerp/src/hierynomus/kryoverflow/build/reports/tests/index.html
  6. hierynomus created this gist Aug 21, 2015.
    50 changes: 50 additions & 0 deletions StackOverflowTest_2_24_0.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    import com.esotericsoftware.kryo.Kryo;
    import com.esotericsoftware.kryo.io.FastOutput;
    import org.junit.Test;

    import java.io.ByteArrayOutputStream;
    import java.util.Collections;
    import java.util.HashSet;
    import java.util.Map;
    import java.util.Set;

    public class StackOverflowTest_2_24_0 {

    @Test
    public void goBananas() {
    FooRef fooRef = new FooRef();
    GenericFoo<FooRef> genFoo1 = new GenericFoo<>(fooRef);
    GenericFoo<FooRef> genFoo2 = new GenericFoo<>(fooRef);
    HashSet<GenericFoo<?>> foos = new HashSet<>();
    foos.add(genFoo1);
    foos.add(genFoo2);
    new FooContainer(foos);
    Kryo kryo = new Kryo();
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    kryo.writeObject(new FastOutput(outputStream), genFoo1);
    }
    }

    class FooContainer {
    Set<GenericFoo<?>> foos = new HashSet<>();

    public FooContainer(Set<GenericFoo<?>> foos) {
    this.foos = foos;
    for (GenericFoo<?> foo : foos) {
    foo.container = this;
    }
    }
    }

    interface Foo {}
    class FooRef implements Foo {}
    class GenericFoo<B extends Foo> implements Foo {
    private Map<String, Object> map = Collections.singletonMap("myself", (Object) this);
    B foo;
    FooContainer container;

    public GenericFoo(B foo) {
    this.foo = foo;
    }
    }
    10 changes: 10 additions & 0 deletions build.gradle
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    apply plugin: "java"

    repositories {
    mavenCentral()
    }

    dependencies {
    testCompile "junit:junit:4.12"
    testCompile "com.esotericsoftware.kryo:kryo:2.24.0"
    }