Hi,
I realized today that the unit tests of the Kryo serializers (and the
fast serializer) in the Wickestuff project were failing since (at least)
yesterday (16th october). The last successful build according to
https://travis-ci.org/wicketstuff/core/builds was on the 13th.
For example
https://github.com/wicketstuff/core/blob/master/jdk-1.7-parent/serializer-kryo/src/test/java/org/wicketstuff/pageserializer/kryo/KryoSerializerTest.java
fails with
Running org.wicketstuff.pageserializer.kryo.KryoSerializerTest
DEBUG - KryoSerializer - Buffer size: '500 bytes'
DEBUG - KryoSerializer - Going to serialize: '[Page class =
org.wicketstuff.pageserializer.kryo.HomePage, id = 0, render count = 1]'
ERROR - DebuggingKryo - Wrote '146' bytes for object:
'class org.apache.wicket.markup.html.basic.Label'
ERROR - DebuggingKryo - Wrote '269' bytes for object:
'class org.apache.wicket.ajax.markup.html.AjaxLink$1'
ERROR - DebuggingKryo - Wrote '320' bytes for object:
'class org.apache.wicket.ajax.markup.html.AjaxLink$1'
ERROR - DebuggingKryo - Wrote '320' bytes for object:
'class org.apache.wicket.Behaviors$BehaviorIdList'
ERROR - DebuggingKryo - Wrote '340' bytes for object:
'class org.wicketstuff.pageserializer.kryo.HomePage$1'
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.724
sec <<< FAILURE! - in org.wicketstuff.pageserializer.kryo.KryoSerializerTest
homepageRendersSuccessfully(org.wicketstuff.pageserializer.kryo.KryoSerializerTest)
Time elapsed: 0.678 sec <<< ERROR!
com.esotericsoftware.kryo.SerializationException: Buffer limit exceeded
writing object of type: org.wicketstuff.pageserializer.kryo.HomePage
at java.nio.Buffer.nextPutIndex(Buffer.java:521)
at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:169)
at
com.esotericsoftware.kryo.serialize.StringSerializer.put(StringSerializer.java:35)
at
com.esotericsoftware.kryo.serialize.StringSerializer.writeObjectData(StringSerializer.java:24)
at com.esotericsoftware.kryo.Serializer.writeObject(Serializer.java:43)
at
com.esotericsoftware.kryo.serialize.FieldSerializer.writeObjectData(FieldSerializer.java:182)
at
com.esotericsoftware.kryo.serialize.ReferenceFieldSerializer.writeObjectData(ReferenceFieldSerializer.java:52)
at
com.esotericsoftware.kryo.serialize.FieldSerializer.writeObjectData(FieldSerializer.java:175)
at
com.esotericsoftware.kryo.serialize.ReferenceFieldSerializer.writeObjectData(ReferenceFieldSerializer.java:52)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:489)
at
org.wicketstuff.pageserializer.kryo.DebuggingKryo.writeClassAndObject(DebuggingKryo.java:57)
at
com.esotericsoftware.kryo.serialize.ArraySerializer.writeArray(ArraySerializer.java:123)
at
com.esotericsoftware.kryo.serialize.ArraySerializer.writeObjectData(ArraySerializer.java:88)
at
com.esotericsoftware.kryo.serialize.FieldSerializer.writeObjectData(FieldSerializer.java:175)
at
com.esotericsoftware.kryo.serialize.FieldSerializer.writeObjectData(FieldSerializer.java:175)
at
com.esotericsoftware.kryo.serialize.ReferenceFieldSerializer.writeObjectData(ReferenceFieldSerializer.java:52)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:489)
at
org.wicketstuff.pageserializer.kryo.DebuggingKryo.writeClassAndObject(DebuggingKryo.java:57)
at
org.wicketstuff.pageserializer.kryo.KryoSerializer.serialize(KryoSerializer.java:87)
at
org.wicketstuff.pageserializer.kryo.KryoSerializerTest.homepageRendersSuccessfully(KryoSerializerTest.java:43)
I suspect that some changes in Wicket core might be responsible for the
failure. The Kryo projects were not modified in the last days and if I
use Wicket version 7.0.0-M3 everything works as expected. Since I
neither know Kyro nor the internals of Wicket I'm not sure where this
has to be fixed. I just wanted to point this out in case there might be
a subtle issue introduced lately into Wicket.
Joachim