首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WARN:oejuc.AbstractLifeCycle:FAILED?

WARN:oejuc.AbstractLifeCycle:FAILED?
EN

Stack Overflow用户
提问于 2014-05-11 13:42:31
回答 1查看 2.4K关注 0票数 3

我正在用MATLAB编写COMSOL (一个物理模拟软件)的脚本。我的循环相当大,运行了8000次模拟。我遇到了以下问题。

代码语言:javascript
复制
>> fig2b
Error using fig2b (line 17)
Java exception occurred:
java.lang.NullPointerException
    at com.comsol.clientapi.engine.APIEngine.runMethod(Unknown Source)
    at com.comsol.clientapi.engine.APIEngine.runMethod(Unknown Source)
    at com.comsol.clientapi.impl.SolverSequenceClient.runAll(Unknown Source)

2014-05-10 22:18:37.692:WARN:oejuc.AbstractLifeCycle:FAILED qtp633622505{8<=5<=6/254,5}: java.lang.InterruptedException: sleep interrupted
java.lang.InterruptedException: sleep interrupted
    at java.lang.Thread.sleep(Native Method)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.doStop(QueuedThreadPool.java:139)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStop(AggregateLifeCycle.java:107)
    at org.eclipse.jetty.websocket.WebSocketClientFactory.doStop(WebSocketClientFactory.java:221)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at com.comsol.client.interfaces.v.onClose(Unknown Source)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.closeIn(WebSocketConnectionRFC6455.java:332)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.handle(WebSocketConnectionRFC6455.java:257)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Unknown Source)
2014-05-10 22:18:37.693:WARN:oejuc.AbstractLifeCycle:FAILED org.eclipse.jetty.websocket.WebSocketClientFactory@4af2aad3: java.lang.InterruptedException: sleep interrupted
java.lang.InterruptedException: sleep interrupted
    at java.lang.Thread.sleep(Native Method)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.doStop(QueuedThreadPool.java:139)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStop(AggregateLifeCycle.java:107)
    at org.eclipse.jetty.websocket.WebSocketClientFactory.doStop(WebSocketClientFactory.java:221)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at com.comsol.client.interfaces.v.onClose(Unknown Source)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.closeIn(WebSocketConnectionRFC6455.java:332)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.handle(WebSocketConnectionRFC6455.java:257)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Unknown Source)

看到2014-05-10 22:18:37.692:WARN:oejuc.AbstractLifeCycle:FAILED qtp633622505{8<=5<=6/254,5}:这条线,我想这是由于一次运行了太多的模拟所造成的。因此,我尝试在4次运行中分别运行8000次模拟,每次运行包含2000次模拟。然后,有时运行是成功的,但有时运行失败的一半与相同的错误!使我感到困惑的是,我没有接触到代码后,它失败了。然后,我重新运行它,它工作!

根据上面的观察,我认为这与COMSOL无关,而是与java或jetty或其他相关。专家们能给我一些可能的解决办法或原因吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-15 11:57:26

我看到你要求解决或原因,我不知道原因,但我可能有解决办法。

根据我的经验,这些java错误通常发生在以下情况之一:

  1. 运行需要很长时间执行的代码
  2. 同时使用多个matlab实例
  3. 使用不太流行的图形工具(如visdiff)

以下是我发现有用的解决方案:

1.忽略错误:这听起来可能很奇怪,但特别是在进行长时间计算时,Java通常是用红色打印的,而不会中断代码。基本上,在这种情况下,等待代码完成并保存其结果是我的首选解决方案。但是,一旦您开始使用UI单击或键入,红色文本可能会变得非常烦人,所以在运行完成后,我通常会重新启动matlab。

2.重新启动Matlab:当我没有运行一些东西时,这个问题很少发生。在这种情况下,我通常只是重新启动,这通常足以使错误消失。

禁用3.禁用:虽然我还没有为这些错误感到足够的麻烦,但不使用当然可以使用它。这可以通过调用带有-nojvm标志的matlab来实现。如果禁用java,则应防止任何java错误。如果它们还会发生,问题可能是在您调用的外部程序中。

4.捕获错误:还没有为Java尝试过这种方法,但是它可能会工作。通常,任何打断matlab代码的内容都应该被捕获为错误。您可以在最重要的循环中放置一个try - catch块,并且可以在错误的情况下工作。然而,这确实是一项令人绝望的措施,应该被视为最后的手段。

结论

如果您有与我相同的错误类型,并且两次运行相同的代码并不会重现它们,那么只需考虑它们是一个可以忽略的警告。毕竟,java只用于UI,而不是用于计算。但是,如果您真的被它们困住了,那么可能是时候向mathworks发送支持请求了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23593335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档