-
Bug Report
-
Resolution: Unresolved
-
L3 - Default
-
None
-
None
-
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
[CAM-4999] I cannot set a JSON property to null in untyped scripting languages
Description |
Original:
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: {code} node = S(input, "application/json"); node.prop("order", null); {code} with the error: {code} 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] {code} |
New:
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: {code} node = S(input, "application/json"); node.prop("order", null); {code} with the error: {code} 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] {code} and there appears to be no Nashorn extension to explicitly select one of them (plus that would not be very convenient/obvious for users). |
Description |
Original:
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: {code} node = S(input, "application/json"); node.prop("order", null); {code} with the error: {code} 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] {code} and there appears to be no Nashorn extension to explicitly select one of them (plus that would not be very convenient/obvious for users). |
New:
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: {code} node = S(input, "application/json"); node.prop("order", null); {code} with the error: {code} 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] {code} 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);}} |
Workflow | Original: camunda BPM [ 31781 ] | New: Backup_camunda BPM [ 55694 ] |
This ticket was migrated to github: https://github.com/camunda/camunda-bpm-platform/issues/2102. Please use this link for any future references and continue any discussion there.