FasterXML / FasterXML/jackson-modules-base

Cannot Deserialize Object with Builder when using AfterBurner and UseValueClassLoader is false

Abierto
#129 6 comentarios 1 reacción 0 asignados Ver en GitHub
afterburner
Lenguaje dominante
Java
Estrellas
180
Forks
80
Merge medio
3 h 26 min
PR fusionados (30 d)
1

Descripción

# Description
When using `@JsonDeserialize(builder = ...)` along with `@JsonPojoBuilder`, deserialization fails when the Afterburner module is registered with `new ObjectMapper().registerModule(new AfterburnerModule().setUseValueClassLoader(false));`

Test cases showing the issue: https://github.com/austinarbor/jackson-afterburner-issue/blob/main/src/test/java/dev/aga/model/ContextTest.java

When `setUseValueClassLoader(true)` everything works as expected

```java
class dev.aga.model.Context$ContextBuilder$Creator4JacksonDeserializer8cf3272c tried to access method 'void dev.aga.model.Context$ContextBuilder.()' (dev.aga.model.Context$ContextBuilder$Creator4JacksonDeserializer8cf3272c is in unnamed module of loader com.fasterxml.jackson.module.afterburner.util.MyClassLoader @2f53b467; dev.aga.model.Context$ContextBuilder is in unnamed module of loader 'app')
java.lang.IllegalAccessError: class dev.aga.model.Context$ContextBuilder$Creator4JacksonDeserializer8cf3272c tried to access method 'void dev.aga.model.Context$ContextBuilder.()' (dev.aga.model.Context$ContextBuilder$Creator4JacksonDeserializer8cf3272c is in unnamed module of loader com.fasterxml.jackson.module.afterburner.util.MyClassLoader @2f53b467; dev.aga.model.Context$ContextBuilder is in unnamed module of loader 'app')
at dev.aga.model.Context$ContextBuilder$Creator4JacksonDeserializer8cf3272c.createUsingDefault(dev/aga/model/Context$ContextBuilder$Creator4JacksonDeserializer.java)
at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.vanillaDeserialize(BuilderBasedDeserializer.java:285)
at com.fasterxml.jackson.databind.deser.BuilderBasedDeserializer.deserialize(BuilderBasedDeserializer.java:217)
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4309)
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4245)
at dev.aga.model.ContextTest.testDeserWithAfterburnerAndUseValueClassLoaderFalse(ContextTest.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.