You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Richard Zowalla (Jira)" <ji...@apache.org> on 2026/09/25 19:08:00 UTC

[jira] [Closed] (TOMEE-4011) Multi-threaded Deployment of multiple war-files runs in TomEERuntimeException

     [ https://issues.apache.org/jira/browse/TOMEE-4011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Zowalla closed TOMEE-4011.
----------------------------------
    Fix Version/s: 11.0.0
                   10.3.0
       Resolution: Fixed

Fixed in https://github.com/apache/tomee/commit/15a380d5c5 (main) and https://github.com/apache/tomee/commit/5529874b6f (tomee-10.x): module ids are now generated atomically.

> Multi-threaded Deployment of multiple war-files runs in TomEERuntimeException
> -----------------------------------------------------------------------------
>
>                 Key: TOMEE-4011
>                 URL: https://issues.apache.org/jira/browse/TOMEE-4011
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Core Server
>    Affects Versions: 9.0.0.RC1, 8.0.11, 8.0.13
>            Reporter: Marco Kuballa
>            Priority: Major
>              Labels: patch-available
>             Fix For: 11.0.0, 10.3.0
>
>         Attachments: fix_concurrency_issue_with_Module_uniqueId.patch
>
>
>  
> +*Precondition:*+
>  * set startStopThreads="0" in server.xml to enable multi-threaded deployments
>  * deploy multiple war files in parallel
> +*Result:*+
> {code:java}
>  FINEST|16588/0|22-06-24 13:30:35|    Caused by: org.apache.tomee.catalina.TomEERuntimeException: org.apache.openejb.OpenEJBException: Creating application failed: C:\services\tomee\webapps\my-services: ValidatorFactory already exists for module 1: ParsedName{path=openejb/ValidatorFactory/1, component=1}
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1352)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1162)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:134)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
> FINEST|16588/0|22-06-24 13:30:35|        ... 13 more
> FINEST|16588/0|22-06-24 13:30:35|    Caused by: org.apache.openejb.OpenEJBException: Creating application failed: C:\services\tomee\webapps\my-services: ValidatorFactory already exists for module 1: ParsedName{path=openejb/ValidatorFactory/1, component=1}
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1107)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:762)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1340)
> FINEST|16588/0|22-06-24 13:30:35|        ... 18 more
> FINEST|16588/0|22-06-24 13:30:35|    Caused by: org.apache.openejb.OpenEJBException: ValidatorFactory already exists for module 1: ParsedName{path=openejb/ValidatorFactory/1, component=1}
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:911)
> FINEST|16588/0|22-06-24 13:30:35|        ... 20 more
> FINEST|16588/0|22-06-24 13:30:35|    Caused by: javax.naming.NameAlreadyBoundException: ParsedName{path=openejb/ValidatorFactory/1, component=1}
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:180)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:190)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:163)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:197)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:197)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:190)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:190)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:163)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.NameNode.bind(NameNode.java:190)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.core.ivm.naming.IvmContext.bind(IvmContext.java:322)
> FINEST|16588/0|22-06-24 13:30:35|        at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:897)
> FINEST|16588/0|22-06-24 13:30:35|        ... 20 more
> FINEST|16588/0|22-06-24 13:30:35|24-Jun-2022 13:30:34.698 INFO [Catalina-utility-3] sun.reflect.DelegatingMethodAccessorImpl.invoke Deployment of web application archive [C:\services\tomee\webapps\my-services.war] has finished in [25,288] ms {code}
> The reason might be that 
> org.apache.openejb.config.Module is not thread-safe and the method  module.getUniqueId() does not return unique id's. The attached patch could fix this issue.
> This exception does not occur on every startup (because it is a race condition) but the more war's are deployed the more likely you get the exception.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)