免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1319 | 回复: 0
打印 上一主题 下一主题

[JBPM] CommandExecutorThread的ThreadDeath问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-23 16:14 |只看该作者 |倒序浏览


[JBPM] CommandExecutorThread的ThreadDeath问题

ERROR [CommandExecutorThread] org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: java.lang.ThreadDeath

jbpm 的 CommandExecutorThread线程在web应用重启部署后(不是服务器的重启),前一个应用的线程并没有停止,而变成了没有引用的"野"线程.线程继续运行的时候就会报ThreadDeath的异常.

解决方法:
1.修改org.jbpm.msg.command.CommandExecutorThread
添加控制线程执行的变量:
private boolean keepRunning = true;
/**
  * @return Returns the keepRunning.
  */
public boolean isKeepRunning()
{
  return keepRunning;
}
/**
  * @param keepRunning The keepRunning to set.
  */
public void setKeepRunning(boolean keepRunning)
{
  this.keepRunning = keepRunning;
}
修改run方法:
修改前
==========================================
public void run()
{
  // while not interrupted...
  try
  {
   while (true)
   {
修改后
==========================================
public void run()
{
  // while not interrupted...
  try
  {
   while (keepRunning)
   {
2.在servlet中启动线程时,或直接启动线程,应当应用undeploy的时候停止线程.[重启应用服务器就不用关心了:)]
如果在servlet中:
public void destroy()
{
  schedulerThread.setKeepRunning(false);
  commandExecutorThread.setKeepRunning(false);
  
  super.destroy();
}

OK,everything is in order:)


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13917/showart_77688.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP