Skip to content

Possible NoClassDefFoundError when loading FEEL engine #2875

@patptrs

Description

@patptrs

Describe the bug

Operaton release 2.1.0 contains jackson-module-scala_2.13-2.21.2.jar as a dependency originating from feel-engine-1.21.0
This was introduced to camunda-feel-engine with camunda/feel-scala#1031

The classes in this jar file are actually shaded in feel-engine-1.21.0-scala-shaded.jar and properly reference the shaded library classes of scala-library which are prefixed with the package "camundajar.impl.". The class files in jackson-module-scala_2.13-2.21.2.jar however reference the unshaded classes from the original scala library.

Because the shaded jackson classes are not properly prefixed with a shade package and use the same package names as the original ones, if the original classes are loaded first, a NoClassDefFoundError may occur when classes from feel-engine are loaded.

I think that, similar to scala-library, jackson-module-scala should be excluded from the dependency tree of operaton-engine.

To Reproduce

Steps to reproduce the behavior:

  1. Start an application using operaton-engine 2.1.0 where the classpath orders jackson-module-scala_2.13-2.21.2.jar before feel-engine-1.21.0-scala-shaded.jar
  2. A NoClassDefFoundError occurs when instantiating a DmnEngine using FEEL: java.lang.NoClassDefFoundError: scala/collection/immutable/Seq

Expected behavior

Shaded classes should be loaded from feel-engine-1.21.0-scala-shaded.jar

Additional context

As a workaround I manually removed jackson-module-scala from the classpath when running operaton.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependencies:mavenUpdates of Maven dependenciesscope:dmnChanges related to the DMN model & engine

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions