Giter VIP home page Giter VIP logo

domino-jackson's Introduction

dominokit

BOM for dominokit dependencies

domino-jackson's People

Contributors

azatsarynnyy avatar dependabot[bot] avatar foal avatar rjeeb avatar tdesjardins avatar tedynaidenov avatar tobias-hammerschmidt avatar treblereel avatar vegegoku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

domino-jackson's Issues

Deserialization gets slow with large data sets

large datasets can get really slow. JSONParser takes about 100ms for a 8MB decode and Jackson takes about 9 seconds

Here is a demo project with demo data:
https://github.com/howudodat/domtest

10/17/2023 07:45:06.812 Retrieving from network
10/17/2023 07:45:06.886 validate json JSONParser len:8518427
10/17/2023 07:45:06.908 validate json Jackson
10/17/2023 07:45:15.993 decoded homes size:4400

public void onResponseReceived(Request request, Response response) {
	if (200 == response.getStatusCode()) {
		GWT.log(new Date().toString() + " validate json JSONParser len:" + response.getText().length());
		JSONValue parsed = JSONParser.parseStrict(response.getText());
		GWT.log(new Date().toString() + " validate json Jackson");
		DBResults res = DBResults_MapperImpl.INSTANCE.read(response.getText());
		if (res.success)
			GWT.log(new Date().toString() + " decoded homes size:"+res.homes.size());
	} else {
	}
}

Support JsonCreator with delegating mode

Support @JsonCreator which takes not a list of properties but a single bean as an argument:

@JsonCreator(mode = JsonCreator.Mode.DELEGATING)

From Java doc:

A mode that indicates that if the creator takes a single argument, the whole incoming data value is to be bound into the declared type of that argument; this "delegate" value is then passed as the argument to the creator.

Generating reader/writer should generate only the supported methods

When generating reader or writer, the generated mapper should only support related methods.

For example, when generating a reader, then only read methods should be accessible and same goes for the writer.

Possible solution:
When generating mapper, it will extend AbstractObjectReader/AbstractObjectWriter and these two abstract classes extend AbstractObjectMapper. By removing this extend, only the supported methods will be available.

ClassCastException on primitive type deserialization

Below simple test case which fails with java.lang.ClassCastException

/*
 * Copyright 2013 Nicolas Morel
 * Copyright 2020 Stanislav Spiridonov
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.dominokit.jacksonapt.client.deser.array;

import org.dominokit.jacksonapt.JsonDeserializer;
import org.dominokit.jacksonapt.client.deser.AbstractJsonDeserializerTest;
import org.dominokit.jacksonapt.deser.array.cast.PrimitiveDoubleArrayJsonDeserializer;

/**
 * @author Stanislav Spiridonov
 */
@SuppressWarnings("nls")
public class DoubleArrayJsonDeserializerTest extends AbstractJsonDeserializerTest<double[]> {

    private static final double DELTA = 0.00000000000001;

    @Override
    protected JsonDeserializer<double[]> createDeserializer() {
        return PrimitiveDoubleArrayJsonDeserializer.getInstance();
    }

    @Override
    public void testDeserializeValue() {
        double[] orig = new double[]{-100, -0.5365623643346, 0, 0.5365623643346, 100};
        double[] deserialize = deserialize("[-100, -0.5365623643346, 0, 0.5365623643346, 100]");
        assertEquals(orig[0], deserialize[0], DELTA);
        assertEquals(orig[1], deserialize[1], DELTA);
        assertEquals(orig[2], deserialize[2], DELTA);
        assertEquals(orig[3], deserialize[3], DELTA);
        assertEquals(orig[4], deserialize[4], DELTA);
    }

    public void testDeserializeValueEmptyArray() {
        double[] deserialize = deserialize("[]");
        assertTrue(deserialize.length == 0);
    }
}

exception is

java.lang.ClassCastException
    at java.lang.Throwable.Throwable(Throwable.java:66)
    at java.lang.Exception.Exception(Exception.java:29)
    at java.lang.RuntimeException.RuntimeException(RuntimeException.java:29)
    at java.lang.ClassCastException.ClassCastException(ClassCastException.java:27)
    at javaemul.internal.InternalPreconditions.checkCriticalType(InternalPreconditions.java:154)
    at com.google.gwt.lang.Cast.castToDouble(InternalPreconditions.java:138)
    at org.dominokit.jacksonapt.deser.array.cast.BaseJsNumberArrayReader.$readNumberArray(BaseJsNumberArrayReader.java:25)
    at org.dominokit.jacksonapt.deser.array.AbstractArrayJsonDeserializer.doDeserialize(JsDoubleArrayReader.java:19)
    at org.dominokit.jacksonapt.JsonDeserializer.$deserialize(JsonDeserializer.java:57)
    at org.dominokit.jacksonapt.client.deser.array.DoubleArrayJsonDeserializerTest.testDeserializeValue(JsonDeserializer.java:40)
    at Unknown.anonymous(GWTTestMetadataImpl.java:8)
    at com.google.gwt.junit.client.impl.GWTTestAccessor.$invoke(GWTTestAccessor.java:35)
    at com.google.gwt.junit.client.impl.GWTRunner.$executeTestMethod(GWTRunner.java:226)
    at com.google.gwt.junit.client.GWTTestCase.$doRunTest(GWTTestCase.java:157)
    at com.google.gwt.junit.client.GWTTestCase.$runBare(TestCase.java:59)
    at com.google.gwt.junit.client.GWTTestCase.$__doRunTest(GWTTestCase.java:115)
    at com.google.gwt.junit.client.impl.GWTRunner.$runTest(GWTRunner.java:302)
    at com.google.gwt.junit.client.impl.GWTRunner.$doRunTest(GWTRunner.java:235)
    at com.google.gwt.junit.client.impl.GWTRunner$TestBlockListener.$onSuccess(GWTRunner.java:106)
    at com.google.gwt.junit.client.impl.GWTRunner$InitialResponseListener.$onSuccess(GWTRunner.java:61)
    at com.google.gwt.junit.client.impl.GWTRunner$InitialResponseListener.onSuccess(GWTRunner.java:59)
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.$onResponseReceived(RequestCallbackAdapter.java:232)
    at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:250)
    at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:412)
    at Unknown.anonymous(XMLHttpRequest.java:329)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java:309)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:368)
    at Unknown.anonymous(Impl.java:78)

Add support for @JsonPropert(access) to fine control (de)serialized properties

  public enum Access {
    /**
     * Access setting which means that visibility rules are to be used to automatically determine
     * read- and/or write-access of this property.
     */
    AUTO,

    /**
     * Access setting that means that the property may only be read for serialization, but not
     * written (set) during deserialization.
     */
    READ_ONLY,

    /**
     * Access setting that means that the property may only be written (set) for deserialization,
     * but will not be read (get) on serialization, that is, the value of the property is not
     * included in serialization.
     */
    WRITE_ONLY,

    /**
     * Access setting that means that the property will be accessed for both serialization (writing
     * out values as external representation) and deserialization (reading values from external
     * representation), regardless of visibility rules.
     */
    READ_WRITE;
  }

Outdated Jackson annotations may lead to conflict with other dependencies

I don't get the idea why you included the annotations of the Jackson library in domino-jackson-super under the same namespace com.fasterxml.jackson.annotation. It makes domino-jackson unusable in a project that has library dependencies with dependency to jackson annotations, as Java cannot distinguish between two classes with the same qualified name. Especially if you want to use springmvc besides domino-rest as it expects a namespace attribute.

07-Feb-2023 09:03:03.767 SEVERE [http-nio-8888-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springmvc] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: 'java.lang.String com.fasterxml.jackson.annotation.JsonProperty.namespace()'] with root cause
	java.lang.NoSuchMethodError: 'java.lang.String com.fasterxml.jackson.annotation.JsonProperty.namespace()'
		at com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector.findNameForSerialization(JacksonAnnotationIntrospector.java:1115)
		at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:566)
		at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:426)
		at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:272)
		at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:258)
		at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:391)
		at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:225)
		at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:174)
		at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1501)
		at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1449)
		at com.fasterxml.jackson.databind.SerializerProvider.findContentValueSerializer(SerializerProvider.java:783)
		at com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.findAndAddSecondarySerializer(PropertySerializerMap.java:90)
		at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase._findAndAddDynamic(AsArraySerializerBase.java:311)
		at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:140)
		at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107)
		at com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)
		at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
		at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400)
		at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1568)
		at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1061)
		at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)
		at org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)
		at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290)
		at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219)
		at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:78)
		at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)
		at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
		at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
		at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
		at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
		at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
		at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
		at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
		at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:352)
		at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
		at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
		at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:164)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
		at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
		at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
		at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:117)
		at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
		at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:361)
		at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:225)
		at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:190)
		at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
		at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:186)
		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:186)
		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
		at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
		at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
		at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
		at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:555)
		at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
		at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787)
		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
		at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
		at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
		at java.base/java.lang.Thread.run(Thread.java:829)

Add support for JsonInclude

Now domino jackson supports the value method in @JsonInclude and the following are the supported values

  • ALWAYS (which is the default)
  • NON_DEFAULT
  • NON_EMPTY
  • NON_NULL
  • NON_ABSENT

The annotation is supported on both the type and the fields. If the field has the annotation, then the value will be taken from the field, if the field doesn't have the annotation, then it will be taken from the class itself.

Auto generate INSTANCE field for generated mappers

For a generated mapper could have an INSTANCE final field.

public final class SomeBean_MapperImpl extends AbstractObjectMapper<SomeBean> {
  public static final SomeBean_MapperImpl INSTANCE = new SomeBean_MapperImpl();
...
}

Add back the dependency on auto-commons

based on conversation on gitter

@niloc132
i'm hitting something weird using latest gwt-jackson-apt
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project serialization-details: Fatal error compiling: java.lang.NoClassDefFoundError: com/google/auto/common/MoreTypes: com.google.auto.common.MoreTypes -> [Help 1]
if i turn on the stack trace, it looks like the class is just ... missing when the processor tries to run
i think the bug is that auto-common was removed as a dependency - auto-service was updated also, but it is scope=provided, so auto-common isnt included in the shaded jar
@vegegoku any chance you've seen this too? or perhaps projects you use this on already have auto-common somehow?

Not all setters and getters forms are supported by the processor

the processor can't handle

@JSONMapper
public class Foo {
  private int xY;
  public int getxY() { return xY; }
  public void setxY(int xY) { this.xY = xY; }
}

fails with the error:

FooBeanJsonDeserializerImpl.java:70: error: xY has private access in Foo
        bean.xY=value;
            ^
FooBeanJsonSerializerImpl.java:38: error: xY has private access in Foo
        return bean.xY;
                   ^

the generated code

 @Override
  protected MapLike<BeanPropertyDeserializer<Foo, ?>> initDeserializers() {
    MapLike<BeanPropertyDeserializer<Foo, ?>> map = JacksonContextProvider.get().mapLikeFactory().make();
    map.put("xY", new BeanPropertyDeserializer<Foo, Integer>() {
      @Override
      protected JsonDeserializer<?> newDeserializer() {
        return BaseNumberJsonDeserializer.IntegerJsonDeserializer.getInstance();
      }

      @Override
      public void setValue(Foo bean, Integer value, JsonDeserializationContext ctx) {
        bean.xY=value;
      }
    });
    return map;
  }

i'm using org.dominokit:domino-jackson:1.0.0 with gwt 2.10.0 and java 11

looking at the code, it seems that org.dominokit.jackson.processor.serialization.SerializerBuilder#getterInfo is looking for getXY instead of getxY

BeanInfo beanInfo = Introspector.getBeanInfo(Foo.class);
for (PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
  System.out.println(propertyDescriptor);
}
java.beans.PropertyDescriptor[name=class; values={expert=false; visualUpdate=false; hidden=false; enumerationValues=[Ljava.lang.Object;@42dafa95; required=false}; propertyType=class java.lang.Class; readMethod=public final native java.lang.Class java.lang.Object.getClass()]
java.beans.PropertyDescriptor[name=xY; values={expert=false; visualUpdate=false; hidden=false; enumerationValues=[Ljava.lang.Object;@6500df86; required=false}; propertyType=int; readMethod=public int pt.ipb.demos.gwt.domino.jackson.client.model.Foo.getxY(); writeMethod=public void pt.ipb.demos.gwt.domino.jackson.client.model.Foo.setxY(int)]

thanks.

Feature Request: Jackson Serializer/Deserializer support

Depends on first supporting Custom Serializers/Deserializers. Allowing to reuse Serializers/Deserializers from Jackson would be nice so you don't have to duplicate code. Recently I converted Jackson to be GWT Compatible (including removing code that cannot be converted to GWT) so Jackson Serializers/Deserializers can be used in GWT (see nmorel/gwt-jackson#137).

Gradle: ObjectMapperProcessor is not incremental, full recompilation is required

Is it possible to make the annotation processor incremental?

https://docs.gradle.org/current/userguide/java_plugin.html#sec:incremental_annotation_processing

Right now gradle complains that org.dominokit.jacksonapt.processor.ObjectMapperProcessor is not incremental and a full recompilation is required.

 Task :compileJava
Build cache key for task ':compileJava' is 8832ef9fce86b8122d4f38033a68122b
Task ':compileJava' is not up-to-date because:
  Input property 'stableSources' file /Users/fsousa/Projects/demo/gwt-jackson-demo/src/main/java/pt/ipb/demos/gwt/jackson/client/Main.java has changed.
Created classpath snapshot for incremental compilation in 0.001 secs.
Class dependency analysis for incremental compilation took 0.001 secs.
Full recompilation is required because org.dominokit.jacksonapt.processor.ObjectMapperProcessor is not incremental. Analysis took 0.002 secs.
 Task :compileJava
Build cache key for task ':compileJava' is 8832ef9fce86b8122d4f38033a68122b
Task ':compileJava' is not up-to-date because:
  Input property 'stableSources' file /Users/fsousa/Projects/demo/gwt-jackson-demo/src/main/java/pt/ipb/demos/gwt/jackson/client/Main.java has changed.
Created classpath snapshot for incremental compilation in 0.001 secs.
Class dependency analysis for incremental compilation took 0.001 secs.
Full recompilation is required because org.dominokit.jacksonapt.processor.ObjectMapperProcessor is not incremental. Analysis took 0.002 secs.

Thanks.

Error: java.lang.ClassCastException: org.treblereel.dto.Import cannot be cast to org.treblereel.Import

i have two classes:

  • org.treblereel.dto.Import
  • org.treblereel.Import

But processor produce only one pair of ser/deserializers under org.treblereel package, so ExtensionElementBeanJsonSerializerImpl use ImportBeanJsonSerializerImpl for org.treblereel.Import, not for org.treblereel.dto.Import and it leads to ClassCastException. I think it could be fix by placing serializers under package, their type belongs to.

reproducer https://github.com/treblereel/j2cl-tests/tree/ClassCastException

Thanks !

Deserializing Enum constants fails in j2cl

In domino-jackson EnumJsonDeserilizer uses Enum.valueOf(Class<E> enumType, String enumName) to evaluate the enum constant.

The valueOf method is emulated in GWT2.x
https://github.com/gwtproject/gwt/blob/master/user/super/com/google/gwt/emul/java/lang/Enum.java#L38

but is not emulated yet in j2cl
https://github.com/google/j2cl/blob/d555a3350bd9e374686138b0c484207a363aefa0/jre/java/java/lang/Enum.java#L56

which makes the deserialization fails at runtime

there is already an issue filed to j2cl project to address this problem
google/j2cl#90

we are going to implement a workaround for this until the issue is fixed in j2cl

Support type nesting

Serializable/Deserializable types can be nested, in the below example Serializer/Deserializer for BeanB will be also generated and used by the BeanA Serializer/Deserializer.

public class BeanA{
        private int intField;
        private BeanB beanB;
    }

    public class BeanB{
        private String stringField;
    }
    
    @JSONMapper
    public interface BeanAMapper extends ObjectMapper<BeanA>{
        BeanAMapper INSTANCE=new BeanAMapperImpl();
    } 

Wrong package for JsonDeserializer/JsonSerializer

Hi,

I have DTO in the shared GWT project and ObjectMapper in the client project. The MapperImple is generated in the correct client package, but JsonDeserializer/JsonSerializer pair is generated in the shared package, which causes the compilation error. The MapperImple assume that they will be in the same client package.

image

domino-jackson doesn't handle cycles

If you have bidirectional references in bean classes the compiler fails with a stackoverflow. This happens if you have a class A with a member B and class B with a member A.
Maybe this could be solved by supporting @JsonIdentityInfo.

Support getInstant() method for custom (de)serializer

Right now custom (de)serializers are created by the new operator:

      @Override
      protected JsonDeserializer<?> newDeserializer() {
        return new InstantJsonDeserializer();
      }

It will be nice if domino-jackson can detect and use the getInstance() method, the same as for basic types e.g.

      @Override
      protected JsonDeserializer<?> newDeserializer() {
        return InstantJsonDeserializer.getInstance();
      }

or use some flag in the TypeRegistry.registerSerializer method to switch between new/getInstance modes.

gwt-cldr not found

Hi,

I'm following the instructions, but in my case i'm using gradle

dependencies {
  compileOnly 'org.dominokit.jackson:jackson-apt:1.0-SNAPSHOT'
  annotationProcessor 'org.dominokit.jackson:jackson-apt-processor:1.0-SNAPSHOT'
  
  compileOnly 'com.google.gwt:gwt-user:2.8.2'
  runtimeOnly 'com.google.gwt:gwt-dev:2.8.2'
}

the problem is that it cannot found the gwt-cldr

Could not find org.gwtproject.i18n:gwt-cldr:1.0-SNAPSHOT.
Searched in the following locations:
  - https://oss.sonatype.org/content/repositories/snapshots/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/maven-metadata.xml
  - https://oss.sonatype.org/content/repositories/snapshots/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/gwt-cldr-1.0-SNAPSHOT.pom
  - https://repo.maven.apache.org/maven2/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/maven-metadata.xml
  - https://repo.maven.apache.org/maven2/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/gwt-cldr-1.0-SNAPSHOT.pom
  - https://jcenter.bintray.com/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/maven-metadata.xml
  - https://jcenter.bintray.com/org/gwtproject/i18n/gwt-cldr/1.0-SNAPSHOT/gwt-cldr-1.0-SNAPSHOT.pom
Required by:
    project : > org.dominokit.jackson:jackson-apt:1.0-SNAPSHOT:20200219.151948-18

In my repositories I have

repositories {
  maven {
    url 'https://oss.sonatype.org/content/repositories/snapshots/'
  }
  mavenLocal()
  mavenCentral()
  jcenter()
}

Add support for @JsonTypeInfo and @JsonSubTypes

@JsonTypeInfo

  • Id use()

    • NONE
    • CLASS
    • MINIMAL_CLASS
    • NAME
    • CUSTOM
  • As include()

    • PROPERTY
    • WRAPPER_OBJECT
    • WRAPPER_ARRAY
    • EXTERNAL_PROPERTY
    • EXISTING_PROPERTY
  • String property()

  • Class<?> defaultImpl()

  • boolean visible()

@JsonSubTypes

  • Type[] value()

StackOverflowError

I'm getting this erro when compiling this project: https://github.com/natros/gwt-jackson-demo

Is this a bug in domino-jackson or a compiler bug (tested with java 8 and 11)

Cause: java.lang.StackOverflowError
	at jdk.compiler/com.sun.tools.javac.model.AnnotationProxyMaker.generateAnnotation(AnnotationProxyMaker.java:89)
	at jdk.compiler/com.sun.tools.javac.model.AnnotationProxyMaker.generateAnnotation(AnnotationProxyMaker.java:81)
	at jdk.compiler/com.sun.tools.javac.code.AnnoConstruct.getAnnotation(AnnoConstruct.java:185)
	at org.dominokit.jacksonapt.processor.Type.isJsonMapper(Type.java:744)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getPackageName(FieldDeserializersChainBuilder.java:155)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getBasicOrCustomDeserializer(FieldDeserializersChainBuilder.java:136)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:130)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getIterableDeserializer(FieldDeserializersChainBuilder.java:202)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:123)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:112)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:87)
	at org.dominokit.jacksonapt.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:60)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:464)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.buildInitDeserializersMethod(AptDeserializerBuilder.java:463)
	at org.dominokit.jacksonapt.processor.deserialization.AptDeserializerBuilder.initMethod(AptDeserializerBuilder.java:106)
	at org.dominokit.jacksonapt.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:84)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:37)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:61)
	at org.dominokit.jacksonapt.processor.DeserializerGenerator.generate(DeserializerGenerator.java:36)
	at org.dominokit.jacksonapt.processor.Type.generateDeserializer(Type.java:358)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.generateCustomDeserializer(FieldDeserializersChainBuilder.java:163)
	at org.dominokit.jacksonapt.processor.deserialization.FieldDeserializersChainBuilder.getCustomDeserializer(FieldDeserializersChainBuilder.java:146)

domino-jackson does not work with j2cl-maven-plugin version 0.20 due to exception with specific for loop syntax

Trying to compile a project that depends on domino-jackson version 1.0.0-RC4 with j2cl maven plugin will fail to compile due to the following error

[INFO] Starting org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode
[WARNING] org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC3/dccefd13685d78c20c3270716641b8d1-stripped_sources/results/org/dominokit/jackson/deser/array/cast/BaseJsNumberArrayReader.java:37 non-varargs call of varargs method with inexact argument type for last parameter;
  cast to elemental2.core.JsNumber for a varargs call
  cast to elemental2.core.JsNumber[] for a non-varargs call and to suppress this warning
[WARNING] org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC3/dccefd13685d78c20c3270716641b8d1-stripped_sources/results/org/dominokit/jackson/deser/array/cast/JsStringArrayReader.java:35 non-varargs call of varargs method with inexact argument type for last parameter;
  cast to elemental2.core.JsString for a varargs call
  cast to elemental2.core.JsString[] for a non-varargs call and to suppress this warning
[INFO] org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC3/dccefd13685d78c20c3270716641b8d1-stripped_sources/results/org/dominokit/jackson/AbstractObjectMapper.java Some input files use unchecked or unsafe operations.
[INFO] org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC3/dccefd13685d78c20c3270716641b8d1-stripped_sources/results/org/dominokit/jackson/AbstractObjectMapper.java Recompile with -Xlint:unchecked for details.
[INFO] Finished org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode in 338ms
[INFO] Starting org.dominokit.i18n:gwt-numberformat:1.0/stripped_bytecode_headers
[INFO] Starting org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode_headers
[INFO] Finished org.dominokit:domino-jackson:1.0.0-RC3/stripped_bytecode_headers in 13ms
[INFO] Starting org.dominokit:domino-rest-shared:1.0.0-RC6/transpiled_js
[WARNING] org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC4/168e0c71b8dda116ff2fe2cd7e71e7f9-stripped_sources/results/org/dominokit/jackson/deser/array/cast/BaseJsNumberArrayReader.java:37 non-varargs call of varargs method with inexact argument type for last parameter;
  cast to elemental2.core.JsNumber for a varargs call
  cast to elemental2.core.JsNumber[] for a non-varargs call and to suppress this warning
[WARNING] org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC4/168e0c71b8dda116ff2fe2cd7e71e7f9-stripped_sources/results/org/dominokit/jackson/deser/array/cast/JsStringArrayReader.java:35 non-varargs call of varargs method with inexact argument type for last parameter;
  cast to elemental2.core.JsString for a varargs call
  cast to elemental2.core.JsString[] for a non-varargs call and to suppress this warning
[INFO] org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC4/168e0c71b8dda116ff2fe2cd7e71e7f9-stripped_sources/results/org/dominokit/jackson/AbstractObjectMapper.java Some input files use unchecked or unsafe operations.
[INFO] org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode: /media/vegegoku/drive2/Development/Vertispan/my-forks/sample-recipe-app/webapp/target/gwt3BuildCache/0.20/org.dominokit-domino-jackson-1.0.0-RC4/168e0c71b8dda116ff2fe2cd7e71e7f9-stripped_sources/results/org/dominokit/jackson/AbstractObjectMapper.java Recompile with -Xlint:unchecked for details.
[INFO] Finished org.dominokit:domino-jackson:1.0.0-RC4/stripped_bytecode in 407ms
[INFO] Starting org.dominokit:domino-jackson-processor:1.0.0-RC3/stripped_bytecode
[ERROR] Exception executing task org.dominokit:domino-jackson:1.0.0-RC4/transpiled_js
com.google.j2cl.common.visitor.ProcessorError: Context:

void BaseCollectionJsonDeserializer.setBackReference(String referenceName, Object reference, C value, JsonDeserializationContext ctx) {
  if (((null != value) && !value.isEmpty())) {
    for (T val : value) {
      BaseCollectionJsonDeserializer.this.deserializer.setBackReference(referenceName,reference,val,ctx);
    }
  }
}

    at com.google.j2cl.transpiler.ast.Visitor_ForEachStatement.visit (Visitor_ForEachStatement.java:27)
    at com.google.j2cl.transpiler.ast.ForEachStatement.accept (ForEachStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visitMembers (Visitor_IfStatement.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visit (Visitor_IfStatement.java:19)
    at com.google.j2cl.transpiler.ast.IfStatement.accept (IfStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visitMembers (Visitor_Method.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visit (Visitor_Method.java:19)
    at com.google.j2cl.transpiler.ast.Method.accept (Method.java:155)
    at com.google.j2cl.transpiler.ast.Visitor_Type.lambda$visitMembers$0 (Visitor_Type.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visitMembers (Visitor_Type.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visit (Visitor_Type.java:19)
    at com.google.j2cl.transpiler.ast.Type.accept (Type.java:318)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.lambda$visitMembers$0 (Visitor_CompilationUnit.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visitMembers (Visitor_CompilationUnit.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:19)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.applyTo (NormalizeForEachStatement.java:53)
    at com.google.j2cl.transpiler.passes.NormalizationPass$1.enterCompilationUnit (NormalizationPass.java:31)
    at com.google.j2cl.transpiler.ast.AbstractVisitor.shouldProcessCompilationUnit (AbstractVisitor.java:62)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:17)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:41)
    at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
    at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:88)
    at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:80)
    at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:833)
Caused by: com.google.j2cl.common.visitor.ProcessorError: Error while processing:

for (T val : value) {
  BaseCollectionJsonDeserializer.this.deserializer.setBackReference(referenceName,reference,val,ctx);
}

    at com.google.j2cl.transpiler.ast.Visitor_ForEachStatement.visit (Visitor_ForEachStatement.java:27)
    at com.google.j2cl.transpiler.ast.ForEachStatement.accept (ForEachStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visitMembers (Visitor_IfStatement.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visit (Visitor_IfStatement.java:19)
    at com.google.j2cl.transpiler.ast.IfStatement.accept (IfStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visitMembers (Visitor_Method.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visit (Visitor_Method.java:19)
    at com.google.j2cl.transpiler.ast.Method.accept (Method.java:155)
    at com.google.j2cl.transpiler.ast.Visitor_Type.lambda$visitMembers$0 (Visitor_Type.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visitMembers (Visitor_Type.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visit (Visitor_Type.java:19)
    at com.google.j2cl.transpiler.ast.Type.accept (Type.java:318)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.lambda$visitMembers$0 (Visitor_CompilationUnit.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visitMembers (Visitor_CompilationUnit.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:19)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.applyTo (NormalizeForEachStatement.java:53)
    at com.google.j2cl.transpiler.passes.NormalizationPass$1.enterCompilationUnit (NormalizationPass.java:31)
    at com.google.j2cl.transpiler.ast.AbstractVisitor.shouldProcessCompilationUnit (AbstractVisitor.java:62)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:17)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:41)
    at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
    at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:88)
    at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:80)
    at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:833)
Caused by: java.lang.ClassCastException: class com.google.j2cl.transpiler.ast.AutoValue_TypeVariable cannot be cast to class com.google.j2cl.transpiler.ast.DeclaredTypeDescriptor (com.google.j2cl.transpiler.ast.AutoValue_TypeVariable and com.google.j2cl.transpiler.ast.DeclaredTypeDescriptor are in unnamed module of loader org.codehaus.plexus.classworlds.realm.ClassRealm @7566716e)
    at com.google.j2cl.transpiler.ast.TypeDescriptor.toBoxedType (TypeDescriptor.java:149)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.maybeAddCast (NormalizeForEachStatement.java:260)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.convertForEachIterable (NormalizeForEachStatement.java:183)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.access$100 (NormalizeForEachStatement.java:43)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement$1.rewriteForEachStatement (NormalizeForEachStatement.java:62)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement$1.rewriteForEachStatement (NormalizeForEachStatement.java:54)
    at com.google.j2cl.transpiler.ast.AbstractRewriter.postProcessForEachStatement (AbstractRewriter.java:375)
    at com.google.j2cl.transpiler.ast.Visitor_ForEachStatement.visit (Visitor_ForEachStatement.java:22)
    at com.google.j2cl.transpiler.ast.ForEachStatement.accept (ForEachStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visitMembers (Visitor_IfStatement.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_IfStatement.visit (Visitor_IfStatement.java:19)
    at com.google.j2cl.transpiler.ast.IfStatement.accept (IfStatement.java:66)
    at com.google.j2cl.transpiler.ast.Visitor_Block.lambda$visitMembers$0 (Visitor_Block.java:47)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visitMembers (Visitor_Block.java:45)
    at com.google.j2cl.transpiler.ast.Visitor_Block.visit (Visitor_Block.java:19)
    at com.google.j2cl.transpiler.ast.Block.accept (Block.java:55)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visitMembers (Visitor_Method.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Method.visit (Visitor_Method.java:19)
    at com.google.j2cl.transpiler.ast.Method.accept (Method.java:155)
    at com.google.j2cl.transpiler.ast.Visitor_Type.lambda$visitMembers$0 (Visitor_Type.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visitMembers (Visitor_Type.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_Type.visit (Visitor_Type.java:19)
    at com.google.j2cl.transpiler.ast.Type.accept (Type.java:318)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.lambda$visitMembers$0 (Visitor_CompilationUnit.java:51)
    at com.google.j2cl.common.visitor.ListVisitor.visit (ListVisitor.java:26)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visitMembers (Visitor_CompilationUnit.java:49)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:19)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizeForEachStatement.applyTo (NormalizeForEachStatement.java:53)
    at com.google.j2cl.transpiler.passes.NormalizationPass$1.enterCompilationUnit (NormalizationPass.java:31)
    at com.google.j2cl.transpiler.ast.AbstractVisitor.shouldProcessCompilationUnit (AbstractVisitor.java:62)
    at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:17)
    at com.google.j2cl.transpiler.ast.CompilationUnit.accept (CompilationUnit.java:93)
    at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:41)
    at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
    at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:88)
    at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:80)
    at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:833)
java.lang.RuntimeException
        at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:542)
        at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:62)
        at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:235)
        at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$0(TaskScheduler.java:266)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

It seems like the following syntax for the for loop is not supported by j2cl

      for (T val : value) {
        deserializer.setBackReference(referenceName, reference, val, ctx);
      }

Switching to use streams fixes the issue

value.forEach(val -> deserializer.setBackReference(referenceName, reference, val, ctx));

Unsupported enums from new jackson in JsonFormat.Feature

Hi,

we are using the DominoKit in a SpringBoot application and face an issue.
While making calls the server complains that a field is missing in a jackson class:

SEVERE: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed: java.lang.NoSuchFieldError: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE] with root cause
java.lang.NoSuchFieldError: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.createContextual(EnumDeserializer.java:211)
        at com.fasterxml.jackson.databind.DeserializationContext.handlePrimaryContextualization(DeserializationContext.java:836)
....

Our environment provides the jackson library with version 2.25.2. The server's complaint roots in the Feature enum. And this looks like the following in version 2.25.2:

public static enum Feature {
        ACCEPT_SINGLE_VALUE_AS_ARRAY,
        ACCEPT_CASE_INSENSITIVE_PROPERTIES,
        READ_UNKNOWN_ENUM_VALUES_AS_NULL,
        READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE,
        READ_DATE_TIMESTAMPS_AS_NANOSECONDS,
        ACCEPT_CASE_INSENSITIVE_VALUES,
        WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,
        WRITE_DATES_WITH_ZONE_ID,
        WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED,
        WRITE_SORTED_MAP_ENTRIES,
        ADJUST_DATES_TO_CONTEXT_TIME_ZONE;

        private Feature() {
        }
    }

Domino provides a subset of this feature enum: https://github.com/DominoKit/domino-jackson/blob/master/domino-jackson-super/src/main/java/com/fasterxml/jackson/annotation/JsonFormat.java#L232

I could fix this locally by checking out your repo and try to add the missing values. Could you take a look at it?

Thanks in advance!

Exception during Serializer generation

Using a POJO as key of a Map will crash the generation.

ERROR] error while creating source file org.dominokit.jackson.processor.TypeRegistry$TypeDeserializerNotFoundException: de.gishmo.bug.test.dto.PoJoA
  	at org.dominokit.jackson.processor.TypeRegistry.getKeyDeserializer(TypeRegistry.java:827)
  	at org.dominokit.jackson.processor.deserialization.FieldDeserializersChainBuilder.getBasicKeyDeserializer(FieldDeserializersChainBuilder.java:167)
  	at org.dominokit.jackson.processor.deserialization.FieldDeserializersChainBuilder.getKeyDeserializer(FieldDeserializersChainBuilder.java:162)
  	at org.dominokit.jackson.processor.deserialization.FieldDeserializersChainBuilder.getMapDeserializer(FieldDeserializersChainBuilder.java:153)
  	at org.dominokit.jackson.processor.deserialization.FieldDeserializersChainBuilder.getFieldDeserializer(FieldDeserializersChainBuilder.java:91)
  	at org.dominokit.jackson.processor.deserialization.FieldDeserializersChainBuilder.getInstance(FieldDeserializersChainBuilder.java:80)
  	at org.dominokit.jackson.processor.deserialization.DeserializerBuilder.buildDeserializerMethod(DeserializerBuilder.java:102)
  	at org.dominokit.jackson.processor.deserialization.DeserializerBuilder.buildDeserializer(DeserializerBuilder.java:63)
  	at org.dominokit.jackson.processor.deserialization.AptDeserializerBuilder.lambda$buildInitDeserializersMethod$8(AptDeserializerBuilder.java:581)

The attach small project produces the exception. just ran mvn clean package

test-rest.zip

In some cases @JsonSubTypes leads to IndexOutOfBoundsException

This Exception occurs during the generation phase, processing this mapping configuration:

    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, visible = true)
    @JsonSubTypes({
            @JsonSubTypes.Type(value = DataInput.class, name = "dataInput"),
            @JsonSubTypes.Type(value = DataOutput.class, name = "dataOutput"),
    })
    private List<Data> ioSpecification;

public abstract class Data<T extends Data> {}
public class DataInput extends Data<DataInput> {}
public class DataOutput extends Data<DataOutput> {}

Looks like the generator isn't happy about Data so it fails. In my humble opinion, it can be fixed by skipping analysis of Data, coz it's redundant for collections annotated with @JsonSubTypes where end-user is responsible which children of Data they want to store in this collection.

Here is the reproducer: https://github.com/treblereel/j2cl-tests/tree/domino-json

Add support for @JsonFormat

Adds support for @JsonFormat, the supported attributes are JsonFormat.shape and JsonFormat.pattern
this feature is useful for serializing/deserializing dates
e.g :

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePatterns.SHORT)
private Date dateOnly;

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePatterns.ISO8601)
private Date dateAndTime;

Compilation error in case of recursive class structures

I've hit an issue in case there are nested class structures with references to some supertype. The compiler extension tries to handle a class multiple times which fails with the message "Attempt to recreate a file" (see below). I've attached a zip file with some code for reproducing the issue.

src.zip

[INFO] �[1m--- �[0;32mcompiler:3.11.0:compile�[m �[1m(default-compile)�[m @ �[36mdomino-rec�[0;1m ---�[m
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 6 source files with javac [debug target 1.8] to target\classes
[WARNING] bootstrap class path not set in conjunction with -source 8
[WARNING] error while creating source file javax.annotation.processing.FilerException: Attempt to recreate a file for type dominokit.recursive.EBeanJsonDeserializerImpl
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:732)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:498)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:435)
  	at dominojackson.shaded.com.squareup.javapoet.JavaFile.writeTo(JavaFile.java:169)
  	at org.dominokit.jackson.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:111)
  	at org.dominokit.jackson.processor.DeserializerGenerator.generate(DeserializerGenerator.java:52)
  	at org.dominokit.jackson.processor.DeserializerGenerator.generateSubTypesDeserializers(DeserializerGenerator.java:66)
  	at org.dominokit.jackson.processor.DeserializerGenerator.generate(DeserializerGenerator.java:50)
  	at org.dominokit.jackson.processor.BeanMapperGenerator.generateDeserializer(BeanMapperGenerator.java:61)
  	at org.dominokit.jackson.processor.AbstractMapperGenerator.generateJsonMappers(AbstractMapperGenerator.java:260)
  	at org.dominokit.jackson.processor.AbstractMapperGenerator.generate(AbstractMapperGenerator.java:62)
  	at org.dominokit.jackson.processor.ObjectMapperProcessor.generateMappers(ObjectMapperProcessor.java:52)
  	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
  	at org.dominokit.jackson.processor.ObjectMapperProcessor.doProcess(ObjectMapperProcessor.java:44)
  	at org.dominokit.jackson.processor.AbstractMapperProcessor.process(AbstractMapperProcessor.java:76)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:939)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:916)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
  	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:136)
  	at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:183)
  	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1140)
  	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:193)
  	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
  	at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
  	at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
  	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
  	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
  	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
  	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
  	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
  	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)

[WARNING] error while creating source file javax.annotation.processing.FilerException: Attempt to recreate a file for type dominokit.recursive.EBeanJsonSerializerImpl
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:732)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:498)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:435)
  	at dominojackson.shaded.com.squareup.javapoet.JavaFile.writeTo(JavaFile.java:169)
  	at org.dominokit.jackson.processor.AbstractJsonMapperGenerator.generate(AbstractJsonMapperGenerator.java:111)
  	at org.dominokit.jackson.processor.SerializerGenerator.generate(SerializerGenerator.java:48)
  	at org.dominokit.jackson.processor.SerializerGenerator.generateSubTypeSerializers(SerializerGenerator.java:62)
  	at org.dominokit.jackson.processor.SerializerGenerator.generate(SerializerGenerator.java:46)
  	at org.dominokit.jackson.processor.BeanMapperGenerator.generateSerializer(BeanMapperGenerator.java:51)
  	at org.dominokit.jackson.processor.AbstractMapperGenerator.generateJsonMappers(AbstractMapperGenerator.java:261)
  	at org.dominokit.jackson.processor.AbstractMapperGenerator.generate(AbstractMapperGenerator.java:62)
  	at org.dominokit.jackson.processor.ObjectMapperProcessor.generateMappers(ObjectMapperProcessor.java:52)
  	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
  	at org.dominokit.jackson.processor.ObjectMapperProcessor.doProcess(ObjectMapperProcessor.java:44)
  	at org.dominokit.jackson.processor.AbstractMapperProcessor.process(AbstractMapperProcessor.java:76)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1023)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:939)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:916)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
  	at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:136)
  	at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:183)
  	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1140)
  	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:193)
  	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
  	at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
  	at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
  	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
  	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
  	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
  	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
  	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
  	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
  	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
  	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
  	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
  	at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
  	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.