diff options
| -rw-r--r-- | src/rabbit_policy.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_runtime_parameters.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_vhost_limit.erl | 6 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/rabbit_policy.erl b/src/rabbit_policy.erl index 1a28c26a1e..2106a12e4d 100644 --- a/src/rabbit_policy.erl +++ b/src/rabbit_policy.erl @@ -212,7 +212,11 @@ parse_set(Type, VHost, Name, Pattern, Definition, Priority, ApplyTo) -> end. parse_set0(Type, VHost, Name, Pattern, Defn, Priority, ApplyTo) -> - case rabbit_json:try_decode(list_to_binary(Defn)) of + Definition = case Defn of + Defn when is_list(Defn) -> list_to_binary(Defn); + Defn -> Defn + end, + case rabbit_json:try_decode(Definition) of {ok, Term} -> set0(Type, VHost, Name, [{<<"pattern">>, list_to_binary(Pattern)}, diff --git a/src/rabbit_runtime_parameters.erl b/src/rabbit_runtime_parameters.erl index 567291fd7e..6571c4828e 100644 --- a/src/rabbit_runtime_parameters.erl +++ b/src/rabbit_runtime_parameters.erl @@ -97,7 +97,11 @@ parse_set(_, <<"policy">>, _, _, _) -> {error_string, "policies may not be set using this method"}; parse_set(VHost, Component, Name, String, User) -> - case rabbit_json:try_decode(list_to_binary(String)) of + Definition = case String of + String when is_list(String) -> list_to_binary(String); + String -> String + end, + case rabbit_json:try_decode(Definition) of {ok, Term} when is_map(Term) -> set(VHost, Component, Name, maps:to_list(Term), User); {ok, Term} -> set(VHost, Component, Name, Term, User); error -> {error_string, "JSON decoding error"} diff --git a/src/rabbit_vhost_limit.erl b/src/rabbit_vhost_limit.erl index 7eac51e745..a54ba9629e 100644 --- a/src/rabbit_vhost_limit.erl +++ b/src/rabbit_vhost_limit.erl @@ -124,7 +124,11 @@ is_over_queue_limit(VirtualHost) -> %%---------------------------------------------------------------------------- parse_set(VHost, Defn) -> - case rabbit_json:try_decode(list_to_binary(Defn)) of + Definition = case Defn of + Defn when is_list(Defn) -> list_to_binary(Defn); + Defn -> Defn + end, + case rabbit_json:try_decode(Definition) of {ok, Term} -> set(VHost, maps:to_list(Term)); error -> |
