Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-5793

kie-server marshaller simpleclass name clash with DMN symbol

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • None
    • kie server
    • None
    • 2020 Week 46-48 (from Nov 9)
    • Hide
      • Create com.Applicant datatype with fields name[String] and age[int]
      • Create SampleDMN DMN file in com package
      • Create input node named Applicant of type number
      • Create decision node Adult of type boolean and literal expression Applicant >= 18
      • Deploy
      • Execute with command
        curl -u krisv:krisv -H "accept: application/json" -H "content-type: application/json" -X POST "http://localhost:8080/kie-server/services/rest/server/containers/dmnMarshalling/dmn" -d "{ \"model-namespace\" : \"https://kiegroup.org/dmn/_AF7BBDC4-FFED-4BA8-B4A7-6FA828C04A3D\", \"model-name\" : \"SampleDMN\", \"dmn-context\" : {\"Applicant\" : 10}}"
        
      Show
      Create com.Applicant datatype with fields name [String] and age [int] Create SampleDMN DMN file in com package Create input node named Applicant of type number Create decision node Adult of type boolean and literal expression Applicant >= 18 Deploy Execute with command curl -u krisv:krisv -H "accept: application/json" -H "content-type: application/json" -X POST "http: //localhost:8080/kie-server/services/ rest /server/containers/dmnMarshalling/dmn" -d "{ \" model-namespace\ " : \" https://kiegroup.org/dmn/_AF7BBDC4-FFED-4BA8-B4A7-6FA828C04A3D\ ", \" model-name\ " : \" SampleDMN\ ", \" dmn-context\ " : {\" Applicant\ " : 10}}"
    • Workaround Exists
    • Hide

      Two workaround possible:

      1. activate specific kie-server marshalling flag (STANDARD practice on kie-server)
      2. Rename com.Applicant or input node Applicant to avoid name clash (e.g.: rename input data node from Applicant to applicant lower case)
      Show
      Two workaround possible: activate specific kie-server marshalling flag (STANDARD practice on kie-server) Rename com.Applicant or input node Applicant to avoid name clash (e.g.: rename input data node from Applicant to applicant lower case)
    • Undefined
    • NEW
    • NEW
    • ---
    • ---

      Server log

      Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.Applicant` (although at least one Creator exists): no int/Int-argument constructor/factory method to deserialize from Number value (10)
       at [Source: (String)"{ "model-namespace" : "https://kiegroup.org/dmn/_AF7BBDC4-FFED-4BA8-B4A7-6FA828C04A3D", "model-name" : "SampleDMN", "dmn-context" : {"Applicant" : 10}}"; line: 1, column: 148] (through reference chain: org.kie.server.api.model.dmn.DMNContextKS["dmn-context"])
      	at com.fasterxml.jackson.core.jackson-databind@2.10.1//com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
      	at com.fasterxml.jackson.core.jackson-databind@2.10.1//com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1429)
      ...
      

      Jackson is deserializing the object and it is trying to use com.Applicant object because of name clash.

            mmortari@redhat.com Matteo Mortari
            dzonca@redhat.com Daniele Zonca
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: