Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在EclipseMF中使用抽象迭代器时出现空指针异常_Java_Eclipse_Multithreading_Eclipse Emf - Fatal编程技术网

Java 在EclipseMF中使用抽象迭代器时出现空指针异常

Java 在EclipseMF中使用抽象迭代器时出现空指针异常,java,eclipse,multithreading,eclipse-emf,Java,Eclipse,Multithreading,Eclipse Emf,我正在努力使多线程应用程序与EMF模型一起工作。问题在于,出于某种原因,以下代码在next时引发未处理的NullPointerException: 这个问题只会在并发访问EMF资源的多线程应用程序中出现。我通过wait/notify保护函数添加了线程同步,但仍然收到相同的错误 你们有没有遇到过类似的问题?你知道什么是EMF函数集是线程安全的,什么不是线程安全的吗 提前感谢您的帮助 我找到了错误:当使用eAllContents进行迭代时,EMF不检查并发修改;然而,在这种情况下,我有一个。这一事实

我正在努力使多线程应用程序与EMF模型一起工作。问题在于,出于某种原因,以下代码在next时引发未处理的NullPointerException:

这个问题只会在并发访问EMF资源的多线程应用程序中出现。我通过wait/notify保护函数添加了线程同步,但仍然收到相同的错误

你们有没有遇到过类似的问题?你知道什么是EMF函数集是线程安全的,什么不是线程安全的吗


提前感谢您的帮助

我找到了错误:当使用eAllContents进行迭代时,EMF不检查并发修改;然而,在这种情况下,我有一个。这一事实导致了对迭代器本身的修改,从而导致了NullPointerException


因此,似乎不应在多线程应用程序中使用eAllContents函数。相反,应该通过每个电子课堂的实际属性访问模型元素,以避免此问题。

您需要给我们一个我们自己可以看到的测试。或者至少是更多的上下文。你可能应该把你自己找到的解决方案作为答案而不是编辑。这是允许的。目前,这个问题被列在未回答项下,这并不反映现实情况。
TreeIterator<EObject> i = myEObject.eAllContents();
if (i.hasNext()) {
    EObject o = i.next();
    // Process o...
}