fabienrenaud / java-json-benchmark

Performance testing of serialization and deserialization of Java JSON libraries
MIT License
973 stars 134 forks source link

DSL-JSON v1.7.0 #18

Closed zapov closed 6 years ago

zapov commented 6 years ago

Version with reflection only (runtime databinding instead of compile time databinding) Clients data type - similar as Users, but with more non-string types

A lot of libraries either fail or need custom converters to support UUID, enums and Java time types ;(

Cleanup DSL-JSON implementation: no need for custom readers/writers. Write directly to stream

zapov commented 6 years ago

Updated.


Benchmark                           Mode  Cnt       Score      Error  Units
Serialization.dsljson              thrpt   20  102306,380 ? 4716,863  ops/s
Serialization.dsljson_reflection   thrpt   20   68765,047 ?  638,282  ops/s
Serialization.fastjson             thrpt   20   24471,740 ?  331,200  ops/s
Serialization.flexjson             thrpt   20     220,962 ?   49,237  ops/s
Serialization.genson               thrpt   20   19266,476 ?  321,973  ops/s
Serialization.gson                 thrpt   20   12089,020 ?  562,785  ops/s
Serialization.jackson              thrpt   20   19253,075 ?  141,581  ops/s
Serialization.jackson_afterburner  thrpt   20   19915,464 ?  200,967  ops/s
Serialization.jodd                 thrpt   20   11618,676 ?  191,402  ops/s
Serialization.logansquare          thrpt   20   27599,297 ?  352,380  ops/s
Serialization.moshi                thrpt   20   15209,841 ?  113,227  ops/s

Benchmark                             Mode  Cnt      Score      Error  Units
Deserialization.dsljson              thrpt   20  56250,445 ? 4211,234  ops/s
Deserialization.dsljson_reflection   thrpt   20  42076,540 ?  470,364  ops/s
Deserialization.fastjson             thrpt   20   8076,086 ?  106,259  ops/s
Deserialization.flexjson             thrpt   20   3642,650 ?  138,083  ops/s
Deserialization.genson               thrpt   20   7864,397 ?  219,403  ops/s
Deserialization.gson                 thrpt   20   6635,857 ?   39,815  ops/s
Deserialization.jackson              thrpt   20   7664,946 ?  112,030  ops/s
Deserialization.jackson_afterburner  thrpt   20   7816,264 ?   77,006  ops/s
Deserialization.jodd                 thrpt   20   7263,240 ?  215,127  ops/s
Deserialization.logansquare          thrpt   20   7550,648 ?  192,083  ops/s
Deserialization.moshi                thrpt   20   6408,533 ?   64,476  ops/s
zapov commented 6 years ago

Also, one more remark. For DSL-JSON streaming should be same as databinding. The only way it would be faster is if you reuse instances during streaming... so less garbage is created (but you don't do that in the streaming so it was kind of pointless to write an implementation)

fabienrenaud commented 6 years ago

I checked out your branch and ran ./gradlew clean build but get tons of test failures:

Note: Recompile with -Xlint:unchecked for details.
:processTestResources UP-TO-DATE
:testClasses
:test

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > jsoniter FAILED
    com.jsoniter.spi.JsonException: failed to generate decoder for: class java.util.UUID with [], exception: javassist.CannotCompileException: [source error] no such constructor: java.util.UUID
    public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.lang.Object existingObj = com.jsoniter.CodegenAccess.resetExistingObject(iter);
    if (iter.readNull()) { return null; }
    java.util.UUID obj = (existingObj == null ? new java.util.UUID() : (java.util.UUID)existingObj);
    if (!com.jsoniter.CodegenAccess.readObjectStart(iter)) {
    return obj;
    }
    com.jsoniter.Slice field = com.jsoniter.CodegenAccess.readObjectFieldAsSlice(iter);
    boolean once = true;
    while (once) {
    once = false;
    iter.skip();
    }
    while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
    field = com.jsoniter.CodegenAccess.readObjectFieldAsSlice(iter);
    iter.skip();
    }
    return obj;
    }

        Caused by:
        javassist.CannotCompileException: [source error] no such constructor: java.util.UUID

            Caused by:
            compile error: no such constructor: java.util.UUID

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > johnzon FAILED
    org.apache.johnzon.mapper.MapperException: Using fallback converter, this only works in write mode but not in read. Please register a custom converter to do so.

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > jsonsmart FAILED
    java.lang.AssertionError: Library 'jsonsmart' for api 'databind returned null

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > yasson FAILED
    javax.json.bind.JsonbException: Error deserialize JSON value into type: class java.util.UUID.

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > boon FAILED
    org.boon.Exceptions$SoftenedException: fieldName clients of class class com.github.fabienrenaud.jjb.model.Clients had issues for value LIST for field FieldInfo [name=clients, type=interface java.util.List, parentType=class com.github.fabienrenaud.jjb.model.Clients]

     CAUSE org.boon.Exceptions$SoftenedException :: fieldName registered of class class com.github.fabienrenaud.jjb.model.Clients$Client had issues for value 1925-01-02 for field FieldInfo [name=registered, type=class java.time.LocalDate, parentType=class com.github.fabienrenaud.jjb.model.Clients$Client]

     CAUSE org.boon.Exceptions$SoftenedException :: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

        Caused by:
        org.boon.Exceptions$SoftenedException: fieldName registered of class class com.github.fabienrenaud.jjb.model.Clients$Client had issues for value 1925-01-02 for field FieldInfo [name=registered, type=class java.time.LocalDate, parentType=class com.github.fabienrenaud.jjb.model.Clients$Client]

         CAUSE org.boon.Exceptions$SoftenedException :: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

            Caused by:
            org.boon.Exceptions$SoftenedException: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > moshi STANDARD_OUT
    Difference in Clients!
       Original   : Clients{clients=[JsonDataObj{_id=2467479586387401790, index=111237895, guid=55f69c22-a5b6-b114-0a9f-f8c6715803cc, isActive=false, balance=0.17817409296458753, picture=SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H, age=83, eyeColor=BLUE, name=AwGSIs5xntAcRLIK4uLC, gender=A6ntvYG52DQWE9LA8KsF, company=r6agVkiB5S8dlknFXxVH, emails=[hKtnaNnQwroApJrvJLNj, CUKKGaxVyIOocAVrPGfl], phones=[1951215086,1718857680,42090623,316854006,1224893101], address=yiJan6BwhFx54ccUEBrs, about=Kcep086bft8OYty3qUJW, registered=1925-01-02, latitude=56.633235824046814, longitude=141.26035778047748, tags=[BcEMr4BFIt, NVO9j3Nwew, bwPUJbs8qz, XTcXS6zXVa, 1Rgij0hmZZ, ksHRpDDSAD, uSLFRVbG3y, pk2r56hYOv, XO6SJlP8IE, Z1yknEvhmu, xERcgMXLb8, ft9aeSB5To, MNh7iykzMB, wtcsamDLIS, IHylLTO7a5, TLBLPLjaq8, yhZkXQnsPQ, l3UMrmycKt, 8euYGfMzis, RrbWO5prFV, IJdX0ee5Su, oL53cQoLUG, porUWmfzdj, Ol0EInLouU, wKHEdO9Q06, tNmtqlgq55], partners=[Partner{id=-2831276850007477278, name=AdlfRrolPpeVhrXqhDqBDfseXWRUWN, since=1938-04-27T07:35:09.432337491Z}, Partner{id=6870322089595241841, name=zqTEaGBZpihvzzPWLwpiDWvcdMzzgc, since=1949-12-14T13:06:19.357154013Z}, Partner{id=2213109548723001834, name=esumknVEOHDYmNgNofhDLFqLSYAtXU, since=2002-09-25T22:25:56.783081543Z}, Partner{id=-6830809849005581885, name=TDGTVKSxpmUIhSNRuXlFMKQhnuKqMX, since=1911-07-16T11:25:15.635289402Z}, Partner{id=-4417025369801921057, name=rIQhpHTaCOAgCtGbQcFPyMdSfiyFhn, since=1902-08-10T14:29:48.067875627Z}, Partner{id=-3720028023887434318, name=tLAPAxGCtioDibxmMjRwzsUSKqxPQH, since=1969-04-17T14:42:39.662203732Z}, Partner{id=67157380407381230, name=YnlegmWaxNPCVATamOcWuEWCbuioAV, since=1980-10-06T07:38:28.713807191Z}, Partner{id=4133323617887262349, name=afGihkFpjiZouYXcYzRJCLqkYjZmsx, since=1997-07-06T10:11:12.559253138Z}]}, JsonDataObj{_id=7849465537177327687, index=479402623, guid=09b89776-a3f1-df1e-02a4-335481fd2e55, isActive=false, balance=0.5017457521751565, picture=Ojd8qHYFUxfm3tQpz0eXXcAiXHzI9sEkQlDrCSJ96nfoExBYbtcvuvbFELcJyQ4Jg1Trcx80RO2Cj8XHlLNc71crE4DF1igZEX8r, age=89, eyeColor=BROWN, name=fGFLzMtTDeQZ5n5a6AMp, gender=wHxOxCsubd530LWKVBrj, company=goUp66UphafZ0yMU8z5T, emails=[ljCtSPLOWmIaGiwKgiwv, UvlACzekJoUoYPXNENNb, pdGZCEJUqXLDXMKAxulS, lHDuKlCvpskPrechkqyp, rYlMRwfNuVqhffzrpsXN, HiCgYLNQlgcmzByLIvAM], phones=[], address=pAMCPBK2e4xPZJaCdyor, about=fJi4OLVTDXuAsPQpl0IZ, registered=1937-09-22, latitude=79.26248210156656, longitude=23.769208027898788, tags=[], partners=[]}]}
       Transformed: Clients{clients=[JsonDataObj{_id=2467479586387401790, index=111237895, guid=55f69c22-a5b6-b114-0a9f-f8c6715803cc, isActive=false, balance=0.17817409296458752709924056034651584923267364501953125, picture=SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H, age=83, eyeColor=BLUE, name=AwGSIs5xntAcRLIK4uLC, gender=A6ntvYG52DQWE9LA8KsF, company=r6agVkiB5S8dlknFXxVH, emails=[hKtnaNnQwroApJrvJLNj, CUKKGaxVyIOocAVrPGfl], phones=[1951215086,1718857680,42090623,316854006,1224893101], address=yiJan6BwhFx54ccUEBrs, about=Kcep086bft8OYty3qUJW, registered=1925-01-02, latitude=56.633235824046814, longitude=141.26035778047748, tags=[BcEMr4BFIt, NVO9j3Nwew, bwPUJbs8qz, XTcXS6zXVa, 1Rgij0hmZZ, ksHRpDDSAD, uSLFRVbG3y, pk2r56hYOv, XO6SJlP8IE, Z1yknEvhmu, xERcgMXLb8, ft9aeSB5To, MNh7iykzMB, wtcsamDLIS, IHylLTO7a5, TLBLPLjaq8, yhZkXQnsPQ, l3UMrmycKt, 8euYGfMzis, RrbWO5prFV, IJdX0ee5Su, oL53cQoLUG, porUWmfzdj, Ol0EInLouU, wKHEdO9Q06, tNmtqlgq55], partners=[Partner{id=-2831276850007477278, name=AdlfRrolPpeVhrXqhDqBDfseXWRUWN, since=1938-04-27T07:35:09.432337491Z}, Partner{id=6870322089595241841, name=zqTEaGBZpihvzzPWLwpiDWvcdMzzgc, since=1949-12-14T13:06:19.357154013Z}, Partner{id=2213109548723001834, name=esumknVEOHDYmNgNofhDLFqLSYAtXU, since=2002-09-25T22:25:56.783081543Z}, Partner{id=-6830809849005581885, name=TDGTVKSxpmUIhSNRuXlFMKQhnuKqMX, since=1911-07-16T11:25:15.635289402Z}, Partner{id=-4417025369801921057, name=rIQhpHTaCOAgCtGbQcFPyMdSfiyFhn, since=1902-08-10T14:29:48.067875627Z}, Partner{id=-3720028023887434318, name=tLAPAxGCtioDibxmMjRwzsUSKqxPQH, since=1969-04-17T14:42:39.662203732Z}, Partner{id=67157380407381230, name=YnlegmWaxNPCVATamOcWuEWCbuioAV, since=1980-10-06T07:38:28.713807191Z}, Partner{id=4133323617887262349, name=afGihkFpjiZouYXcYzRJCLqkYjZmsx, since=1997-07-06T10:11:12.559253138Z}]}, JsonDataObj{_id=7849465537177327687, index=479402623, guid=09b89776-a3f1-df1e-02a4-335481fd2e55, isActive=false, balance=0.50174575217515648972721464815549552440643310546875, picture=Ojd8qHYFUxfm3tQpz0eXXcAiXHzI9sEkQlDrCSJ96nfoExBYbtcvuvbFELcJyQ4Jg1Trcx80RO2Cj8XHlLNc71crE4DF1igZEX8r, age=89, eyeColor=BROWN, name=fGFLzMtTDeQZ5n5a6AMp, gender=wHxOxCsubd530LWKVBrj, company=goUp66UphafZ0yMU8z5T, emails=[ljCtSPLOWmIaGiwKgiwv, UvlACzekJoUoYPXNENNb, pdGZCEJUqXLDXMKAxulS, lHDuKlCvpskPrechkqyp, rYlMRwfNuVqhffzrpsXN, HiCgYLNQlgcmzByLIvAM], phones=[], address=pAMCPBK2e4xPZJaCdyor, about=fJi4OLVTDXuAsPQpl0IZ, registered=1937-09-22, latitude=79.26248210156656, longitude=23.769208027898788, tags=[], partners=[]}]}

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > moshi FAILED
    java.lang.AssertionError

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > logansquare STANDARD_OUT
    Difference in Clients!
       Original   : Clients{clients=[JsonDataObj{_id=2467479586387401790, index=111237895, guid=55f69c22-a5b6-b114-0a9f-f8c6715803cc, isActive=false, balance=0.17817409296458753, picture=SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H, age=83, eyeColor=BLUE, name=AwGSIs5xntAcRLIK4uLC, gender=A6ntvYG52DQWE9LA8KsF, company=r6agVkiB5S8dlknFXxVH, emails=[hKtnaNnQwroApJrvJLNj, CUKKGaxVyIOocAVrPGfl], phones=[1951215086,1718857680,42090623,316854006,1224893101], address=yiJan6BwhFx54ccUEBrs, about=Kcep086bft8OYty3qUJW, registered=1925-01-02, latitude=56.633235824046814, longitude=141.26035778047748, tags=[BcEMr4BFIt, NVO9j3Nwew, bwPUJbs8qz, XTcXS6zXVa, 1Rgij0hmZZ, ksHRpDDSAD, uSLFRVbG3y, pk2r56hYOv, XO6SJlP8IE, Z1yknEvhmu, xERcgMXLb8, ft9aeSB5To, MNh7iykzMB, wtcsamDLIS, IHylLTO7a5, TLBLPLjaq8, yhZkXQnsPQ, l3UMrmycKt, 8euYGfMzis, RrbWO5prFV, IJdX0ee5Su, oL53cQoLUG, porUWmfzdj, Ol0EInLouU, wKHEdO9Q06, tNmtqlgq55], partners=[Partner{id=-2831276850007477278, name=AdlfRrolPpeVhrXqhDqBDfseXWRUWN, since=1938-04-27T07:35:09.432337491Z}, Partner{id=6870322089595241841, name=zqTEaGBZpihvzzPWLwpiDWvcdMzzgc, since=1949-12-14T13:06:19.357154013Z}, Partner{id=2213109548723001834, name=esumknVEOHDYmNgNofhDLFqLSYAtXU, since=2002-09-25T22:25:56.783081543Z}, Partner{id=-6830809849005581885, name=TDGTVKSxpmUIhSNRuXlFMKQhnuKqMX, since=1911-07-16T11:25:15.635289402Z}, Partner{id=-4417025369801921057, name=rIQhpHTaCOAgCtGbQcFPyMdSfiyFhn, since=1902-08-10T14:29:48.067875627Z}, Partner{id=-3720028023887434318, name=tLAPAxGCtioDibxmMjRwzsUSKqxPQH, since=1969-04-17T14:42:39.662203732Z}, Partner{id=67157380407381230, name=YnlegmWaxNPCVATamOcWuEWCbuioAV, since=1980-10-06T07:38:28.713807191Z}, Partner{id=4133323617887262349, name=afGihkFpjiZouYXcYzRJCLqkYjZmsx, since=1997-07-06T10:11:12.559253138Z}]}, JsonDataObj{_id=7849465537177327687, index=479402623, guid=09b89776-a3f1-df1e-02a4-335481fd2e55, isActive=false, balance=0.5017457521751565, picture=Ojd8qHYFUxfm3tQpz0eXXcAiXHzI9sEkQlDrCSJ96nfoExBYbtcvuvbFELcJyQ4Jg1Trcx80RO2Cj8XHlLNc71crE4DF1igZEX8r, age=89, eyeColor=BROWN, name=fGFLzMtTDeQZ5n5a6AMp, gender=wHxOxCsubd530LWKVBrj, company=goUp66UphafZ0yMU8z5T, emails=[ljCtSPLOWmIaGiwKgiwv, UvlACzekJoUoYPXNENNb, pdGZCEJUqXLDXMKAxulS, lHDuKlCvpskPrechkqyp, rYlMRwfNuVqhffzrpsXN, HiCgYLNQlgcmzByLIvAM], phones=[], address=pAMCPBK2e4xPZJaCdyor, about=fJi4OLVTDXuAsPQpl0IZ, registered=1937-09-22, latitude=79.26248210156656, longitude=23.769208027898788, tags=[], partners=[]}]}
       Transformed: Clients{clients=[JsonDataObj{_id=2467479586387401790, index=111237895, guid=55f69c22-a5b6-b114-0a9f-f8c6715803cc, isActive=false, balance=0.17817409296458752709924056034651584923267364501953125, picture=SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H, age=83, eyeColor=BLUE, name=AwGSIs5xntAcRLIK4uLC, gender=A6ntvYG52DQWE9LA8KsF, company=r6agVkiB5S8dlknFXxVH, emails=[hKtnaNnQwroApJrvJLNj, CUKKGaxVyIOocAVrPGfl], phones=[1951215086,1718857680,42090623,316854006,1224893101], address=yiJan6BwhFx54ccUEBrs, about=Kcep086bft8OYty3qUJW, registered=1925-01-02, latitude=56.633235824046814, longitude=141.26035778047748, tags=[BcEMr4BFIt, NVO9j3Nwew, bwPUJbs8qz, XTcXS6zXVa, 1Rgij0hmZZ, ksHRpDDSAD, uSLFRVbG3y, pk2r56hYOv, XO6SJlP8IE, Z1yknEvhmu, xERcgMXLb8, ft9aeSB5To, MNh7iykzMB, wtcsamDLIS, IHylLTO7a5, TLBLPLjaq8, yhZkXQnsPQ, l3UMrmycKt, 8euYGfMzis, RrbWO5prFV, IJdX0ee5Su, oL53cQoLUG, porUWmfzdj, Ol0EInLouU, wKHEdO9Q06, tNmtqlgq55], partners=[Partner{id=-2831276850007477278, name=AdlfRrolPpeVhrXqhDqBDfseXWRUWN, since=1938-04-27T07:35:09.432337491Z}, Partner{id=6870322089595241841, name=zqTEaGBZpihvzzPWLwpiDWvcdMzzgc, since=1949-12-14T13:06:19.357154013Z}, Partner{id=2213109548723001834, name=esumknVEOHDYmNgNofhDLFqLSYAtXU, since=2002-09-25T22:25:56.783081543Z}, Partner{id=-6830809849005581885, name=TDGTVKSxpmUIhSNRuXlFMKQhnuKqMX, since=1911-07-16T11:25:15.635289402Z}, Partner{id=-4417025369801921057, name=rIQhpHTaCOAgCtGbQcFPyMdSfiyFhn, since=1902-08-10T14:29:48.067875627Z}, Partner{id=-3720028023887434318, name=tLAPAxGCtioDibxmMjRwzsUSKqxPQH, since=1969-04-17T14:42:39.662203732Z}, Partner{id=67157380407381230, name=YnlegmWaxNPCVATamOcWuEWCbuioAV, since=1980-10-06T07:38:28.713807191Z}, Partner{id=4133323617887262349, name=afGihkFpjiZouYXcYzRJCLqkYjZmsx, since=1997-07-06T10:11:12.559253138Z}]}, JsonDataObj{_id=7849465537177327687, index=479402623, guid=09b89776-a3f1-df1e-02a4-335481fd2e55, isActive=false, balance=0.50174575217515648972721464815549552440643310546875, picture=Ojd8qHYFUxfm3tQpz0eXXcAiXHzI9sEkQlDrCSJ96nfoExBYbtcvuvbFELcJyQ4Jg1Trcx80RO2Cj8XHlLNc71crE4DF1igZEX8r, age=89, eyeColor=BROWN, name=fGFLzMtTDeQZ5n5a6AMp, gender=wHxOxCsubd530LWKVBrj, company=goUp66UphafZ0yMU8z5T, emails=[ljCtSPLOWmIaGiwKgiwv, UvlACzekJoUoYPXNENNb, pdGZCEJUqXLDXMKAxulS, lHDuKlCvpskPrechkqyp, rYlMRwfNuVqhffzrpsXN, HiCgYLNQlgcmzByLIvAM], phones=[], address=pAMCPBK2e4xPZJaCdyor, about=fJi4OLVTDXuAsPQpl0IZ, registered=1937-09-22, latitude=79.26248210156656, longitude=23.769208027898788, tags=[], partners=[]}]}

com.github.fabienrenaud.jjb.databind.ClientsDeserializationTest > logansquare FAILED
    java.lang.AssertionError

com.github.fabienrenaud.jjb.databind.ClientsSerializationTest > jsoniter FAILED
    com.jsoniter.spi.JsonException: getter name conflict: chronology

com.github.fabienrenaud.jjb.databind.ClientsSerializationTest > johnzon FAILED
    java.lang.AssertionError: Unexpected token (START_OBJECT), expected VALUE_STRING: Expected array or string.
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":{"month":1,"year":1925,"day":2},"isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r5"[truncated 3068 chars]; line: 1, column: 234] (through reference chain: com.github.fabienrenaud.jjb.model.Clients["clients"]->java.util.ArrayList[0]->com.github.fabienrenaud.jjb.model.Clients$Client["registered"])

com.github.fabienrenaud.jjb.databind.ClientsSerializationTest > jsonsmart FAILED
    java.lang.IllegalAccessError: tried to access field java.time.LocalDate.month from class net.minidev.asm.java.time.LocalDateAccAccess

com.github.fabienrenaud.jjb.databind.ClientsSerializationTest > yasson FAILED
    java.lang.AssertionError: Cannot deserialize instance of `java.util.UUID` out of START_OBJECT token
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":"0.17817409296458753","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":{"leastSignificantBits":765603992865080268,"mostSignificantBits":6194310010117730580},"index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uL"[truncated 2188 chars]; line: 1, column: 292] (through reference chain: com.github.fabienrenaud.jjb.model.Clients["clients"]->java.util.ArrayList[0]->com.github.fabienrenaud.jjb.model.Clients$Client["guid"])

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > dsljson_reflection FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > jsoniter FAILED
    com.jsoniter.spi.JsonException: failed to generate decoder for: class java.time.LocalDate with [], exception: javassist.CannotCompileException: [source error] no such constructor: java.time.LocalDate
    public static java.lang.Object decode_(com.jsoniter.JsonIterator iter) throws java.io.IOException { java.lang.Object existingObj = com.jsoniter.CodegenAccess.resetExistingObject(iter);
    if (iter.readNull()) { return null; }
    java.time.LocalDate obj = (existingObj == null ? new java.time.LocalDate() : (java.time.LocalDate)existingObj);
    if (!com.jsoniter.CodegenAccess.readObjectStart(iter)) {
    return obj;
    }
    com.jsoniter.Slice field = com.jsoniter.CodegenAccess.readObjectFieldAsSlice(iter);
    boolean once = true;
    while (once) {
    once = false;
    iter.skip();
    }
    while (com.jsoniter.CodegenAccess.nextToken(iter) == ',') {
    field = com.jsoniter.CodegenAccess.readObjectFieldAsSlice(iter);
    iter.skip();
    }
    return obj;
    }

        Caused by:
        javassist.CannotCompileException: [source error] no such constructor: java.time.LocalDate

            Caused by:
            compile error: no such constructor: java.time.LocalDate

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > jackson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > johnzon FAILED
    org.apache.johnzon.mapper.MapperException: Using fallback converter, this only works in write mode but not in read. Please register a custom converter to do so.

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > genson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > jsonsmart FAILED
    java.lang.AssertionError: Library 'jsonsmart' for api 'databind returned null

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > yasson FAILED
    javax.json.bind.JsonbException: Error deserialize JSON value into type: class java.util.UUID.

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > jackson_afterburner FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > boon FAILED
    org.boon.Exceptions$SoftenedException: fieldName clients of class class com.github.fabienrenaud.jjb.model.Clients had issues for value LIST for field FieldInfo [name=clients, type=interface java.util.List, parentType=class com.github.fabienrenaud.jjb.model.Clients]

     CAUSE org.boon.Exceptions$SoftenedException :: fieldName registered of class class com.github.fabienrenaud.jjb.model.Clients$Client had issues for value 1925-01-02 for field FieldInfo [name=registered, type=class java.time.LocalDate, parentType=class com.github.fabienrenaud.jjb.model.Clients$Client]

     CAUSE org.boon.Exceptions$SoftenedException :: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

        Caused by:
        org.boon.Exceptions$SoftenedException: fieldName registered of class class com.github.fabienrenaud.jjb.model.Clients$Client had issues for value 1925-01-02 for field FieldInfo [name=registered, type=class java.time.LocalDate, parentType=class com.github.fabienrenaud.jjb.model.Clients$Client]

         CAUSE org.boon.Exceptions$SoftenedException :: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

            Caused by:
            org.boon.Exceptions$SoftenedException: Unable to convert 1925-01-02 to SYSTEM class java.time.LocalDate

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > gson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > jodd FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > moshi FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > fastjson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > logansquare FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > flexjson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersDeserializationTest > dsljson FAILED
    java.lang.ClassCastException: com.github.fabienrenaud.jjb.model.Clients cannot be cast to com.github.fabienrenaud.jjb.model.Users

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > dsljson_reflection FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > jsoniter FAILED
    com.jsoniter.spi.JsonException: getter name conflict: chronology

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > jackson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > johnzon FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":{"month":1,"year":1925,"day":2},"isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r5"[truncated 3068 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > genson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > jsonsmart FAILED
    java.lang.IllegalAccessError: tried to access field java.time.LocalDate.month from class net.minidev.asm.java.time.LocalDateAccAccess

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > yasson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":"0.17817409296458753","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":{"leastSignificantBits":765603992865080268,"mostSignificantBits":6194310010117730580},"index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uL"[truncated 2188 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > jackson_afterburner FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > gson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > jodd FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > moshi FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > fastjson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > logansquare FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > flexjson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"about":"Kcep086bft8OYty3qUJW","address":"yiJan6BwhFx54ccUEBrs","age":83,"balance":0.17817409296458753,"company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"eyeColor":"BLUE","gender":"A6ntvYG52DQWE9LA8KsF","guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","index":111237895,"isActive":false,"latitude":56.633235824046814,"longitude":141.26035778047748,"name":"AwGSIs5xntAcRLIK4uLC","partners":[{"id":-2831276850007477278,"name":"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.databind.UsersSerializationTest > dsljson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":"1925-01-02","isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r56hYOv","XO6SJlP8IE""[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > jackson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.DeserializationTest > genson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.DeserializationTest > orgjson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":"1925-01-02","isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r56hYOv","XO6SJlP8IE""[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > jsonio FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > javaxjson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":"55f69c22-a5b6-b114-0a9f-f8c6715803cc","isActive":false,"balance":0.17817409296458753,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":"BLUE","name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[1951215086,1718857680,42090623,316854006,1224893"[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > tapestry FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{
      "clients" : [
        {
          "_id" : 2467479586387401790,
          "index" : 111237895,
          "guid" : "55f69c22-a5b6-b114-0a9f-f8c6715803cc",
          "isActive" : false,
          "balance" : 0.17817409296458753,
          "picture" : "SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H",
          "age" : 83,
          "eyeColor" : "BLUE",
          "name" : "AwGSIs5xntAcRLIK4uLC",
          "gender" : "A6ntvYG52DQWE9LA8KsF",
          "company" : "r6agVkiB5S8dlknFXxVH",
         "[truncated 3327 chars]; line: 2, column: 16] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > gson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.DeserializationTest > moshi FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.DeserializationTest > minimaljson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.DeserializationTest > jsonsimple FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":"1925-01-02","isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r56hYOv","XO6SJlP8IE""[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.DeserializationTest > nanojson FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"address":"yiJan6BwhFx54ccUEBrs","gender":"A6ntvYG52DQWE9LA8KsF","latitude":56.633235824046814,"about":"Kcep086bft8OYty3qUJW","index":111237895,"phones":[1951215086,1718857680,42090623,316854006,1224893101],"registered":"1925-01-02","isActive":false,"picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","tags":["BcEMr4BFIt","NVO9j3Nwew","bwPUJbs8qz","XTcXS6zXVa","1Rgij0hmZZ","ksHRpDDSAD","uSLFRVbG3y","pk2r56hYOv","XO6SJlP8IE""[truncated 2093 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.SerializationTest > jackson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > genson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > orgjson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > jsonio FAILED
    java.lang.AssertionError: Unrecognized field "clients" (class com.github.fabienrenaud.jjb.model.Users), not marked as ignorable (one known property: "users"])
     at [Source: (String)"{"clients":[{"_id":2467479586387401790,"index":111237895,"guid":{"mostSigBits":6194310010117730580,"leastSigBits":765603992865080268},"isActive":false,"balance":"0.17817409296458753","picture":"SbhIcvvtj0IoHhyNnXUpa0s6ZmTupwYeEMdicBZJjQxdGVIwHsXy0YONAZ3FmTxbT1AGrazOPIwbCTyXL1DHu5pxC0DupqdTSY8H","age":83,"eyeColor":{"name":"BLUE"},"name":"AwGSIs5xntAcRLIK4uLC","gender":"A6ntvYG52DQWE9LA8KsF","company":"r6agVkiB5S8dlknFXxVH","emails":["hKtnaNnQwroApJrvJLNj","CUKKGaxVyIOocAVrPGfl"],"phones":[195121"[truncated 3042 chars]; line: 1, column: 13] (through reference chain: com.github.fabienrenaud.jjb.model.Users["clients"])

com.github.fabienrenaud.jjb.stream.SerializationTest > javaxjson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > tapestry FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > gson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > moshi FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > minimaljson FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > jsonsimple FAILED
    java.lang.NullPointerException

com.github.fabienrenaud.jjb.stream.SerializationTest > nanojson FAILED
    java.lang.NullPointerException

146 tests completed, 64 failed

No issues when I build against my master though.

zapov commented 6 years ago

I actually never ran that ;( ... I've used

gradlew -q shadowJar

Which builds the jar and can be used for benching.

Most of those issues looks like bugs/missing features in the libraries, although some of them look strange.

I will assume they are caused by

public static final JsonSource JSON_SOURCE = JsonSourceFactory.create();

which provide wrong data to the second bench.

fabienrenaud commented 6 years ago

Any way you can make the unit tests pass with this change? They are there to verify all serialization/deserialization operations produce the same objects/strings since this isn't done by the benchmark itself (don't want to benchmark performance of equals).

zapov commented 6 years ago

I've done that from IntelliJ... which works fine for one set of tests. I can look into changing that... but I was expecting that to work since you said it supports multiple models ;(

But unit tests still wont pass (unless I look into how to exclude them from tests too) since some libraries can't be made to work at all.

So while I can look into fixing the test setup, I don't think that should block you from running the benchmark as is.

zapov commented 6 years ago

Build is now passing without errors. I've fixed a bug in Jackson streaming implementation (which caused an infinite loop on empty users). I had to disable Jsoniter javassist since Jsoniter generates invalid code for UUID and have put it in reflection mode.

This are the latest results for users on my laptop:

Serialization.boon                 thrpt   20  15385,202 ? 1989,433  ops/s
Serialization.dsljson              thrpt   20  71690,576 ? 3027,459  ops/s
Serialization.dsljson_reflection   thrpt   20  57924,062 ? 1007,969  ops/s
Serialization.fastjson             thrpt   20  37817,573 ? 2191,576  ops/s
Serialization.flexjson             thrpt   20    196,910 ?   43,771  ops/s
Serialization.genson               thrpt   20  30257,403 ? 1079,499  ops/s
Serialization.gson                 thrpt   20  14824,460 ?  638,952  ops/s
Serialization.jackson              thrpt   20  49393,134 ? 1401,092  ops/s
Serialization.jackson_afterburner  thrpt   20  49850,113 ? 2945,745  ops/s
Serialization.jodd                 thrpt   20  12608,951 ?  662,465  ops/s
Serialization.johnzon              thrpt   20  19939,115 ?  676,327  ops/s
Serialization.jsoniter             thrpt   20  38469,174 ?  813,156  ops/s
Serialization.jsonsmart            thrpt   20  23737,498 ?  315,698  ops/s
Serialization.logansquare          thrpt   20  55283,850 ? 1458,226  ops/s
Serialization.moshi                thrpt   20  23162,531 ?  656,664  ops/s
Serialization.yasson               thrpt   20  25227,196 ?  525,606  ops/s

Deserialization.boon                 thrpt   20  20877,723 ? 1200,623  ops/s
Deserialization.dsljson              thrpt   20  57137,065 ?  514,089  ops/s
Deserialization.dsljson_reflection   thrpt   20  46315,537 ?  779,207  ops/s
Deserialization.fastjson             thrpt   20  23419,271 ?  361,146  ops/s
Deserialization.flexjson             thrpt   20   5936,794 ?   91,984  ops/s
Deserialization.genson               thrpt   20  24127,202 ?  352,792  ops/s
Deserialization.gson                 thrpt   20  18158,947 ?  649,174  ops/s
Deserialization.jackson              thrpt   20  31016,802 ?  282,405  ops/s
Deserialization.jackson_afterburner  thrpt   20  33333,888 ?  501,062  ops/s
Deserialization.jodd                 thrpt   20  25675,253 ?  234,299  ops/s
Deserialization.johnzon              thrpt   20   9169,098 ?  104,769  ops/s
Deserialization.jsoniter             thrpt   20  36174,084 ?  454,191  ops/s
Deserialization.jsonsmart            thrpt   20  19109,559 ?  753,772  ops/s
Deserialization.logansquare          thrpt   20  30017,487 ? 1538,978  ops/s
Deserialization.moshi                thrpt   20  17634,395 ?   95,633  ops/s
Deserialization.yasson               thrpt   20   5295,379 ?   58,291  ops/s
zapov commented 6 years ago

I realized the tests were not working due to small size. They are working now as expected.

Do you have any ETAs for this/new run?

fabienrenaud commented 6 years ago

https://github.com/fabienrenaud/java-json-benchmark/issues/12

fabienrenaud commented 6 years ago

Some tests are failing at random with some libs btw: https://travis-ci.org/fabienrenaud/java-json-benchmark

Looks like genson doesn't handle BigDecimal well...