Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-29499

Fix error management on invalid operation/chain/codec registration

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 10.10
    • Fix Version/s: 11.3, 2021.0
    • Component/s: Automation
    • Impact type:
      Configuration Change
    • Upgrade notes:
      Hide

      Operation chain contributions should now require contributions holding operations that they reference.

      The following issue will now prevent server from starting in strict mode:

      • invalid chain declaration, referencing an operation unknown to the service at registration time
      • invalid operation class declaration (class not found or not an operation)
      • invalid automation codec class declaration (class not found or not a codec)
      Show
      Operation chain contributions should now require contributions holding operations that they reference. The following issue will now prevent server from starting in strict mode: invalid chain declaration, referencing an operation unknown to the service at registration time invalid operation class declaration (class not found or not an operation) invalid automation codec class declaration (class not found or not a codec)
    • Team:
      AT
    • Sprint:
      nxAT 11.1.23
    • Story Points:
      2

      Description

      Fix the following use cases:

      • when operation is not found, in strict mode, the server startup gives error:
        2020-08-05T14:15:37,713 ERROR [ComponentManagerImpl] Failed to load contributions for component service:org.nuxeo.automation.rest.test.faultyOperationContrib
        java.lang.RuntimeException: Cannot load class: org.nuxeo.ecm.automation.test.helpers.NonExistingOperation while processing component: org.nuxeo.automation.rest.test.faultyOperationContrib
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:110) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.lambda$loadContributions$3(ComponentManagerImpl.java:467) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at java.util.Optional.ifPresent(Optional.java:183) [?:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.loadContributions(ComponentManagerImpl.java:465) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.RegistrationInfoImpl.activate(RegistrationInfoImpl.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponent(ComponentManagerImpl.java:547) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponents(ComponentManagerImpl.java:526) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.start(ComponentManagerImpl.java:786) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.startComponents(OSGiRuntimeService.java:446) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.frameworkEvent(OSGiRuntimeService.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.OSGiAdapter.fireFrameworkEvent(OSGiAdapter.java:223) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.doStart(FrameworkLoader.java:225) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.start(FrameworkLoader.java:124) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.start(NuxeoStarter.java:124) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.contextInitialized(NuxeoStarter.java:93) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4678) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5139) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1830) [catalina.jar:9.0.37]
        	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.37]
        	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118) [?:?]
        	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:526) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:425) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) [catalina.jar:9.0.37]
        	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        	at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.37]
        	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) [?:?]
        	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37]
        	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) [catalina.jar:9.0.37]
        	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37]
        	at org.apache.catalina.startup.Catalina.start(Catalina.java:738) [catalina.jar:9.0.37]
        	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
        	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
        	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) [bootstrap.jar:9.0.37]
        	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) [bootstrap.jar:9.0.37]
        Caused by: org.nuxeo.common.xmap.XMapException: Cannot load class: org.nuxeo.ecm.automation.test.helpers.NonExistingOperation
        	at org.nuxeo.common.xmap.XValueFactory$10.deserialize(XValueFactory.java:202) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.getValue(XAnnotatedMember.java:133) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.process(XAnnotatedMember.java:105) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedObject.newInstance(XAnnotatedObject.java:104) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:441) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:447) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:403) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:107) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	... 55 more
        Caused by: java.lang.ClassNotFoundException: org.nuxeo.ecm.automation.test.helpers.NonExistingOperation
        	at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
        	at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
        	at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeContext.loadClass(OSGiRuntimeContext.java:102) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.XMapContext.loadClass(XMapContext.java:47) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XValueFactory$10.deserialize(XValueFactory.java:200) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.getValue(XAnnotatedMember.java:133) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.process(XAnnotatedMember.java:105) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedObject.newInstance(XAnnotatedObject.java:104) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:441) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:447) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:403) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:107) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        
      0-08-05T14:15:45,860 INFO  [OSGiRuntimeService] Nuxeo Platform Started
      ======================================================================
      = Component Loading Warnings:
        * Failed to load contributions for component service:org.nuxeo.automation.rest.test.faultyOperationContrib
      

      Expected behaviour: still show an error, and stop the server if in strict mode

      • when operation class is invalid (not following expected interface), in strict mode, the server startup gives error:
        2020-08-05T14:26:28,801 ERROR [ComponentManager] Failed to register extension to: service:org.nuxeo.ecm.core.operation.OperationServiceComponent, xpoint: operations in component: service:org.nuxeo.automation.rest.test.faultyOperationContrib
        java.lang.IllegalArgumentException: Invalid operation class: class org.nuxeo.ecm.automation.io.services.codec.DocumentModelCodec. No @Operation annotation found on class.
        	at org.nuxeo.ecm.automation.core.impl.OperationTypeImpl.<init>(OperationTypeImpl.java:124) ~[nuxeo-automation-core-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.ecm.automation.core.impl.OperationServiceImpl.putOperation(OperationServiceImpl.java:307) ~[nuxeo-automation-core-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.ecm.automation.core.AutomationComponent.registerContribution(AutomationComponent.java:139) ~[nuxeo-automation-core-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.DefaultComponent.registerExtension(DefaultComponent.java:73) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentInstanceImpl.registerExtension(ComponentInstanceImpl.java:208) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.RegistrationInfoImpl.activate(RegistrationInfoImpl.java:463) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponent(ComponentManagerImpl.java:547) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponents(ComponentManagerImpl.java:526) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.start(ComponentManagerImpl.java:786) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.startComponents(OSGiRuntimeService.java:446) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.frameworkEvent(OSGiRuntimeService.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.OSGiAdapter.fireFrameworkEvent(OSGiAdapter.java:223) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.doStart(FrameworkLoader.java:225) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.start(FrameworkLoader.java:124) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.start(NuxeoStarter.java:124) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.contextInitialized(NuxeoStarter.java:93) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        [...]
        	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) [bootstrap.jar:9.0.37]
        	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) [bootstrap.jar:9.0.37]
        
      = Component Loading Errors:
        * Failed to register extension to: service:org.nuxeo.ecm.core.operation.OperationServiceComponent, xpoint: operations in component: service:org.nuxeo.automation.rest.test.faultyOperationContrib (java.lang.IllegalArgumentException: Invalid operation class: class org.nuxeo.ecm.automation.io.services.codec.DocumentModelCodec. No @Operation annotation found on class.)
      

      Expected behaviour: this is ok

      • when automation codec is not found, in strict mode, the server startup gives error:
        2020-08-05T14:15:38,204 ERROR [ComponentManagerImpl] Failed to load contributions for component service:org.nuxeo.automation.rest.test.faultyOperationContrib
        java.lang.RuntimeException: Cannot load class: org.nuxeo.ecm.automation.server.test.NonExistingCodec while processing component: org.nuxeo.automation.rest.test.faultyOperationContrib
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:110) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.lambda$loadContributions$3(ComponentManagerImpl.java:467) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at java.util.Optional.ifPresent(Optional.java:183) [?:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.loadContributions(ComponentManagerImpl.java:465) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.RegistrationInfoImpl.activate(RegistrationInfoImpl.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponent(ComponentManagerImpl.java:547) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.activateComponents(ComponentManagerImpl.java:526) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.start(ComponentManagerImpl.java:786) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.startComponents(OSGiRuntimeService.java:446) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.frameworkEvent(OSGiRuntimeService.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.OSGiAdapter.fireFrameworkEvent(OSGiAdapter.java:223) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.doStart(FrameworkLoader.java:225) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.start(FrameworkLoader.java:124) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.start(NuxeoStarter.java:124) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.contextInitialized(NuxeoStarter.java:93) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        [...]
        	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) [bootstrap.jar:9.0.37]
        	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) [bootstrap.jar:9.0.37]
        Caused by: org.nuxeo.common.xmap.XMapException: Cannot load class: org.nuxeo.ecm.automation.server.test.NonExistingCodec
        	at org.nuxeo.common.xmap.XValueFactory$10.deserialize(XValueFactory.java:202) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.getValue(XAnnotatedMember.java:133) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.process(XAnnotatedMember.java:105) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedObject.newInstance(XAnnotatedObject.java:104) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:441) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:447) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:403) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:107) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	... 55 more
        Caused by: java.lang.ClassNotFoundException: org.nuxeo.ecm.automation.server.test.NonExistingCodec
        	at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
        	at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
        	at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeContext.loadClass(OSGiRuntimeContext.java:102) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.XMapContext.loadClass(XMapContext.java:47) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XValueFactory$10.deserialize(XValueFactory.java:200) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.getValue(XAnnotatedMember.java:133) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedMember.process(XAnnotatedMember.java:105) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XAnnotatedObject.newInstance(XAnnotatedObject.java:104) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:441) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:447) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.common.xmap.XMap.loadAll(XMap.java:403) ~[nuxeo-common-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ExtensionPointImpl.loadContributions(ExtensionPointImpl.java:107) ~[nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	... 55 more
        
      2020-08-05T14:15:45,860 INFO  [OSGiRuntimeService] Nuxeo Platform Started
      ======================================================================
      = Component Loading Warnings:
        * Failed to load contributions for component service:org.nuxeo.automation.rest.test.faultyOperationContrib
      

      Expected behaviour: still show an error, and stop the server if in strict mode

      • when automation codec is not found, in strict mode, the server startup gives error:
        2020-08-05T14:30:27,565 ERROR [ComponentManager] Component service:org.nuxeo.ecm.automation.io.services.IOComponent notification of application started failed: class org.nuxeo.ecm.automation.core.operations.login.LoginAs cannot be cast to class org.nuxeo.ecm.automation.io.services.codec.ObjectCodec (org.nuxeo.ecm.automation.core.operations.login.LoginAs and org.nuxeo.ecm.automation.io.services.codec.ObjectCodec are in unnamed module of loader org.nuxeo.runtime.tomcat.NuxeoWebappClassLoader @53dad875)
        java.lang.ClassCastException: class org.nuxeo.ecm.automation.core.operations.login.LoginAs cannot be cast to class org.nuxeo.ecm.automation.io.services.codec.ObjectCodec (org.nuxeo.ecm.automation.core.operations.login.LoginAs and org.nuxeo.ecm.automation.io.services.codec.ObjectCodec are in unnamed module of loader org.nuxeo.runtime.tomcat.NuxeoWebappClassLoader @53dad875)
        	at org.nuxeo.ecm.automation.io.services.IOComponent.lambda$start$0(IOComponent.java:66) ~[nuxeo-automation-io-11.2-SNAPSHOT.jar:?]
        	at java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
        	at org.nuxeo.ecm.automation.io.services.IOComponent.start(IOComponent.java:64) ~[nuxeo-automation-io-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.RegistrationInfoImpl.start(RegistrationInfoImpl.java:381) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.startComponent(ComponentManagerImpl.java:709) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.startComponents(ComponentManagerImpl.java:691) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.model.impl.ComponentManagerImpl.start(ComponentManagerImpl.java:792) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.startComponents(OSGiRuntimeService.java:446) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.osgi.OSGiRuntimeService.frameworkEvent(OSGiRuntimeService.java:461) [nuxeo-runtime-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.OSGiAdapter.fireFrameworkEvent(OSGiAdapter.java:223) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.doStart(FrameworkLoader.java:225) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.osgi.application.loader.FrameworkLoader.start(FrameworkLoader.java:124) [nuxeo-runtime-osgi-11.2-SNAPSHOT.jar:?]
        	at org.nuxeo.runtime.deployment.NuxeoStarter.start(NuxeoStarter.java:124) [nuxeo-runtime-deploy-11.2-SNAPSHOT.jar:?]
        [...]
        
      = Component Loading Status: Pending: 0 / Missing: 0 / Unstarted: 1 / Total: 545
        - service:org.nuxeo.ecm.automation.io.services.IOComponent
      

      Expected behaviour: this is ok but error could be more explicit in the startup summary

      • when an automation chain references an unknown operation, in strict mode, the server startup does not show any error --> see if some kind of optimized check can be done to avoid running lazily into the issue (if not too costly to do at startup)

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 5 hours
                  5h