From 47618dad386fa26d897a7d13ace80f6511564550 Mon Sep 17 00:00:00 2001 From: Serdar Sutay Date: Mon, 17 Nov 2014 08:34:19 -0800 Subject: Safe dup attributes before deep merge for optimizing merge path. --- lib/chef/node/attribute.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/chef/node/attribute.rb b/lib/chef/node/attribute.rb index 1d564a57e4..cccb16cbf9 100644 --- a/lib/chef/node/attribute.rb +++ b/lib/chef/node/attribute.rb @@ -474,8 +474,17 @@ class Chef merge_overrides(path), apply_path(@automatic, path) ] + + components.map! do |c| + begin + c.dup + rescue TypeError + c + end + end + components.inject(nil) do |merged, component| - Chef::Mixin::DeepMerge.hash_only_merge(merged, component) + Chef::Mixin::DeepMerge.hash_only_merge!(merged, component) end end -- cgit v1.2.1