Android - Netty - RejectedExecutionException

时间:2015-03-17 21:17:44

标签: netty nio

我回答了一个棘手的问题。

我已经为我们的Android项目编写了一个netty服务器,但有时,当我尝试向连接的客户端发送内容时,我收到了RejectedExecutionException。

  

03-17 22:07:49.938 21708-22346 / htlhallein.at.serverdatenbrille_rewritten E / AndroidRuntime:FATAL EXCEPTION:Thread-9824       过程:htlhallein.at.serverdatenbrille_rewritten,PID:21708       java.util.concurrent.RejectedExecutionException:事件执行程序终止               at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:707)               at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:299)               at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:690)               at io.netty.channel.AbstractChannel $ AbstractUnsafe.register(AbstractChannel.java:421)               at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:60)               at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:48)               at io.netty.channel.MultithreadEventLoopGroup.register(MultithreadEventLoopGroup.java:64)               at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:315)               at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:271)               at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:267)               在io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:242)               at htlhallein.at.serverdatenbrille_rewritten.server.DatenbrillenServer $ Server.run(DatenbrillenServer.java:172)               在java.lang.Thread.run(Thread.java:841)

我不确定应该选哪个Event Executor? 运行服务器后,Exception会触发一行。 (Log.d(DatenbrillenServer.class.toString(),"停止服务器......");)

有没有人有想法,为什么会这样?

非常感谢!

1 个答案:

答案 0 :(得分:1)

当您在调用shutdownGracefully()后尝试执行IO时会发生这种情况。在调用之前确保已完成所有IO