java.util.ConcurrentModificationException随Apache Tomee Plus 7.1.2的发布启动ear文件

java.util.ConcurrentModificationException随Apache Tomee Plus 7.1.2的发布启动ear文件,java,tomee-7,Java,Tomee 7,随着ApacheTome Plus 7.1.2的发布,我们的应用程序并没有启动。它从7.1.1开始。我在org.apache.openejb.assembler.classic.assembler.createApplication方法的第829行中将其缩小为代码更改。似乎只有在application.xml中定义了多个web模块时才会发生这种情况。我找不到任何文件说明为什么要引入这个 for (Map.Entry entry : appContext.getProperties().entr

随着ApacheTome Plus 7.1.2的发布,我们的应用程序并没有启动。它从7.1.1开始。我在org.apache.openejb.assembler.classic.assembler.createApplication方法的第829行中将其缩小为代码更改。似乎只有在application.xml中定义了多个web模块时才会发生这种情况。我找不到任何文件说明为什么要引入这个

 for (Map.Entry entry : appContext.getProperties().entrySet()) {
      if (Module.class.isInstance(entry.getValue())) {
        appContext.getProperties().remove(entry.getKey());
      }
    }
需要注意的一点是,如果我将openejb core jar的7.1.1版本放在一起,错误就会消失。这是stacktrace

org.apache.openejb.OpenEJBException: Creating application failed: C:\apps\apache-tomee-plus-7.1.2\apps\ourApplication: null
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1101)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:755)
        at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:633)
        at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:485)
        at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
        at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
        at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
        at org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:137)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
    Caused by: java.util.ConcurrentModificationException
        at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:719)
        at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:752)
        at java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:750)
        at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042)
        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:829)
        ... 18 more
org.apache.openejb.OpenEJBException:创建应用程序失败:C:\apps\apache-tomee-plus-7.1.2\apps\ourApplication:null
位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:1101)
位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:755)
位于org.apache.openejb.assembler.classic.assembler.buildContainerSystem(assembler.java:633)
位于org.apache.openejb.assembler.classic.assembler.build(assembler.java:485)
位于org.apache.openejb.openejb$Instance。(openejb.java:150)
位于org.apache.openejb.openejb.init(openejb.java:307)
位于org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:247)
位于org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:168)
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
位于org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
位于org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:137)
位于org.apache.catalina.startup.catalina.load(catalina.java:639)
位于org.apache.catalina.startup.catalina.load(catalina.java:662)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:303)
位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
原因:java.util.ConcurrentModificationException
位于java.util.LinkedHashMap$LinkedHashInterator.nextNode(LinkedHashMap.java:719)
在java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:752)
在java.util.LinkedHashMap$LinkedEntryIterator.next(LinkedHashMap.java:750)
位于java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042)
位于org.apache.openejb.assembler.classic.assembler.createApplication(assembler.java:829)
... 还有18个

我认为对Tomcat提出一个bug似乎更合适。这确实违反了迭代器(在某些地图上)的约定。谢谢searchengine27。我确实在openejb模块中输入了一个bug,但它没有引起任何注意。希望有一些配置解决方法或者其他人可能知道的东西。再次感谢。