java.lang.IllegalMonitorStateException

来源:互联网 发布:淘宝助理导出csv出错 编辑:程序博客网 时间:2024/05/01 16:22

当前线程等待timeout时间出现一次

暂时把  Thread.currentThread().wait(timeout); 改成this.wait(timeout),效果暂时有待考证

public class MultipleGoodsPriceChangedMessageHandlerImpl implements Job,
        JMSMessageHandler {}

MultipleGoodsPriceChangedMessageHandlerImpl中的代码

    logger.debug("全量索引当中,实时索引开始等待...等待时间" + timeout);
98                    Thread.currentThread().wait(timeout);
                    logger.debug("全量索引当中,实时索引结束等待...");

改成正阳可以啦

    synchronized(this){
                        this.wait(timeout);
                    }


java.lang.IllegalMonitorStateException

     [java]     at java.lang.Object.wait(Native Method)
     [java]     at com.xiu.search.good.integration.MultipleGoodsPriceChangedMessageHandlerImpl.onMessage(MultipleGoodsPriceChangedMessageHandlerImpl.java:98)
     [java]     at com.xiu.search.jms.PriceMessageListener.onMessage(PriceMessageListener.java:40)
     [java]     at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230)
     [java]     at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
     [java]     at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
     [java]     at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127)
     [java]     at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
     [java]     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     [java]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     [java]     at java.lang.Thread.run(Thread.java:619)