OpenAPITools / jackson-databind-nullable

JsonNullable wrapper class and Jackson module to support meaningful null values
Apache License 2.0
102 stars 30 forks source link

Compatibility issue with spring boot 3 / jakarta api #39

Closed bratkartoffel closed 1 year ago

bratkartoffel commented 1 year ago

Hi,

thanks for this great plugin! AS spring boot 3.0 was released yesterday, I tried to upgrade my project to that new version. This upgrade also includes the change from javax -> jakarta api, which I think breaks this library.

Version 0.2.4 does not work with the jakarta-api:

// this configuration worked fine with boot 2.7.6

@Configuration
public class JacksonNullableModuleConfiguration {
    @Bean
    public JsonNullableModule jsonNullableModule() {
        return new JsonNullableModule();
    }
}
jakarta.servlet.ServletException: Request processing failed: jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.Size' validating type 'org.openapitools.jackson.nullable.JsonNullable<java.lang.String>'. Check configuration for 'password'

    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:877)

Changing that configuration like proposed by https://github.com/OpenAPITools/jackson-databind-nullable/issues/18#issuecomment-850817365 results in another exception:

@Configuration
public class JacksonNullableModuleConfiguration {
    @Bean
    public JsonNullableModule jsonNullableModule(ObjectMapper objectMapper) {
        JsonNullableModule module = new JsonNullableModule();
        objectMapper.registerModule(module);
        return module;
    }
}
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'jsonNullableModule': Requested bean is currently in creation: Is there an unresolvable circular reference?
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.beforeSingletonCreation(DefaultSingletonBeanRegistry.java:355)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:227)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)

Can you please make it work with the jakarta-validation annotations as it did with the java-validation annotations?

Thanks, Simon

bratkartoffel commented 1 year ago

Reproducer:

package eu.fraho.example;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
import jakarta.validation.constraints.Size;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.openapitools.jackson.nullable.JsonNullable;
import org.openapitools.jackson.nullable.JsonNullableModule;

import java.util.Set;

public class TestJsonNullable {
    static class Pet {

        @Size(max = 10)
        public JsonNullable<String> name = JsonNullable.undefined();

        public Pet name(JsonNullable<String> name) {
            this.name = name;
            return this;
        }
    }

    @Test
    void test() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        mapper.registerModule(new JsonNullableModule());

        Assertions.assertEquals("{}", mapper.writeValueAsString(new Pet().name(JsonNullable.<String>undefined())));
        Assertions.assertEquals("{\"name\":null}", mapper.writeValueAsString(new Pet().name(JsonNullable.<String>of(null))));
        Assertions.assertEquals("{\"name\":\"Rex\"}", mapper.writeValueAsString(new Pet().name(JsonNullable.of("Rex"))));

        Assertions.assertEquals(JsonNullable.of("Rex"), mapper.readValue("{\"name\":\"Rex\"}", Pet.class).name);
        Assertions.assertEquals(JsonNullable.<String>of(null), mapper.readValue("{\"name\":null}", Pet.class).name);
        Assertions.assertEquals(JsonNullable.<String>undefined(), mapper.readValue("{}", Pet.class).name);

        // instantiate javax.validation.Validator
        try (ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory()) {
            Validator validator = validatorFactory.getValidator();
            Pet myPet = new Pet().name(JsonNullable.of("My Pet's really long name"));
            Set<ConstraintViolation<Pet>> validationResult = validator.validate(myPet);  // <-----
            Assertions.assertEquals(1, validationResult.size());
        }
    }
}
C:\devel\jdk-17.0.5+8\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\devel\IntelliJ IDEA\lib\idea_rt.jar=59784:C:\devel\IntelliJ IDEA\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\john\.m2\repository\org\junit\platform\junit-platform-launcher\1.9.1\junit-platform-launcher-1.9.1.jar;C:\Users\john\.m2\repository\org\junit\vintage\junit-vintage-engine\5.9.1\junit-vintage-engine-5.9.1.jar;C:\devel\IntelliJ IDEA\lib\idea_rt.jar;C:\devel\IntelliJ IDEA\plugins\junit\lib\junit5-rt.jar;C:\devel\IntelliJ IDEA\plugins\junit\lib\junit-rt.jar;C:\devel\workspace\signova\out\test\classes;C:\devel\workspace\signova\out\test\resources;C:\devel\workspace\signova\out\production\classes;C:\devel\workspace\signova\out\production\resources;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-jpa\3.0.0\3fa6a036bc4f0383ebb6105420d36ce9580d5fe9\spring-boot-starter-data-jpa-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.0.0\5dd6c38f60b915dce2c4a340f4ea68f2e52306f8\spring-boot-starter-web-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-undertow\3.0.0\d7c8af3e7869e09c56d560b3f84d11ba2f28b13d\spring-boot-starter-undertow-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-mail\3.0.0\eb7f8b3ed73e8e1d94ef62a0285f57206e7c4b18\spring-boot-starter-mail-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-validation\3.0.0\306f603abf63f42ccfeefa238f8c32aa535ab943\spring-boot-starter-validation-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-security\3.0.0\efe7ffae5c9875e2019c6a701759ea524cb331ee\spring-boot-starter-security-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-devtools\3.0.0\efb77f02a6312690c69049ad2bee06cab7a21a0f\spring-boot-devtools-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-starter-webmvc-ui\2.0.0\8a1c5eec3957c4eb4f18460e3ee52732d7b6f640\springdoc-openapi-starter-webmvc-ui-2.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.openapitools\jackson-databind-nullable\0.2.4\371a38c3d339833edb1b2a0d96c3d249a890bcc4\jackson-databind-nullable-0.2.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.24\13a394eed5c4f9efb2a6d956e2086f1d81e857d9\lombok-1.18.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-test\3.0.0\f3991382f9ef5dca46fb61eb3201730929c04978\spring-boot-starter-test-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\postgresql\1.17.6\cd8aba02d8d46159ab85535d34a1e4217322f9a5\postgresql-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\junit-jupiter\1.17.6\94e9894bc665909e208959390ea6540309ce231e\junit-jupiter-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-aop\3.0.0\aff0890dc80d8838cfa3276abfda07d9bfb0d730\spring-boot-starter-aop-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-jdbc\3.0.0\359bce4bbc4229586b39867f35a9a613473d4032\spring-boot-starter-jdbc-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate.orm\hibernate-core\6.1.5.Final\b8536d33e7221e85553f0cdaadd9669baff2da9a\hibernate-core-6.1.5.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-jpa\3.0.0\c1289ab131eddd70fc35beb880927f4808d5d5f1\spring-data-jpa-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aspects\6.0.2\81628dd21604716113be4dd3645cbc19d0f1f8c7\spring-aspects-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.0.0\beb1a175ad3cdec82ebd36dd1ddd08a9738a2d86\spring-boot-starter-json-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.0.0\18c02ab19529d866723b40c03021cd731c3edb50\spring-boot-starter-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.0.2\cf96960288ba6a95da3488b6d255803c50fa1927\spring-webmvc-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.0.2\39dde8bfcc9074af0fcec924ca7465cb90eb25d4\spring-web-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-websockets-jsr\2.3.0.Final\5d5eed2489eea2070ae1fdd4c2396b7eb2433b5b\undertow-websockets-jsr-2.3.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-servlet\2.3.0.Final\5c2cadbf1c28bbece865ed29a468d0b90099aa82\undertow-servlet-2.3.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-core\2.3.0.Final\e4288c1076ca4142ecd283ad3b6ecf1d452bf55b\undertow-core-2.3.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\10.1.1\a5282bdc29026cacc8e2941b53c78621beed4c7\tomcat-embed-el-10.1.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context-support\6.0.2\ce7e85e7815561ebfcc7bf95d6af28bf4c0c7420\spring-context-support-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.eclipse.angus\jakarta.mail\1.0.0\f532ff97458d67ea6f4bfff372bfaae8803cad66\jakarta.mail-1.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator\8.0.0.Final\8e0389f22a3a246915a3311877da4168256b95d2\hibernate-validator-8.0.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-web\6.0.0\7a12420a54eef333288ebf236164c45f7e18864\spring-security-web-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-config\6.0.0\b7c6fe43fdae82d1472738bb97f9d9df13ce7ab\spring-security-config-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.0.2\fe73295dd65e6b2f53986622c1e622cd3d09aa03\spring-aop-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.0.0\11c57cfd7a6c6ef2cf16cc91c4d9173f6ab16dd2\spring-boot-autoconfigure-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.0.0\dcf84aaccdb294b8fe53a92b57efecf16708eb2c\spring-boot-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-starter-webmvc-api\2.0.0\6d7115f062c897400e68079c895fdd7801508ef6\springdoc-openapi-starter-webmvc-api-2.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.webjars\swagger-ui\4.15.5\fc283d7a6d93c58fb466766eef4b8110c57639ea\swagger-ui-4.15.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.webjars\webjars-locator-core\0.52\f219134c6b8d4aebfea70f135b2f80dc2794253f\webjars-locator-core-0.52.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.github.classgraph\classgraph\4.8.149\4bc2f188bc9001473d4a26ac488c2ae1a3e906de\classgraph-4.8.149.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.14.1\268524b9056cae1211b9f1f52560ef19347f4d17\jackson-databind-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test-autoconfigure\3.0.0\526b9f0ce32649055b2babb58ca330cb9ee6340a\spring-boot-test-autoconfigure-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test\3.0.0\bfc808cc044d11c53631a7b0cfd03c9b44dc0980\spring-boot-test-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.jayway.jsonpath\json-path\2.7.0\f9d7d9659f2694e61142046ff8a216c047f263e8\json-path-2.7.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.xml.bind\jakarta.xml.bind-api\4.0.0\bbb399208d288b15ec101fa4fcfc4bd77cedc97a\jakarta.xml.bind-api-4.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.assertj\assertj-core\3.23.1\d2bb60570f5b3d7ffa8f8000118c9c07b86eca93\assertj-core-3.23.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest\2.2\1820c0968dba3a11a1b30669bb1f01978a91dedc\hamcrest-2.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter\5.9.1\9274d3757e224bc02eae367bd481062a263c150b\junit-jupiter-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-junit-jupiter\4.8.1\e393aa62eca2244a535b03842843f2f199343d1f\mockito-junit-jupiter-4.8.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-core\4.8.1\d8eb9dec8747d08645347bb8c69088ac83197975\mockito-core-4.8.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.skyscreamer\jsonassert\1.5.1\6d842d0faf4cf6725c509a5e5347d319ee0431c3\jsonassert-1.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-test\6.0.2\3f075043f8f7c1d8385cc0e0a7a6de2d4d72a4fe\spring-test-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.0.2\43f8a6c8b522181d507705aac0e1f1b1e81e7701\spring-core-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.xmlunit\xmlunit-core\2.9.0\8959725d90eecfee28acd7110e2bb8460285d876\xmlunit-core-2.9.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\jdbc\1.17.6\1510482e46f5f70909693fc695a2369751510785\jdbc-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\testcontainers\1.17.6\11b28972d2d8bddd5a7d3b6e21016fbe13bc8e8b\testcontainers-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-api\5.9.1\7bb53fbc0173e9f6a9d21d58297af94b1f2f9ce1\junit-jupiter-api-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.aspectj\aspectjweaver\1.9.9.1\dcd2703279a94ad909fa3f3d08671cb0f2dabf7\aspectjweaver-1.9.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\6.0.2\258825b19c01fbe7107b0233de26e4b53a74e6b8\spring-jdbc-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.zaxxer\HikariCP\5.0.1\a74c7f0a37046846e88d54f7cb6ea6d565c65f9c\HikariCP-5.0.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.persistence\jakarta.persistence-api\3.0.0\affc7884a85b6876d438a88b5d21ea29b1cc2dd8\jakarta.persistence-api-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.transaction\jakarta.transaction-api\2.0.0\24a0525b4acfbca4086d2f1278be3a084fe1c67d\jakarta.transaction-api-2.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.0.2\649dc1c9947da39a0d4e3869d61e7270489aaa25\spring-context-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-orm\6.0.0\1bd8117695b6b0c31c8449744e469edd5fb1d649\spring-orm-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-commons\3.0.0\79f898c8a9d926f6434ae53c9a927a299e079663\spring-data-commons-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\6.0.2\fafb1f39570e73e43f8ebc6379423036ae5c9698\spring-tx-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.0.2\87ded7c3d973ec0bfebe0b6511375ffebe178ae5\spring-beans-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\2.1.1\48b9bda22b091b1f48b13af03fe36db3be6e1ae3\jakarta.annotation-api-2.1.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.4\30d5eb5360bd113ce96f9e49e3431993bbf1b247\slf4j-api-2.0.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.14.1\f24e8cb1437e05149b7a3049ebd6700f42e664b1\jackson-datatype-jsr310-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.14.1\2e05a86dba3d4b05074b6a313c4d5b7ff844c8dd\jackson-module-parameter-names-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.14.1\da194197d187bf24a8699514344ebf0abd7c342a\jackson-datatype-jdk8-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.0.0\af37a21b0be9c0c8cd11e3f8a3330b314af639d3\spring-boot-starter-logging-3.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.0.2\89687daffb67231f6be7783775c1f0d46f4541fe\spring-expression-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.10.1\df33d2e3ca678d426473adfeec04f2f1d764a714\micrometer-observation-1.10.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.websocket\jakarta.websocket-api\2.1.0\9b2b5363ead21c4480e37ec15378583e11d3a823\jakarta.websocket-api-2.1.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.websocket\jakarta.websocket-client-api\2.1.0\ac185d7945d4c0a501b79ae003d9f8d9a1ae7eff\jakarta.websocket-client-api-2.1.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.servlet\jakarta.servlet-api\6.0.0\abecc699286e65035ebba9844c03931357a6a963\jakarta.servlet-api-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.threads\jboss-threads\3.5.0.Final\dd23d4788b3eafe9597ef3fe028e46ceb293ba8d\jboss-threads-3.5.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.xnio\xnio-api\3.8.8.Final\1ba9c8b9a8dea1c6cd656155943e6d4c2c631fa7\xnio-api-3.8.8.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.4.3.Final\c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea\jboss-logging-3.4.3.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.activation\jakarta.activation-api\2.1.0\a58861b5deac5e151140511cf57d6b80a83f2d20\jakarta.activation-api-2.1.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.validation\jakarta.validation-api\3.0.2\92b6631659ba35ca09e44874d3eb936edfeee532\jakarta.validation-api-3.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.5.1\3fe0bed568c62df5e89f4f174c101eab25345b6c\classmate-1.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-core\6.0.0\b2b591779890e7340a85f9c79c4d3ab577da981b\spring-security-core-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-starter-common\2.0.0\fadf2f04bea39df515fba828474b944d925f9f7\springdoc-openapi-starter-common-2.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.14.1\2a6ad504d591a7903ffdec76b5b7252819a2d162\jackson-annotations-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.14.1\7a07bc535ccf0b7f6929c4d0f2ab9b294ef7c4a3\jackson-core-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.minidev\json-smart\2.4.7\8d7f4c1530c07c54930935f3da85f48b83b3c109\json-smart-2.4.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.16\7817a8128b38ff8cb8570c8f3c85c1a41002a09d\byte-buddy-1.12.16.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-params\5.9.1\ffcd1013edaeee112be11fcddeb38882d79238de\junit-jupiter-params-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.12.16\c2d5dd150c17028c494e7f02a17f4a995dcb4e9f\byte-buddy-agent-1.12.16.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.vaadin.external.google\android-json\0.0.20131108.vaadin1\fa26d351fe62a6a17f5cda1287c1c6110dec413f\android-json-0.0.20131108.vaadin1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.0.2\5eec2672aab8f80a54ea9047938884813c9eeec8\spring-jcl-6.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\database-commons\1.17.6\8a4cd2cda51c2cc3092b1c22f4ee8148be4db410\database-commons-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-api\3.2.13\5817ef8f770cb7e740d590090bf352df9491f3c1\docker-java-api-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-transport-zerodep\3.2.13\4cbc2c09d6c264767a39624066987ed4a152bc68\docker-java-transport-zerodep-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\junit\junit\4.13.2\8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12\junit-4.13.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.22\691a8b4e6cf4248c3bc72c8b719337d5cb7359fa\commons-compress-1.22.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.rnorth.duct-tape\duct-tape\1.0.8\92edc22a9ab2f3e17c9bf700aaee377d50e8b530\duct-tape-1.0.8.jar;C:\Users\john\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\john\.m2\repository\org\junit\platform\junit-platform-commons\1.9.1\junit-platform-commons-1.9.1.jar;C:\Users\john\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.5\28e7dc0b208d6c3f15beefd73976e064b4ecfa9b\logback-classic-1.4.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.19.0\30f4812e43172ecca5041da2cb6b965cc4777c19\log4j-to-slf4j-2.19.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.4\37418ab81680501a3a1e58e04d1341a5efe1c162\jul-to-slf4j-2.0.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.10.1\18439e639979f54280f47620ccc13edde14909b3\micrometer-commons-1.10.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.wildfly.client\wildfly-client-config\1.0.1.Final\2a803b23c40a0de0f03a90d1fd3755747bc05f4b\wildfly-client-config-1.0.1.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.wildfly.common\wildfly-common\1.5.4.Final\735ceee5616d5143bac1bc740e444697073c002f\wildfly-common-1.5.4.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-crypto\6.0.0\39826b79cbd0fc977800a96c78f576932fba8c16\spring-security-crypto-6.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-core-jakarta\2.2.7\9111d85fc116ad6ec9d5f6f54edf81c2740e52\swagger-core-jakarta-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.minidev\accessors-smart\2.4.7\3970cfc505e6657ca60f3aa57c849f6043000d7a\accessors-smart-2.4.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-transport\3.2.13\e9d308d1822181a9d48c99739f5eca014ec89199\docker-java-transport-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.8.0\3551d8d827e54858214107541d3aff9c615cb615\jna-5.8.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\17.0.0\8ceead41f4e71821919dbdb7a9847608f1a938cb\annotations-17.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.5\e9bb2ea70f84401314da4300343b0a246c8954da\logback-core-1.4.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.19.0\ea1b37f38c327596b216542bc636cfdc0b8036fa\log4j-api-2.19.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-models-jakarta\2.2.7\b26a24f51b009fe77a0b4b4f67738a60aaff1aa2\swagger-models-jakarta-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-yaml\2.14.1\cf6d18651659a2e64301452c841e6daa62e77bf6\jackson-dataformat-yaml-2.14.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.12.0\c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e\commons-lang3-3.12.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-annotations-jakarta\2.2.7\1629437bff242e019f5fbac9b27dddd6df47a23b\swagger-annotations-jakarta-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.1\a99500cf6eea30535eeac6be73899d048f8d12a8\asm-9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.liquibase\liquibase-core\4.17.2\fcc477e2ad657843424aef37d2ae86fba8804431\liquibase-core-4.17.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.postgresql\postgresql\42.5.1\ac2f61eb3b1b4e47ea45de47e73d2e92f49e3ce1\postgresql-42.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.3.1\8531ad5ac454cc2deb9d4d32c40c4d7451939b5d\jaxb-api-2.3.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.opencsv\opencsv\5.7.1\d707c095bc8c7c22fb3e377de774458a76229da4\opencsv-5.7.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.5.0\2f50520c8abea66fbd8d26e481d3aef5c673b510\checker-qual-3.5.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\3.0.2\9897322f5de201bfbfcd1f4f46ffdd4204673b3c\jaxb-runtime-3.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate.common\hibernate-commons-annotations\6.0.2.Final\fa5a14ef3d2e5c3c99b53a4bef756a3268d69187\hibernate-commons-annotations-6.0.2.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss\jandex\2.4.2.Final\1e1c385990b258ff1a24c801e84aebbacf70eb39\jandex-2.4.2.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.18\875a9c3f29d2f6f499dfd60d76e97a343f9b1233\byte-buddy-1.12.18.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.inject\jakarta.inject-api\2.0.0\46fc8560b6fd17b78396d88f39c1a730457671f0\jakarta.inject-api-2.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.antlr\antlr4-runtime\4.10.1\10839f875928f59c622d675091d51a43ea0dc5f7\antlr4-runtime-4.10.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.xnio\xnio-nio\3.8.8.Final\a5d2faf8d02e0a0bb9e9eabca8e38173cb640331\xnio-nio-3.8.8.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.eclipse.angus\angus-activation\1.0.0\f0ceddd49f92109fbfad9125e958f5bfd3f2aa1\angus-activation-1.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\javax.activation\javax.activation-api\1.2.0\85262acf3ca9816f9537ca47d5adeabaead7cb16\javax.activation-api-1.2.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-text\1.10.0\3363381aef8cef2dbc1023b3e3a9433b08b64e01\commons-text-1.10.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-collections4\4.4\62ebe7544cb7164d87e0637a2a6a2bdc981395e8\commons-collections4-4.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-engine\5.9.1\1bf771097bde296c3ab174861954e8aafaaf2e94\junit-jupiter-engine-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.objenesis\objenesis\3.2\7fadf57620c8b8abdf7519533e5527367cb51f09\objenesis-3.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-core\3.0.2\e83d0b0005525ddd8b8642bd0bb02227fcf871f1\jaxb-core-3.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.activation\jakarta.activation\2.0.1\828b80e886a52bb09fe41ff410b10b342f533ce1\jakarta.activation-2.0.1.jar;C:\Users\john\.m2\repository\org\junit\platform\junit-platform-engine\1.9.1\junit-platform-engine-1.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\3.0.2\8c448a44cdcdbb5dd48ff2eb88cab858ed52cf91\txw2-3.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\4.0.1\4e25c41d338aad4a2c92d0020c9ae0335fad5099\istack-commons-runtime-4.0.1.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 com.finnova.signova.TestJsonNullable
10:58:08.390 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Log4j2LoggerProvider
10:58:08.393 [main] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.0.Final
10:58:08.397 [main] DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser - Trying to load META-INF/validation.xml for XML based Validator configuration.
10:58:08.398 [main] DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via TCCL
10:58:08.399 [main] DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via Hibernate Validator's class loader
10:58:08.399 [main] DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser - No META-INF/validation.xml found. Using annotation based configuration only.
10:58:08.404 [main] DEBUG org.hibernate.validator.internal.engine.resolver.TraversableResolvers - Found jakarta.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver
10:58:08.404 [main] DEBUG org.hibernate.validator.internal.engine.resolver.TraversableResolvers - Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.
10:58:08.425 [main] DEBUG org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
10:58:08.501 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider.
10:58:08.505 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator.
10:58:08.505 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver.
10:58:08.505 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
10:58:08.505 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
10:58:08.505 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.

jakarta.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'jakarta.validation.constraints.Size' validating type 'org.openapitools.jackson.nullable.JsonNullable<java.lang.String>'. Check configuration for 'name'

    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getExceptionForNullValidator(ConstraintTree.java:116)
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:162)
    at org.hibernate.validator.internal.engine.constraintvalidation.SimpleConstraintTree.validateConstraints(SimpleConstraintTree.java:58)
    at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:75)
    at org.hibernate.validator.internal.metadata.core.MetaConstraint.doValidateConstraint(MetaConstraint.java:130)
    at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:123)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:555)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:518)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:488)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:450)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:400)
    at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:172)
    at com.finnova.signova.TestJsonNullable.test(TestJsonNullable.java:48)
    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.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
    at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)

Process finished with exit code -1

When using spring boot 2.7.6 (and javax imports):

C:\devel\jdk-17.0.5+8\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\devel\IntelliJ IDEA\lib\idea_rt.jar=59800:C:\devel\IntelliJ IDEA\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\john\.m2\repository\org\junit\platform\junit-platform-launcher\1.9.1\junit-platform-launcher-1.9.1.jar;C:\Users\john\.m2\repository\org\junit\vintage\junit-vintage-engine\5.9.1\junit-vintage-engine-5.9.1.jar;C:\devel\IntelliJ IDEA\lib\idea_rt.jar;C:\devel\IntelliJ IDEA\plugins\junit\lib\junit5-rt.jar;C:\devel\IntelliJ IDEA\plugins\junit\lib\junit-rt.jar;C:\devel\workspace\signova\out\test\classes;C:\devel\workspace\signova\out\test\resources;C:\devel\workspace\signova\out\production\classes;C:\devel\workspace\signova\out\production\resources;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-data-jpa\2.7.6\7eef599012347f2fb7f84ba71eba10caf094dfb5\spring-boot-starter-data-jpa-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\2.7.6\9d0166a0390df593243bdc798ca7a1db20ddea9c\spring-boot-starter-web-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-undertow\2.7.6\2471e9d1b07e9083873de67b7c7890a43fbcd1b4\spring-boot-starter-undertow-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-mail\2.7.6\7800bf650266f48ca22916165cfddcd78090effe\spring-boot-starter-mail-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-validation\2.7.6\cc43bd3745e36bc741e2cf5f43db09fcac874839\spring-boot-starter-validation-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-security\2.7.6\2718e4587f4271468ba20da8b4fd8195c798fb88\spring-boot-starter-security-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-devtools\2.7.6\1ab93f24fe923d1b27b78ca77997886bfcce2e46\spring-boot-devtools-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-ui\1.6.13\28dddac3808ac35a7f750a119bd78ff50fc1aa88\springdoc-openapi-ui-1.6.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.openapitools\jackson-databind-nullable\0.2.4\371a38c3d339833edb1b2a0d96c3d249a890bcc4\jackson-databind-nullable-0.2.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.projectlombok\lombok\1.18.24\13a394eed5c4f9efb2a6d956e2086f1d81e857d9\lombok-1.18.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-test\2.7.6\38f4300b939115eae92c1a40ce6e75fe3bbeac00\spring-boot-starter-test-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\postgresql\1.17.6\cd8aba02d8d46159ab85535d34a1e4217322f9a5\postgresql-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\junit-jupiter\1.17.6\94e9894bc665909e208959390ea6540309ce231e\junit-jupiter-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-aop\2.7.6\23061de1832242610092f212f99d49b9a4955a9d\spring-boot-starter-aop-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-jdbc\2.7.6\9db6def4ba06a11b67f0de3eac83441d00350dd6\spring-boot-starter-jdbc-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.transaction\jakarta.transaction-api\1.3.3\c4179d48720a1e87202115fbed6089bdc4195405\jakarta.transaction-api-1.3.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.persistence\jakarta.persistence-api\2.2.3\8f6ea5daedc614f07a3654a455660145286f024e\jakarta.persistence-api-2.2.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate\hibernate-core\5.6.14.Final\71e407089b71ed7c6e99385fd851c308fed7be44\hibernate-core-5.6.14.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-jpa\2.7.6\8d0414f5cca5e31509943cd5f97cacdddd7c7384\spring-data-jpa-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aspects\5.3.24\e97d36c3e516d3dd0579437428b6e26902da0c88\spring-aspects-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\2.7.6\77017e2aa78224c3fa10444d659c2ce8765b910\spring-boot-starter-json-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.7.6\d15341c0fc0b1d1362ce6c737b34679ad1f836c\spring-boot-starter-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\5.3.24\33d2187c2bf1cb2c222bd1cc18b618736babcf3d\spring-webmvc-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\5.3.24\d89bbcaabb1ff247a089875cbc4211bfe96c9a59\spring-web-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-websockets-jsr\2.2.21.Final\aff5d92a0eb4942a6167e40f329a505e0a5af138\undertow-websockets-jsr-2.2.21.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-servlet\2.2.21.Final\c2c846c9723ccfc6b3da72245a78ca7747ef0ff0\undertow-servlet-2.2.21.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.undertow\undertow-core\2.2.21.Final\fba0d0ec898ac297a455a2ad7a8f3b7cac4b757b\undertow-core-2.2.21.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.servlet\jakarta.servlet-api\4.0.4\b8a1142e04838fe54194049c6e7a18dae8f9b960\jakarta.servlet-api-4.0.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.websocket\jakarta.websocket-api\1.1.2\69c2fdfb75081cc935bc9d6c5616d12b0b73815f\jakarta.websocket-api-1.1.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\9.0.69\9c89a289c35b9ec20bdfb692a22dab87256bbe67\tomcat-embed-el-9.0.69.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context-support\5.3.24\68b4ab5e619841069ae64099d06462e578561e08\spring-context-support-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.mail\jakarta.mail\1.6.7\319df0e9d536c1a01acdfe49b6e82b97d2393073\jakarta.mail-1.6.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate.validator\hibernate-validator\6.2.5.Final\a68959c06e5f8ff45faff469aa16f232c04af620\hibernate-validator-6.2.5.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-web\5.7.5\9fb08a657ca1e0b55f34182cb6b474a0c3c4c408\spring-security-web-5.7.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-config\5.7.5\96ea115e67f1fb92c5fe2fd0173c16c3f515f79a\spring-security-config-5.7.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.24\efd01bc1048a2e1b6a7442fbd78170bc02c342b7\spring-aop-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.7.6\4ad7e89accd25c69bfe84f52202deaf09430be2\spring-boot-autoconfigure-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.7.6\f96f89eba708a591704db5dcbfc03e8822a503aa\spring-boot-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-webmvc-core\1.6.13\674e5820de9275414913a4d7a00a84f343a88e1c\springdoc-openapi-webmvc-core-1.6.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.webjars\swagger-ui\4.15.5\fc283d7a6d93c58fb466766eef4b8110c57639ea\swagger-ui-4.15.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.webjars\webjars-locator-core\0.52\f219134c6b8d4aebfea70f135b2f80dc2794253f\webjars-locator-core-0.52.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.github.classgraph\classgraph\4.8.149\4bc2f188bc9001473d4a26ac488c2ae1a3e906de\classgraph-4.8.149.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.14.0\513b8ca3fea0352ceebe4d0bbeea527ab343dc1a\jackson-databind-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test-autoconfigure\2.7.6\44a1fa836bafe21f00775c92694722a9fe95a5f5\spring-boot-test-autoconfigure-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-test\2.7.6\d4f2f397cc9351b6fc37278f482d950a3dc30157\spring-boot-test-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.jayway.jsonpath\json-path\2.7.0\f9d7d9659f2694e61142046ff8a216c047f263e8\json-path-2.7.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.xml.bind\jakarta.xml.bind-api\2.3.3\48e3b9cfc10752fba3521d6511f4165bea951801\jakarta.xml.bind-api-2.3.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.assertj\assertj-core\3.22.0\c300c0c6a24559f35fa0bd3a5472dc1edcd0111e\assertj-core-3.22.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest\2.2\1820c0968dba3a11a1b30669bb1f01978a91dedc\hamcrest-2.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter\5.9.1\9274d3757e224bc02eae367bd481062a263c150b\junit-jupiter-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-junit-jupiter\4.5.1\f81fb60bd69b3a6e5537ae23b883326f01632a61\mockito-junit-jupiter-4.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.mockito\mockito-core\4.5.1\ed456e623e5afc6f4cee3ae58144e5c45f3b3bf\mockito-core-4.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.skyscreamer\jsonassert\1.5.1\6d842d0faf4cf6725c509a5e5347d319ee0431c3\jsonassert-1.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-test\5.3.24\dcad3d7fa11fe832005667ab074a54a9546a59ac\spring-test-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.24\d095c329f30baf2b6d44eccbd2352d7a2f840c72\spring-core-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.xmlunit\xmlunit-core\2.9.0\8959725d90eecfee28acd7110e2bb8460285d876\xmlunit-core-2.9.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\jdbc\1.17.6\1510482e46f5f70909693fc695a2369751510785\jdbc-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\testcontainers\1.17.6\11b28972d2d8bddd5a7d3b6e21016fbe13bc8e8b\testcontainers-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-api\5.9.1\7bb53fbc0173e9f6a9d21d58297af94b1f2f9ce1\junit-jupiter-api-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.aspectj\aspectjweaver\1.9.7\158f5c255cd3e4408e795b79f7c3fbae9b53b7ca\aspectjweaver-1.9.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jdbc\5.3.24\909c19ab470a59b9fd23177d26b8e880733b15d4\spring-jdbc-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.zaxxer\HikariCP\4.0.3\107cbdf0db6780a065f895ae9d8fbf3bb0e1c21f\HikariCP-4.0.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hibernate.common\hibernate-commons-annotations\5.1.2.Final\e59ffdbc6ad09eeb33507b39ffcf287679a498c8\hibernate-commons-annotations-5.1.2.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.logging\jboss-logging\3.4.3.Final\c4bd7e12a745c0e7f6cf98c45cdcdf482fd827ea\jboss-logging-3.4.3.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy\1.12.18\875a9c3f29d2f6f499dfd60d76e97a343f9b1233\byte-buddy-1.12.18.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\antlr\antlr\2.7.7\83cd2cd674a217ade95a4bb83a8a14f351f48bd0\antlr-2.7.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss\jandex\2.4.2.Final\1e1c385990b258ff1a24c801e84aebbacf70eb39\jandex-2.4.2.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml\classmate\1.5.1\3fe0bed568c62df5e89f4f174c101eab25345b6c\classmate-1.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\jaxb-runtime\2.3.1\dd6dda9da676a54c5b36ca2806ff95ee017d8738\jaxb-runtime-2.3.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.24\e48634d7b8f40d4d0fe978830be0247bfc2ff2cd\spring-context-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-orm\5.3.24\256e029c2d8200294fe7fb5352ca2d1d7310dcad\spring-orm-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.data\spring-data-commons\2.7.6\e3d15a8f4d5ef0d2323569445c66903d0188cb68\spring-data-commons-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-tx\5.3.24\175a2157fce17669af6d4db1d094cb4baaa5c8fd\spring-tx-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.24\e487ea6de09b9a7c36548028feeafa511a593532\spring-beans-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.36\6c62681a2f655b49963a5983b8b0950a6120ae14\slf4j-api-1.7.36.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.14.0\6b8da24a0da4266ed7ddea7ea46594fd50900323\jackson-datatype-jdk8-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.14.0\e17e2fdc2dbbe802d953686a9aa2c5257a2b2fd1\jackson-module-parameter-names-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.14.0\171c5831341883b1cebbbf5aafba62c0fca33b95\jackson-datatype-jsr310-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.7.6\33a2d9e08d33a6a6f8051ed38daac14046e2f97c\spring-boot-starter-logging-2.7.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\1.3.5\59eb84ee0d616332ff44aba065f3888cf002cd2d\jakarta.annotation-api-1.3.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.24\ae7410418e7b4bd27a01e3fb1c2fed35b2bc1e84\spring-expression-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.xnio\xnio-api\3.8.8.Final\1ba9c8b9a8dea1c6cd656155943e6d4c2c631fa7\xnio-api-3.8.8.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.threads\jboss-threads\3.1.0.Final\9b260c0302f637a84a52d3d118214a3c59217615\jboss-threads-3.1.0.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.activation\jakarta.activation\1.2.1\8013606426a73d8ba6b568370877251e91a38b89\jakarta.activation-1.2.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.validation\jakarta.validation-api\2.0.2\5eacc6522521f7eacb081f95cee1e231648461e7\jakarta.validation-api-2.0.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-core\5.7.5\5b665c24e15d9729c851cb61fbc2676a674f9a28\spring-security-core-5.7.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springdoc\springdoc-openapi-common\1.6.13\1b409a398598dab9cd0d33461253c66251b0b7ee\springdoc-openapi-common-1.6.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.14.0\49d219171d6af643e061e9e1baaaf6a6a067918d\jackson-core-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.14.0\fb7afb3c9c8ea363a9c88ea9c0a7177cf2fbd369\jackson-annotations-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.minidev\json-smart\2.4.7\8d7f4c1530c07c54930935f3da85f48b83b3c109\json-smart-2.4.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\jakarta.activation\jakarta.activation-api\1.2.2\99f53adba383cb1bf7c3862844488574b559621f\jakarta.activation-api-1.2.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-params\5.9.1\ffcd1013edaeee112be11fcddeb38882d79238de\junit-jupiter-params-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.12.9\f58bf71d15e827fa47e9b37e63156b333e3389d3\byte-buddy-agent-1.12.9.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.vaadin.external.google\android-json\0.0.20131108.vaadin1\fa26d351fe62a6a17f5cda1287c1c6110dec413f\android-json-0.0.20131108.vaadin1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.24\2b30878663ceed2af07238dc54e92e5bf001438d\spring-jcl-5.3.24.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.testcontainers\database-commons\1.17.6\8a4cd2cda51c2cc3092b1c22f4ee8148be4db410\database-commons-1.17.6.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-api\3.2.13\5817ef8f770cb7e740d590090bf352df9491f3c1\docker-java-api-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-transport-zerodep\3.2.13\4cbc2c09d6c264767a39624066987ed4a152bc68\docker-java-transport-zerodep-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\junit\junit\4.13.2\8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12\junit-4.13.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-compress\1.22\691a8b4e6cf4248c3bc72c8b719337d5cb7359fa\commons-compress-1.22.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.rnorth.duct-tape\duct-tape\1.0.8\92edc22a9ab2f3e17c9bf700aaee377d50e8b530\duct-tape-1.0.8.jar;C:\Users\john\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\john\.m2\repository\org\junit\platform\junit-platform-commons\1.9.1\junit-platform-commons-1.9.1.jar;C:\Users\john\.m2\repository\org\apiguardian\apiguardian-api\1.1.2\apiguardian-api-1.1.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.glassfish.jaxb\txw2\2.3.1\a09d2c48d3285f206fafbffe0e50619284e92126\txw2-2.3.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.istack\istack-commons-runtime\3.0.7\c197c86ceec7318b1284bffb49b54226ca774003\istack-commons-runtime-3.0.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jvnet.staxex\stax-ex\1.8\8cc35f73da321c29973191f2cf143d29d26a1df7\stax-ex-1.8.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.sun.xml.fastinfoset\FastInfoset\1.2.15\bb7b7ec0379982b97c62cd17465cb6d9155f68e8\FastInfoset-1.2.15.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.2.11\4741689214e9d1e8408b206506cbe76d1c6a7d60\logback-classic-1.2.11.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.17.2\17dd0fae2747d9a28c67bc9534108823d2376b46\log4j-to-slf4j-2.17.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.36\ed46d81cef9c412a88caef405b58f93a678ff2ca\jul-to-slf4j-1.7.36.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.wildfly.client\wildfly-client-config\1.0.1.Final\2a803b23c40a0de0f03a90d1fd3755747bc05f4b\wildfly-client-config-1.0.1.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.wildfly.common\wildfly-common\1.5.4.Final\735ceee5616d5143bac1bc740e444697073c002f\wildfly-common-1.5.4.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-crypto\5.7.5\e6b15a29b2f20f38a026ecadd27513febec14b1b\spring-security-crypto-5.7.5.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-core\2.2.7\beb4bda3494768f94ee1b8093b6cef779ef00717\swagger-core-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.minidev\accessors-smart\2.4.7\3970cfc505e6657ca60f3aa57c849f6043000d7a\accessors-smart-2.4.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.github.docker-java\docker-java-transport\3.2.13\e9d308d1822181a9d48c99739f5eca014ec89199\docker-java-transport-3.2.13.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\net.java.dev.jna\jna\5.8.0\3551d8d827e54858214107541d3aff9c615cb615\jna-5.8.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\17.0.0\8ceead41f4e71821919dbdb7a9847608f1a938cb\annotations-17.0.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.2.11\a01230df5ca5c34540cdaa3ad5efb012f1f1f792\logback-core-1.2.11.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.2\f42d6afa111b4dec5d2aea0fe2197240749a4ea6\log4j-api-2.17.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-models\2.2.7\1c80e5a617c0a27a137a57d033bbf748ac7d58b9\swagger-models-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.dataformat\jackson-dataformat-yaml\2.14.0\6c635ef06d3e4e72a7e9868da41ffa1a0f98d28\jackson-dataformat-yaml-2.14.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-lang3\3.12.0\c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e\commons-lang3-3.12.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\io.swagger.core.v3\swagger-annotations\2.2.7\9a630bca8950bde1a541af873aa6050851a31e72\swagger-annotations-2.2.7.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.ow2.asm\asm\9.1\a99500cf6eea30535eeac6be73899d048f8d12a8\asm-9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.liquibase\liquibase-core\4.17.2\fcc477e2ad657843424aef37d2ae86fba8804431\liquibase-core-4.17.2.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.postgresql\postgresql\42.5.1\ac2f61eb3b1b4e47ea45de47e73d2e92f49e3ce1\postgresql-42.5.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\javax.xml.bind\jaxb-api\2.3.1\8531ad5ac454cc2deb9d4d32c40c4d7451939b5d\jaxb-api-2.3.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\com.opencsv\opencsv\5.7.1\d707c095bc8c7c22fb3e377de774458a76229da4\opencsv-5.7.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.checkerframework\checker-qual\3.5.0\2f50520c8abea66fbd8d26e481d3aef5c673b510\checker-qual-3.5.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.jboss.xnio\xnio-nio\3.8.8.Final\a5d2faf8d02e0a0bb9e9eabca8e38173cb640331\xnio-nio-3.8.8.Final.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\javax.activation\javax.activation-api\1.2.0\85262acf3ca9816f9537ca47d5adeabaead7cb16\javax.activation-api-1.2.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-text\1.10.0\3363381aef8cef2dbc1023b3e3a9433b08b64e01\commons-text-1.10.0.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-collections4\4.4\62ebe7544cb7164d87e0637a2a6a2bdc981395e8\commons-collections4-4.4.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.junit.jupiter\junit-jupiter-engine\5.9.1\1bf771097bde296c3ab174861954e8aafaaf2e94\junit-jupiter-engine-5.9.1.jar;C:\Users\john\.gradle\caches\modules-2\files-2.1\org.objenesis\objenesis\3.2\7fadf57620c8b8abdf7519533e5527367cb51f09\objenesis-3.2.jar;C:\Users\john\.m2\repository\org\junit\platform\junit-platform-engine\1.9.1\junit-platform-engine-1.9.1.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit5 com.finnova.signova.TestJsonNullable
10:59:12.672 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Log4j2LoggerProvider
10:59:12.674 [main] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.5.Final
10:59:12.685 [main] DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser - Trying to load META-INF/validation.xml for XML based Validator configuration.
10:59:12.685 [main] DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via TCCL
10:59:12.686 [main] DEBUG org.hibernate.validator.internal.xml.config.ResourceLoaderHelper - Trying to load META-INF/validation.xml via Hibernate Validator's class loader
10:59:12.686 [main] DEBUG org.hibernate.validator.internal.xml.config.ValidationXmlParser - No META-INF/validation.xml found. Using annotation based configuration only.
10:59:12.691 [main] DEBUG org.hibernate.validator.internal.engine.resolver.TraversableResolvers - Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver
10:59:12.692 [main] DEBUG org.hibernate.validator.internal.engine.resolver.TraversableResolvers - Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.
10:59:12.709 [main] DEBUG org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
10:59:12.782 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000252: Using org.hibernate.validator.internal.engine.DefaultPropertyNodeNameProvider as property node name provider.
10:59:12.787 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator.
10:59:12.787 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver.
10:59:12.787 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
10:59:12.787 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
10:59:12.787 [main] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryConfigurationHelper - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.
10:59:12.853 [main] DEBUG org.hibernate.validator.resourceloading.PlatformResourceBundleLocator - ValidationMessages not found.
10:59:12.854 [main] DEBUG org.hibernate.validator.resourceloading.PlatformResourceBundleLocator - ContributorValidationMessages not found.
10:59:12.856 [main] DEBUG org.hibernate.validator.resourceloading.PlatformResourceBundleLocator - org.hibernate.validator.ValidationMessages found.

Process finished with exit code 0
bduisenov commented 1 year ago

as a quick fix you could:

  1. Create JsonNullableValueExtractor with Jakarta imports
    
    package com.some.package;

import jakarta.validation.valueextraction.ExtractedValue; import jakarta.validation.valueextraction.UnwrapByDefault; import jakarta.validation.valueextraction.ValueExtractor; import org.openapitools.jackson.nullable.JsonNullable;

@UnwrapByDefault public class JsonNullableValueExtractor implements ValueExtractor<JsonNullable<@ExtractedValue ?>> {

@Override
public void extractValues(JsonNullable<?> originalValue, ValueReceiver receiver) {
    if (originalValue.isPresent()) {
        receiver.value(null, originalValue.get());
    }
}

}

2. create a file under `META-INF/services/jakarta.validation.valueextraction.ValueExtractor` containing a path to Jakarta version of JsonNullableValueExtractor

com.some.package.JsonNullableValueExtractor

bratkartoffel commented 1 year ago

Thanks for the workaround, works like a charm.