Closed hrothwell closed 6 months ago
error output from trying to run CommandsTest
locally (just the first test output included, all are pretty much the same as controller can't seem to spin up):
13:27:03.506 [main] INFO i.m.c.DefaultApplicationContext$RuntimeConfiguredEnvironment - Established active environments: [test]
13:27:04.233 [main] DEBUG reactor.util.Loggers - Using Slf4j logging framework
13:27:04.433 [default-nioEventLoopGroup-1-3] ERROR i.m.http.server.RouteExecutor - Unexpected error occurred: Error instantiating bean of type [com.slack.api.bolt.micronaut.SlackAppController]
Message: 'java.lang.Object io.micronaut.context.DefaultBeanContext.getProxyTargetBean(io.micronaut.context.BeanResolutionContext, io.micronaut.inject.BeanDefinition, io.micronaut.core.type.Argument, io.micronaut.context.Qualifier)'
Path Taken: new SlackAppController(App slackApp,SlackAppMicronautAdapter adapter) --> new SlackAppController([App slackApp],SlackAppMicronautAdapter adapter)
io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type [com.slack.api.bolt.micronaut.SlackAppController]
Message: 'java.lang.Object io.micronaut.context.DefaultBeanContext.getProxyTargetBean(io.micronaut.context.BeanResolutionContext, io.micronaut.inject.BeanDefinition, io.micronaut.core.type.Argument, io.micronaut.context.Qualifier)'
Path Taken: new SlackAppController(App slackApp,SlackAppMicronautAdapter adapter) --> new SlackAppController([App slackApp],SlackAppMicronautAdapter adapter)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2324)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2279)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2291)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3054)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:2956)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2917)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2730)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1729)
at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:89)
at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2165)
at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1328)
at com.slack.api.bolt.micronaut.$SlackAppController$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2309)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2279)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2291)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3054)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:2956)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2917)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2891)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1695)
at io.micronaut.context.DefaultBeanContext$BeanContextExecutionHandle.getTarget(DefaultBeanContext.java:4247)
at io.micronaut.context.DefaultBeanContext$BeanContextUnsafeExecutionHandle.invokeUnsafe(DefaultBeanContext.java:4214)
at io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:271)
at io.micronaut.http.server.RouteExecutor.executeRouteAndConvertBody(RouteExecutor.java:488)
at io.micronaut.http.server.RouteExecutor.callRoute(RouteExecutor.java:478)
at io.micronaut.http.server.RequestLifecycle.callRoute(RequestLifecycle.java:201)
at io.micronaut.http.server.RequestLifecycle.executeRoute(RequestLifecycle.java:191)
at io.micronaut.http.server.RequestLifecycle.lambda$normalFlow$1(RequestLifecycle.java:181)
at io.micronaut.http.filter.FilterRunner.run(FilterRunner.java:155)
at io.micronaut.http.filter.FilterRunner.run(FilterRunner.java:135)
at io.micronaut.http.server.RequestLifecycle.runWithFilters(RequestLifecycle.java:357)
at io.micronaut.http.server.RequestLifecycle.normalFlow(RequestLifecycle.java:181)
at io.micronaut.http.server.netty.NettyRequestLifecycle.handleNormal(NettyRequestLifecycle.java:88)
at io.micronaut.http.server.netty.RoutingInBoundHandler.accept(RoutingInBoundHandler.java:227)
at io.micronaut.http.server.netty.websocket.NettyServerWebSocketUpgradeHandler.accept(NettyServerWebSocketUpgradeHandler.java:156)
at io.micronaut.http.server.netty.handler.PipeliningServerHandler$OptimisticBufferingInboundHandler.read(PipeliningServerHandler.java:474)
at io.micronaut.http.server.netty.handler.PipeliningServerHandler.channelRead(PipeliningServerHandler.java:213)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.channelRead(WebSocketServerExtensionHandler.java:88)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NoSuchMethodError: 'java.lang.Object io.micronaut.context.DefaultBeanContext.getProxyTargetBean(io.micronaut.context.BeanResolutionContext, io.micronaut.inject.BeanDefinition, io.micronaut.core.type.Argument, io.micronaut.context.Qualifier)'
at test_locally.app.$CommandsTest$MockSlackAppConfig0$Definition$Intercepted.interceptedTarget(Unknown Source)
at test_locally.app.$CommandsTest$MockSlackAppConfig0$Definition$Intercepted.getSlack(Unknown Source)
at com.slack.api.bolt.App.<init>(App.java:447)
at com.slack.api.bolt.App.<init>(App.java:442)
at example.app.AppFactory.createApp(AppFactory.java:38)
at example.app.$AppFactory$CreateApp1$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2309)
... 70 common frames omitted
io.micronaut.http.client.exceptions.HttpClientResponseException: Internal Server Error
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.makeErrorFromRequestBody(DefaultHttpClient.java:2259)
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.forwardResponseToPromise(DefaultHttpClient.java:2210)
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.channelReadInstrumented(DefaultHttpClient.java:2179)
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.channelReadInstrumented(DefaultHttpClient.java:2147)
at io.micronaut.http.client.netty.SimpleChannelInboundHandlerInstrumented.channelRead0(SimpleChannelInboundHandlerInstrumented.java:46)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at io.micronaut.http.client.netty.ResettableReadTimeoutHandler$NextInterceptor.channelRead(ResettableReadTimeoutHandler.java:92)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:289)
at io.micronaut.http.client.netty.ResettableReadTimeoutHandler.channelRead(ResettableReadTimeoutHandler.java:64)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:833)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:103)
at reactor.core.publisher.Flux.blockFirst(Flux.java:2704)
at io.micronaut.http.client.netty.DefaultHttpClient$1.exchange(DefaultHttpClient.java:571)
at io.micronaut.http.client.BlockingHttpClient.exchange(BlockingHttpClient.java:77)
at io.micronaut.http.client.BlockingHttpClient.exchange(BlockingHttpClient.java:106)
at test_locally.app.CommandsTest.regexp_matching(CommandsTest.java:130)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at io.micronaut.test.extensions.junit5.MicronautJunit5Extension$2.proceed(MicronautJunit5Extension.java:142)
at io.micronaut.test.extensions.AbstractMicronautExtension.interceptEach(AbstractMicronautExtension.java:157)
at io.micronaut.test.extensions.AbstractMicronautExtension.interceptTest(AbstractMicronautExtension.java:114)
at io.micronaut.test.extensions.junit5.MicronautJunit5Extension.interceptTestMethod(MicronautJunit5Extension.java:129)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Based on this error it seems like it is something with the generated micronaut classes, which could be misconfigured local env, wrong jdk / maven project setup for MN 4, etc. I followed most of Micronaut's upgrade notes and some of my own changes from other apps I have migrated, but still getting this failure locally
@seratch thanks for the feedback, I'm hoping to be able to look into the test failures more at some point but I don't have an exact idea when.
Do you know of a way that I can verify that maven is compiling the project module to the correct target jdk - jdk 17? I have updated several Micronaut projects before but I've always used gradle, so I am less familiar with maven. Since Micronaut 4 requires jdk 17 that tends to be one of the first things I try to fix/diagnose but I am unsure of how to really tell if I am setting up the pom.xml
right at the moment.
seems that the existing workflows do not like the target being jdk 17 now for this module
Ah, yeah that’s right. It’s totally fine to adjust the GitHub Actions job to run tests for this module with jdk 17 and skip it for 1.8 and 14. If you’re fine to make the changes, it’d be appreciated. Otherwise, I can work on it once I am back from PTOs next week.
Ah, yeah that’s right. It’s totally fine to adjust the GitHub Actions job to run tests for this module with jdk 17 and skip it for 1.8 and 14. If you’re fine to make the changes, it’d be appreciated. Otherwise, I can work on it once I am back from PTOs next week.
I should be able to, my week doesn't seem like it will be too busy for me and shouldn't take very long. Probably won't be tonight though. Enjoy your PTO!
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 74.65%. Comparing base (
9b48c3d
) to head (734749c
).:exclamation: Current head 734749c differs from pull request most recent head 835d9bb. Consider uploading reports for the commit 835d9bb to get more accurate results
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@hrothwell Thank you so much for taking your time on this! Your changes has been merged and we will release a new minor version including it shortly!
(Describe the goal of this PR. Mention any related Issue numbers)
Resolving #1252 and #892
I am not very familiar with maven so unsure if test failures right now are due to Micronaut issues, compiling issues with maven / wrong jdk (MN 4 requires jdk 17), etc. Opening as draft because of this and will try to continue looking into how to get the tests all running correctly.
Update
2024-03-28T22:42:37+00:00
- Initial test issues inbolt-micronaut
were resolved, not exactly sure on the issue that was present but removing a@MockBean
that was not actually returning a mock seemed to have fixed it. Since Micronaut 4 requires JDK 17, a JDK 17 build workflow was created. Since some other test modules had issues on JDK 17, created JDK 17 profile to apply maven surefire arguments to resolve those test issues which I believe would also resolve #892Category (place an
x
in each of the[ ]
)Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you agree to those rules.