jackson-modules-base
jackson-modules-base copied to clipboard
Unable to use Blackbird with Micronaut
It's impossible to use the Blackbird module with Micronaut, it generates an exception.
The Micronaut team reports the issue may be inside Jackson itself, see https://github.com/micronaut-projects/micronaut-core/issues/11253
Reference stacktrace:
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [io.micronaut.http.server.RouteExecutor]
Path Taken:
@i.m.c.a.Primary @j.i.Singleton i.m.h.s.n.NettyEmbeddedServer i.m.h.s.n.DefaultNettyEmbeddedServerFactory.buildDefaultServer#buildDefaultServer(NettyHttpServerConfiguration configuration)
\---> new i.m.h.s.n.DefaultNettyEmbeddedServerFactory(ApplicationContext applicationContext, [RouteExecutor routeExecutor], MediaTypeCodecRegistry mediaTypeCodecRegistry, MessageBodyHandlerRegistry messageBodyHandlerRegistry, StaticResourceResolver staticResourceResolver, @Named("netty") ThreadFactory nettyThreadFactory, HttpCompressionStrategy httpCompressionStrategy, EventLoopGroupFactory eventLoopGroupFactory, EventLoopGroupRegistry eventLoopGroupRegistry, WebSocketUpgradeHandlerFactory webSocketUpgradeHandlerFactory)
\---> new @j.i.Singleton i.m.h.s.RouteExecutor([Router router], BeanContext beanContext, RequestArgumentSatisfier requestArgumentSatisfier, HttpServerConfiguration serverConfiguration, ErrorResponseProcessor<Object> errorResponseProcessor, ExecutorSelector executorSelector)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2352)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3150)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3000)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2762)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1781)
at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2130)
at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1360)
at io.micronaut.http.server.$RouteExecutor$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2337)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3150)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3000)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2762)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1781)
at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:210)
at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2130)
at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1360)
at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2337)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3150)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3000)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2762)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1781)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1763)
at io.micronaut.http.server.netty.$DefaultNettyEmbeddedServerFactory$BuildDefaultServer0$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2337)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3150)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:3000)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2762)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1844)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:1819)
at io.micronaut.context.DefaultBeanContext.findBean(DefaultBeanContext.java:871)
at io.micronaut.context.BeanLocator.findBean(BeanLocator.java:410)
at io.kestra.cli.AbstractCommand.startWebserver(AbstractCommand.java:201)
at io.kestra.cli.AbstractCommand.call(AbstractCommand.java:107)
at io.kestra.cli.commands.servers.AbstractServerCommand.call(AbstractServerCommand.java:15)
at io.kestra.cli.commands.servers.StandAloneCommand.call(StandAloneCommand.java:100)
at io.kestra.cli.commands.servers.StandAloneCommand.call(StandAloneCommand.java:24)
at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
at picocli.CommandLine.execute(CommandLine.java:2174)
at io.kestra.cli.App.execute(App.java:71)
at io.kestra.ee.cli.App.main(App.java:26)
Caused by: java.lang.UnsupportedOperationException
at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)
at java.base/java.util.ImmutableCollections$ListItr.set(ImmutableCollections.java:426)
at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.createProperty(BBSerializerModifier.java:155)
at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.lambda$findProperties$0(BBSerializerModifier.java:69)
Caused by: java.lang.UnsupportedOperationException
at com.fasterxml.jackson.module.blackbird.util.Unchecked.lambda$runnable$0(Unchecked.java:31)
at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.findProperties(BBSerializerModifier.java:70)
at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.changeProperties(BBSerializerModifier.java:54)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanOrAddOnSerializer(BeanSerializerFactory.java:418)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanOrAddOnSerializer(BeanSerializerFactory.java:292)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:237)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:171)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1554)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1522)
at com.fasterxml.jackson.databind.SerializerProvider.findContentValueSerializer(SerializerProvider.java:794)
at com.fasterxml.jackson.databind.ser.std.AsArraySerializerBase.createContextual(AsArraySerializerBase.java:206)
at com.fasterxml.jackson.databind.SerializerProvider.handleSecondaryContextualization(SerializerProvider.java:1156)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:638)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:914)
at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.forRootType(ObjectWriter.java:1551)
at com.fasterxml.jackson.databind.ObjectWriter.<init>(ObjectWriter.java:116)
at com.fasterxml.jackson.databind.ObjectMapper._newWriter(ObjectMapper.java:841)
at com.fasterxml.jackson.databind.ObjectMapper.writerFor(ObjectMapper.java:4281)
at io.micronaut.jackson.databind.JacksonDatabindMapper.createWriter(JacksonDatabindMapper.java:168)
at io.micronaut.jackson.databind.JacksonDatabindMapper.<init>(JacksonDatabindMapper.java:114)
at io.micronaut.jackson.databind.JacksonDatabindMapper.createSpecific(JacksonDatabindMapper.java:132)
at io.micronaut.json.body.JsonMessageHandler.createSpecific(JsonMessageHandler.java:102)
at io.micronaut.http.netty.body.NettyJsonHandler.createSpecific(NettyJsonHandler.java:142)
at io.micronaut.web.router.DefaultRouteInfo.lambda$new$0(DefaultRouteInfo.java:98)
at java.base/java.util.Optional.map(Optional.java:260)
at io.micronaut.web.router.DefaultRouteInfo.<init>(DefaultRouteInfo.java:98)
at io.micronaut.web.router.DefaultMethodBasedRouteInfo.<init>(DefaultMethodBasedRouteInfo.java:75)
at io.micronaut.web.router.DefaultRequestMatcher.<init>(DefaultRequestMatcher.java:51)
at io.micronaut.web.router.DefaultUrlRouteInfo.<init>(DefaultUrlRouteInfo.java:76)
at io.micronaut.web.router.DefaultRouteBuilder$DefaultUriRoute.toRouteInfo(DefaultRouteBuilder.java:872)
at io.micronaut.web.router.DefaultRouter.<init>(DefaultRouter.java:111)
at io.kestra.webserver.rooting.TenantAliasingRooter.<init>(TenantAliasingRooter.java:30)
at io.kestra.ee.webserver.rooting.TenantAliasingRooterEE.<init>(TenantAliasingRooterEE.java:21)
at io.kestra.ee.webserver.rooting.$TenantAliasingRooterEE$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2337)
... 51 more