lift-couchdb: Field types using JSONEncodedStringMixin compile but give AbstractMethodError due to type erasure fumble
JSONBinaryField, JSONDateTimeField, and JSONDecimalField are affected. This occurs because the Scala compiler does not properly notice that encode and decode on those classes is implementing the abstract encode and decode on the JSONEncodedStringMixin and so must be erased from Array[Byte], Calendar, BigDecimal to Object. So, the JSONEncodedStringMixin methods are compiled targetting encode(Ljava/lang/Object;)Ljava/langString; when the methods are compiled as encode(Ljava/util/Calendar;)Ljava/util/String;
Leave a comment