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

I cannot set a JSON property to null in untyped scripting languages

XMLWordPrintable

    • Icon: Bug Report Bug Report
    • Resolution: Unresolved
    • Icon: L3 - Default L3 - Default
    • None
    • None
    • spin
    • None

      In Javascript (and probably any other untyped scripting language), there is no way to set a JSON property to null using Spin. For example, this fails:

      node = S(input, "application/json");
      node.prop("order", null);
      

      with the error:

      Can't unambiguously select between fixed arity signatures [(java.lang.String, org.camunda.spin.json.SpinJsonNode), (java.lang.String, java.lang.Boolean), (java.lang.String, java.lang.String), (java.lang.String, java.util.Map), (java.lang.String, java.util.List), (java.lang.String, java.lang.Number)] of the method org.camunda.spin.impl.json.jackson.JacksonJsonNode.prop for argument types [java.lang.String, null]
      

      Apparently, some scripting engines have more or less ugly extensions to explicitly select a method. For example, in Nashorn, the problem can be worked around as follows:
      node["prop(String, String)"]("order", null);

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              thorben.lindhauer Thorben Lindhauer
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: