RejectedExecutionException and exit
- Dominant language
- Kotlin
- Stars
- 14.5k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 49
Description
want: **staticFiles** + **ResponseBodyReadyForSend** to display 404 page
Http:
```
staticFiles("/", File(someDir))
```
ApplicationMonitoringPlugin:
```
on(ResponseBodyReadyForSend) { call, content ->
val status = content.status ?: call.response.status()
if (status == HttpStatusCode.NotFound) {
call.respondText("some Html",ContentType.Text.Html, HttpStatusCode.OK);
return@on
}
}
```
The function has been realized and the page is displaying normally. Constantly refreshing the 404 page, and then suddenly reporting an error and crashing:
```
2025-07-20 23:33:16.704 24657-24758 AbstractEventExecutor com.example.projectname W A task raised an exception. Task: io.netty.channel.AbstractChannel$AbstractUnsafe$8@518481b
java.util.concurrent.RejectedExecutionException: event executor terminated
at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:1005)
at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:388)
at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:381)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:907)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:873)
at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:863)
at io.netty.channel.DefaultChannelPipeline.destroyUp(DefaultChannelPipeline.java:816)
at io.netty.channel.DefaultChannelPipeline.destroy(DefaultChannelPipeline.java:801)
at io.netty.channel.DefaultChannelPipeline.access$700(DefaultChannelPipeline.java:45)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelUnregistered(DefaultChannelPipeline.java:1411)
at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:780)
at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:692)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:182)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:1012)
```
Contributor guide
Research direction
Start by reproducing the crash with staticFiles and the ApplicationMonitoringPlugin handler for ResponseBodyReadyForSend while repeatedly requesting a missing file. Trace the 404 response and subsequent channel shutdown around these entry points and the reported RejectedExecutionException. Done means the custom 404 page continues to work without the event executor rejection or application crash.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100