问题描述
由于org.apache.Felix.log.LogEntryImpl对象在其m_entriesToDeliver arrayList中积累,我目前在org.apache.Felix.log.LogListenerThread类中遇到内存不足的问题。
我查看了该类的源代码,而我能看到的唯一原因是:
1。线程停止了,
2。while循环条件(while(!isInterrupted()))触发了循环中断,
- listener.logged(entry);出于某种原因,将条目传递给侦听器会阻塞线程,
4.scheduler正在使线程处于饥饿状态,而没有给它足够的时间来运行和清除阵列。
** 3。我对所有侦听器都遵循了listener.logged(entry)调用,但没有看到此调用将被阻止的任何锁或原因,因此我消除了这种可能性。
这不是问题,直到我们从Felix框架4.2.1升级到6.0.3
- 更改了LogService弃用的log()调用,我们必须检索org.osgi.service.log.Logger实例,并改用.warn()、. error()等方法调用。
- 更改了属性:org.apache.Felix.log.maxSize = 0
附加上heapdump的图像,我无法附加转储本身,因为其中包含私有公司数据,因此无法在公共论坛上共享。
有人知道这是什么原因吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)