Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-13969

Documentation - dmnFeelCustomFunctionProviders property does not work

    XMLWordPrintable

Details

    • Bug Report
    • Status: Open
    • L3 - Default
    • Resolution: Unresolved
    • 7.13.0
    • None
    • documentation, engine

    Description

      As per https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders, you can define dmnFeelCustomFunctionProviders configuration of type list in process engine configuration. However, after it is defined in bpm-platform.xml, it throws an error.

      bpm-platform.xml

       <property name="dmnFeelCustomFunctionProviders">CustomFunctionProvider</property>
      

      Error

      23-Sep-2021 16:37:08.194 SEVERE [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
      	org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
      		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
      		at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      		at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
      		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
      	Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'deploy BPM platform' => 'Start process engine default': ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
      		at org.camunda.bpm.container.impl.ContainerIntegrationLogger.exceptionWhilePerformingOperationStep(ContainerIntegrationLogger.java:316)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:136)
      		at org.camunda.bpm.container.impl.jmx.MBeanServiceContainer.executeDeploymentOperation(MBeanServiceContainer.java:160)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation$DeploymentOperationBuilder.execute(DeploymentOperation.java:216)
      		at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.deployBpmPlatform(TomcatBpmPlatformBootstrap.java:83)
      		at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.lifecycleEvent(TomcatBpmPlatformBootstrap.java:61)
      		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.setState(LifecycleBase.java:366)
      		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:923)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      		... 7 more
      	Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
      		at org.camunda.bpm.container.impl.ContainerIntegrationLogger.cannotSetValueForProperty(ContainerIntegrationLogger.java:285)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:91)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperties(PropertyHelper.java:110)
      		at org.camunda.bpm.container.impl.deployment.StartProcessEngineStep.performOperationStep(StartProcessEngineStep.java:101)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:120)
      		... 16 more
      	Caused by: java.lang.IllegalArgumentException: argument type mismatch
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:88)
      

      We should change the description of the property in https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders to something like:

      Define a list of instances of FeelCustomFunctionProvider. You can only set this property programmatically. Read more about it in the user guide.
      

      Also in https://docs.camunda.org/manual/7.14/user-guide/dmn-engine/feel/custom-functions/#process-engine, we should may be give an example code to register this property via plugin.

      Note
      Registering this property via Plugin works.

      mgm-controller-panel

        This is the controller panel for Smart Panels app

        Attachments

          Issue Links

            Activity

              People

                emma.pollum Emma Pollum
                garima.yadav Garima Yadav
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:

                  Salesforce