最近一个项目中使用到了MINA2.0作为通讯框架。
源代码中使用到了IoFilter类的init和destory方法初始化和销毁公共资源。
MINA中的源码和注释如下:
于是我使用了ReferenceCountingFilter类来包装自定义的类。
结果出现了当建立两个或者两个以上会话后断开一个会话destroy()方法就被调用了。而后无论如何都不会调用init()方法。
将 if (0 == count) {
filter.init();
++count;
}
改成if (0 == count) {
filter.init();
}
++count;
然后将源码重新打包放上去测试,嗯,结果...你懂的!