arnaudroger / SimpleFlatMapper

Fast and Easy mapping from database and csv to POJO. A java micro ORM, lightweight alternative to iBatis and Hibernate. Fast Csv Parser and Csv Mapper
http://simpleflatmapper.org
MIT License
435 stars 76 forks source link

Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.simpleflatmapper.util.BiFunction.apply #703

Open jonaslimads opened 4 years ago

jonaslimads commented 4 years ago

Hello,

first thanks for the great library. It's been quite easy to work with and the mapping from SQL to Java classes is great.

However we have lately been facing every now and then a random error below. We use:

  1. Spring Boot 2.2.2
  2. SFM 8.2.1
  3. jOOQ 3.12.3
  4. Gradle 6.0.1
  5. Jetty 9.4.24 We have switched from Tomcat to Jetty, but the error keeps happening, which requires us to rerun the Jar. It is like the Spring loaders get messed up randomly and are not able to recover from.
java.lang.NoSuchMethodError: org.simpleflatmapper.util.BiFunction.apply(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Integer;
    at org.simpleflatmapper.reflect.generated.co.myapp.api.models.AsmBiInstantiatorUserFromResultSetAndMappingContextIntoarg6AndfirstNameAndlastNameAnduserId_I11.newInstance
    at org.simpleflatmapper.reflect.generated.co.myapp.api.models.AsmBiInstantiatorUserFromResultSetAndMappingContextIntoarg6AndfirstNameAndlastNameAnduserId_I11.newInstance
    at org.simpleflatmapper.map.mapper.AbstractMapper.map(AbstractMapper.java:22)
    at org.simpleflatmapper.map.fieldmapper.MapperFieldMapper.mapTo(MapperFieldMapper.java:40)
    at org.simpleflatmapper.map.generated.org.simpleflatmapper.map.mapper.AsmMapperFromResultSetToGenericBuilderInj13_I1b.mapFields
    at org.simpleflatmapper.map.generated.org.simpleflatmapper.map.mapper.AsmMapperFromResultSetToGenericBuilderInj13_I1b.mapFields
    at org.simpleflatmapper.map.mapper.AbstractMapper.map(AbstractMapper.java:23)
    at org.simpleflatmapper.map.mapper.ContextualSourceFieldMapperImpl.map(ContextualSourceFieldMapperImpl.java:38)
    at org.simpleflatmapper.map.mapper.JoinMapperEnumerable.next(JoinMapperEnumerable.java:37)
    at org.simpleflatmapper.map.mapper.AbstractEnumerableMapper.forEach(AbstractEnumerableMapper.java:33)
    at org.simpleflatmapper.map.mapper.TransformSetRowMapper.forEach(TransformSetRowMapper.java:30)
    at org.simpleflatmapper.jooq.SelectQueryMapper.asList(SelectQueryMapper.java:47)
    at co.myapp.api.repositories.base.BaseRepository$DefaultImpls.fetchObjectListFromQuery(BaseRepository.kt:132)
    at co.myapp.api.repositories.ProjectRepository.fetchObjectListFromQuery(ProjectRepository.kt:32)
    at co.myapp.api.repositories.base.BaseRepository$DefaultImpls.fetchObjectFromQuery(BaseRepository.kt:129)
    at co.myapp.api.repositories.ProjectRepository.fetchObjectFromQuery(ProjectRepository.kt:32)
    at co.myapp.api.repositories.ProjectRepository.fetchObjectFromQuery(ProjectRepository.kt:32)
    at co.myapp.api.repositories.ProjectRepository.selectComplete(ProjectRepository.kt:52)
    at co.myapp.api.repositories.ProjectRepository$$FastClassBySpringCGLIB$$b16828a.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:769)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)
    at co.myapp.api.repositories.ProjectRepository$$EnhancerBySpringCGLIB$$2c3e9e5c.selectComplete(<generated>)
    at co.myapp.api.services.impl.ProjectServiceImpl.selectComplete(ProjectServiceImpl.kt:69)

Thanks a lot! Regards,

arnaudroger commented 4 years ago

Thanks for the bug report. That one is gonna be fun to track. which version of java is that running against? could you check if there are more than one sfm-util jar? will try and reproduce and might get lucky - what is the frequency of that happening?

arnaudroger commented 4 years ago

in the mean time if that is trouble you can disable the asm generatation - *Factory.useAsm(false)

it actually should not change the perf that much specially on a join

jonaslimads commented 4 years ago

Hello,

We use Java 1.8.0_222 and Kotlin 1.3.61. Most of our code is in Kotlin compiled to Java, only jOOQ generated code is in Java. Also there is only one sfm-util (the full dependency tree is pasted below).

The error "Handler dispatch failed; nested exception is java.lang.NoSuchMethodError...." has been happening once a day for the past week. The interesting is that it only happens in one query, which has 56 columns, 1 join, 5 left joins and one discriminator; it has a two-level nested mapping, so the query maps to an objects and its properties objects/list of objects only as you can see in the ResourceRepository::getMapperKeys. That query is the only one with discriminator in the code, but I'm not sure if discriminator is related to the error. There are other big queries in some part of the code as well, but they don't trigger the error.

Let me now if you need more details. Thank you!

Some snippets:

BaseRepository.kt had - from now on we will add useAsm(false) after newInstance()

    fun getMapper(): SelectQueryMapper<T> = getMapperFactory().newMapper(modelCls.java)

    fun getMapperFactory(): SelectQueryMapperFactory =
        SelectQueryMapperFactory.newInstance().ignorePropertyNotFound().addKeys(*getMapperKeys())

    fun getJdbcMapper(): DynamicJdbcMapper<T> = getJdbcMapperFactory().newMapper(modelCls.java)

    fun getJdbcMapperFactory(): JdbcMapperFactory = JdbcMapperFactory.newInstance().addKeys(*getMapperKeys())

    fun getMapperKeys(): Array<String> = emptyArray()

ResourceRepository.kt (implements BaseRepository) which contains the query the triggers the error and discriminator:

    override fun getMapperFactory(): SelectQueryMapperFactory = super.getMapperFactory()
        .discriminator(Estimate::class.java)
        .onColumn("resource_list_estimate_price", Double::class.java)
        .with { builder ->
            builder
                .`when`({ it >= 0 }, ModelAEstimate::class.java)
                .`when`({ true }, ModelBEstimate::class.java)
        }

    override fun getMapperKeys(): Array<String> = arrayOf("parent_resource_id",
                                                          "user_id",
                                                          "resource_list_resource_id",
                                                          "resource_list_user_id"
                                                          "item_list_item_id",
                                                          "address_list_address_id")

Runtime dependency tree:

+--- org.springframework.boot:spring-boot-devtools -> 2.2.2.RELEASE
|    +--- org.springframework.boot:spring-boot:2.2.2.RELEASE
|    |    +--- org.springframework:spring-core:5.2.2.RELEASE
|    |    |    \--- org.springframework:spring-jcl:5.2.2.RELEASE
|    |    \--- org.springframework:spring-context:5.2.2.RELEASE
|    |         +--- org.springframework:spring-aop:5.2.2.RELEASE
|    |         |    +--- org.springframework:spring-beans:5.2.2.RELEASE
|    |         |    |    \--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    |         |    \--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    |         +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|    |         +--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    |         \--- org.springframework:spring-expression:5.2.2.RELEASE
|    |              \--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    \--- org.springframework.boot:spring-boot-autoconfigure:2.2.2.RELEASE
|         \--- org.springframework.boot:spring-boot:2.2.2.RELEASE (*)
+--- org.springframework.boot:spring-boot-starter-web -> 2.2.2.RELEASE
|    +--- org.springframework.boot:spring-boot-starter:2.2.2.RELEASE
|    |    +--- org.springframework.boot:spring-boot:2.2.2.RELEASE (*)
|    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.2.2.RELEASE (*)
|    |    +--- org.springframework.boot:spring-boot-starter-logging:2.2.2.RELEASE
|    |    |    +--- ch.qos.logback:logback-classic:1.2.3
|    |    |    |    +--- ch.qos.logback:logback-core:1.2.3
|    |    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.12.1
|    |    |    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.12.1
|    |    |    \--- org.slf4j:jul-to-slf4j:1.7.29
|    |    |         \--- org.slf4j:slf4j-api:1.7.29 -> 1.7.30
|    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    +--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    |    \--- org.yaml:snakeyaml:1.25
|    +--- org.springframework.boot:spring-boot-starter-json:2.2.2.RELEASE
|    |    +--- org.springframework.boot:spring-boot-starter:2.2.2.RELEASE (*)
|    |    +--- org.springframework:spring-web:5.2.2.RELEASE
|    |    |    +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|    |    |    \--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.10.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.1
|    |    |    \--- com.fasterxml.jackson.core:jackson-core:2.10.1
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.10.1
|    |    |    \--- com.fasterxml.jackson.core:jackson-databind:2.10.1 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.1
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.10.1
|    |    |    \--- com.fasterxml.jackson.core:jackson-databind:2.10.1 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.1
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.10.1
|    |         \--- com.fasterxml.jackson.core:jackson-databind:2.10.1 (*)
|    +--- org.springframework.boot:spring-boot-starter-validation:2.2.2.RELEASE
|    |    +--- org.springframework.boot:spring-boot-starter:2.2.2.RELEASE (*)
|    |    +--- jakarta.validation:jakarta.validation-api:2.0.1
|    |    \--- org.hibernate.validator:hibernate-validator:6.0.18.Final
|    |         +--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.1.Final
|    |         \--- com.fasterxml:classmate:1.3.4 -> 1.5.1
|    +--- org.springframework:spring-web:5.2.2.RELEASE (*)
|    \--- org.springframework:spring-webmvc:5.2.2.RELEASE
|         +--- org.springframework:spring-aop:5.2.2.RELEASE (*)
|         +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|         +--- org.springframework:spring-context:5.2.2.RELEASE (*)
|         +--- org.springframework:spring-core:5.2.2.RELEASE (*)
|         +--- org.springframework:spring-expression:5.2.2.RELEASE (*)
|         \--- org.springframework:spring-web:5.2.2.RELEASE (*)
+--- org.springframework.boot:spring-boot-starter-jetty -> 2.2.2.RELEASE
|    +--- jakarta.servlet:jakarta.servlet-api:4.0.3
|    +--- jakarta.websocket:jakarta.websocket-api:1.1.2
|    +--- org.eclipse.jetty:jetty-servlets:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-continuation:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-http:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    |    \--- org.eclipse.jetty:jetty-io:9.4.24.v20191120
|    |    |         \--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    \--- org.eclipse.jetty:jetty-io:9.4.24.v20191120 (*)
|    +--- org.eclipse.jetty:jetty-webapp:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-xml:9.4.24.v20191120
|    |    |    \--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    \--- org.eclipse.jetty:jetty-servlet:9.4.24.v20191120
|    |         \--- org.eclipse.jetty:jetty-security:9.4.24.v20191120
|    |              \--- org.eclipse.jetty:jetty-server:9.4.24.v20191120
|    |                   +--- org.eclipse.jetty:jetty-http:9.4.24.v20191120 (*)
|    |                   \--- org.eclipse.jetty:jetty-io:9.4.24.v20191120 (*)
|    +--- org.eclipse.jetty.websocket:websocket-server:9.4.24.v20191120
|    |    +--- org.eclipse.jetty.websocket:websocket-common:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty.websocket:websocket-api:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    |    \--- org.eclipse.jetty:jetty-io:9.4.24.v20191120 (*)
|    |    +--- org.eclipse.jetty.websocket:websocket-client:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty:jetty-client:9.4.24.v20191120
|    |    |    |    +--- org.eclipse.jetty:jetty-http:9.4.24.v20191120 (*)
|    |    |    |    \--- org.eclipse.jetty:jetty-io:9.4.24.v20191120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-xml:9.4.24.v20191120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-util:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty:jetty-io:9.4.24.v20191120 (*)
|    |    |    \--- org.eclipse.jetty.websocket:websocket-common:9.4.24.v20191120 (*)
|    |    +--- org.eclipse.jetty.websocket:websocket-servlet:9.4.24.v20191120
|    |    |    \--- org.eclipse.jetty.websocket:websocket-api:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-servlet:9.4.24.v20191120 (*)
|    |    \--- org.eclipse.jetty:jetty-http:9.4.24.v20191120 (*)
|    +--- org.eclipse.jetty.websocket:javax-websocket-server-impl:9.4.24.v20191120
|    |    +--- org.eclipse.jetty:jetty-annotations:9.4.24.v20191120
|    |    |    +--- org.eclipse.jetty:jetty-plus:9.4.24.v20191120
|    |    |    |    \--- org.eclipse.jetty:jetty-webapp:9.4.24.v20191120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-webapp:9.4.24.v20191120 (*)
|    |    |    +--- org.ow2.asm:asm:7.2
|    |    |    \--- org.ow2.asm:asm-commons:7.2
|    |    |         +--- org.ow2.asm:asm:7.2
|    |    |         +--- org.ow2.asm:asm-tree:7.2
|    |    |         |    \--- org.ow2.asm:asm:7.2
|    |    |         \--- org.ow2.asm:asm-analysis:7.2
|    |    |              \--- org.ow2.asm:asm-tree:7.2 (*)
|    |    +--- org.eclipse.jetty.websocket:javax-websocket-client-impl:9.4.24.v20191120
|    |    |    \--- org.eclipse.jetty.websocket:websocket-client:9.4.24.v20191120 (*)
|    |    \--- org.eclipse.jetty.websocket:websocket-server:9.4.24.v20191120 (*)
|    \--- org.mortbay.jasper:apache-el:8.5.49
+--- org.springframework.boot:spring-boot-starter-security -> 2.2.2.RELEASE
|    +--- org.springframework.boot:spring-boot-starter:2.2.2.RELEASE (*)
|    +--- org.springframework:spring-aop:5.2.2.RELEASE (*)
|    +--- org.springframework.security:spring-security-config:5.2.1.RELEASE
|    |    +--- org.springframework.security:spring-security-core:5.2.1.RELEASE
|    |    |    +--- org.springframework:spring-aop:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    |    +--- org.springframework:spring-beans:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    |    +--- org.springframework:spring-context:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    |    +--- org.springframework:spring-core:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    |    \--- org.springframework:spring-expression:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    +--- org.springframework:spring-aop:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    +--- org.springframework:spring-beans:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    +--- org.springframework:spring-context:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    |    \--- org.springframework:spring-core:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|    \--- org.springframework.security:spring-security-web:5.2.1.RELEASE
|         +--- org.springframework.security:spring-security-core:5.2.1.RELEASE (*)
|         +--- org.springframework:spring-aop:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|         +--- org.springframework:spring-beans:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|         +--- org.springframework:spring-context:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|         +--- org.springframework:spring-core:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|         +--- org.springframework:spring-expression:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
|         \--- org.springframework:spring-web:5.2.1.RELEASE -> 5.2.2.RELEASE (*)
+--- org.springframework.boot:spring-boot-starter-jdbc -> 2.2.2.RELEASE
|    +--- org.springframework.boot:spring-boot-starter:2.2.2.RELEASE (*)
|    +--- com.zaxxer:HikariCP:3.4.1
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    \--- org.springframework:spring-jdbc:5.2.2.RELEASE
|         +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|         +--- org.springframework:spring-core:5.2.2.RELEASE (*)
|         \--- org.springframework:spring-tx:5.2.2.RELEASE
|              +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|              \--- org.springframework:spring-core:5.2.2.RELEASE (*)
+--- org.springframework.amqp:spring-amqp -> 2.2.2.RELEASE
|    +--- org.springframework.retry:spring-retry:1.2.4.RELEASE
|    \--- org.springframework:spring-core:5.2.2.RELEASE (*)
+--- org.springframework.amqp:spring-rabbit -> 2.2.2.RELEASE
|    +--- com.rabbitmq:amqp-client:5.7.3
|    |    \--- org.slf4j:slf4j-api:1.7.26 -> 1.7.30
|    +--- org.springframework.amqp:spring-amqp:2.2.2.RELEASE (*)
|    +--- org.springframework:spring-context:5.2.2.RELEASE (*)
|    +--- org.springframework:spring-messaging:5.2.2.RELEASE
|    |    +--- org.springframework:spring-beans:5.2.2.RELEASE (*)
|    |    \--- org.springframework:spring-core:5.2.2.RELEASE (*)
|    \--- org.springframework:spring-tx:5.2.2.RELEASE (*)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61
|    |    \--- org.jetbrains:annotations:13.0
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 (*)
+--- org.jetbrains.kotlin:kotlin-reflect:1.3.61
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.61 (*)
+--- com.fasterxml.jackson.module:jackson-module-kotlin -> 2.10.1
|    +--- com.fasterxml.jackson.core:jackson-databind:2.10.1 (*)
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.10.1
|    \--- org.jetbrains.kotlin:kotlin-reflect:1.3.50 -> 1.3.61 (*)
+--- javax.persistence:javax.persistence-api:2.2
+--- com.zaxxer:HikariCP:3.4.1 (*)
+--- org.apache.httpcomponents:httpclient:4.5.10
|    +--- org.apache.httpcomponents:httpcore:4.4.12
|    \--- commons-codec:commons-codec:1.11 -> 1.13
+--- io.springfox:springfox-swagger2:2.9.2
|    +--- io.swagger:swagger-annotations:1.5.20
|    +--- io.swagger:swagger-models:1.5.20
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.5 -> 2.10.1
|    |    +--- org.slf4j:slf4j-api:1.7.22 -> 1.7.30
|    |    \--- io.swagger:swagger-annotations:1.5.20
|    +--- io.springfox:springfox-spi:2.9.2
|    |    \--- io.springfox:springfox-core:2.9.2
|    |         +--- net.bytebuddy:byte-buddy:1.8.12 -> 1.10.4
|    |         +--- com.google.guava:guava:20.0
|    |         +--- com.fasterxml:classmate:1.4.0 -> 1.5.1
|    |         +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |         +--- org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE
|    |         |    +--- org.springframework:spring-beans:4.0.9.RELEASE -> 5.2.2.RELEASE (*)
|    |         |    +--- org.springframework:spring-context:4.0.9.RELEASE -> 5.2.2.RELEASE (*)
|    |         |    +--- org.springframework:spring-aop:4.0.9.RELEASE -> 5.2.2.RELEASE (*)
|    |         |    \--- org.slf4j:slf4j-api:1.7.10 -> 1.7.30
|    |         \--- org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE
|    |              +--- org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE (*)
|    |              \--- org.slf4j:slf4j-api:1.7.10 -> 1.7.30
|    +--- io.springfox:springfox-schema:2.9.2
|    |    +--- io.springfox:springfox-core:2.9.2 (*)
|    |    \--- io.springfox:springfox-spi:2.9.2 (*)
|    +--- io.springfox:springfox-swagger-common:2.9.2
|    |    +--- io.swagger:swagger-annotations:1.5.20
|    |    +--- io.swagger:swagger-models:1.5.20 (*)
|    |    +--- io.springfox:springfox-spi:2.9.2 (*)
|    |    +--- io.springfox:springfox-schema:2.9.2 (*)
|    |    +--- io.springfox:springfox-spring-web:2.9.2
|    |    |    +--- com.google.guava:guava:20.0
|    |    |    +--- com.fasterxml:classmate:1.4.0 -> 1.5.1
|    |    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    |    +--- org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE (*)
|    |    |    +--- org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE (*)
|    |    |    \--- io.springfox:springfox-spi:2.9.2 (*)
|    |    +--- com.google.guava:guava:20.0
|    |    +--- com.fasterxml:classmate:1.4.0 -> 1.5.1
|    |    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    |    +--- org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE (*)
|    |    \--- org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE (*)
|    +--- io.springfox:springfox-spring-web:2.9.2 (*)
|    +--- com.google.guava:guava:20.0
|    +--- com.fasterxml:classmate:1.4.0 -> 1.5.1
|    +--- org.slf4j:slf4j-api:1.7.25 -> 1.7.30
|    +--- org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE (*)
|    +--- org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE (*)
|    \--- org.mapstruct:mapstruct:1.2.0.Final
+--- io.springfox:springfox-swagger-ui:2.9.2
|    \--- io.springfox:springfox-spring-web:2.9.2 (*)
+--- javax.xml.bind:jaxb-api:2.3.1
|    \--- javax.activation:javax.activation-api:1.2.0
+--- org.slf4j:slf4j-api:1.7.30
+--- ch.qos.logback:logback-core:1.2.3
+--- ch.qos.logback:logback-classic:1.2.3 (*)
+--- org.jooq:jooq:3.12.3
|    +--- org.reactivestreams:reactive-streams:1.0.2 -> 1.0.3
|    \--- javax.xml.bind:jaxb-api:2.3.0 -> 2.3.1 (*)
+--- org.jooq:jooq-codegen:3.12.3
|    +--- org.jooq:jooq:3.12.3 (*)
|    \--- org.jooq:jooq-meta:3.12.3
|         \--- org.jooq:jooq:3.12.3 (*)
+--- org.jooq:jooq-meta:3.12.3 (*)
+--- org.simpleflatmapper:sfm-jdbc:8.2.1
|    \--- org.simpleflatmapper:sfm-map:8.2.1
|         \--- org.simpleflatmapper:sfm-reflect:8.2.1
|              +--- org.simpleflatmapper:ow2-asm:6.2
|              +--- org.simpleflatmapper:sfm-util:8.2.1
|              \--- org.simpleflatmapper:sfm-converter:8.2.1
|                   \--- org.simpleflatmapper:sfm-util:8.2.1
+--- org.simpleflatmapper:sfm-jooq:8.2.1
|    \--- org.simpleflatmapper:sfm-jdbc:8.2.1 (*)
+--- org.json:json:20190722
+--- com.braintreepayments.gateway:braintree-java:2.106.0
|    +--- org.osgi:org.osgi.core:4.2.0
|    +--- com.fasterxml.jackson.jr:jackson-jr-objects:2.9.9 -> 2.10.1
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.10.1
|    \--- org.apache.commons:commons-csv:1.4
+--- io.sentry:sentry-spring:1.7.29
|    \--- io.sentry:sentry:1.7.29
|         +--- org.slf4j:slf4j-api:1.7.24 -> 1.7.30
|         \--- com.fasterxml.jackson.core:jackson-core:2.10.0 -> 2.10.1
\--- mysql:mysql-connector-java:8.0.18
jonaslimads commented 4 years ago

@arnaudroger your feedback about adding *Factory.useAsm(false) was great, we haven't had any issues since then. Thanks a lot!