From 00cd01a44306814d419ce2fa2aae93be903fa3fb Mon Sep 17 00:00:00 2001
From: Jeff McCune <jeff@puppetlabs.com>
Date: Wed, 24 Oct 2012 08:36:36 -0700
Subject: [PATCH] WIP - Instrument store_configs serialization issue

This patch adds an exception handler to try and determine what value the
YAML library has exception with.
---
 lib/puppet/util/rails/reference_serializer.rb | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/puppet/util/rails/reference_serializer.rb b/lib/puppet/util/rails/reference_serializer.rb
index 9beeb00..393b6aa 100644
--- a/lib/puppet/util/rails/reference_serializer.rb
+++ b/lib/puppet/util/rails/reference_serializer.rb
@@ -3,7 +3,19 @@ module Puppet::Util::ReferenceSerializer
   def unserialize_value(val)
     case val
     when /^--- /
-      YAML.load(val)
+      begin
+        YAML.load(val)
+      rescue Exception => detail
+        if detail.to_s.match(/allocator/i)
+          # JJM FIXME Debug output for puppet-users thread http://goo.gl/a7cqA
+          # This requires a JSON library, available with `gem install multi_json`
+          file = "/tmp/for_jeff.json"
+          if not File.exists?(file)
+            Puppet.debug "Wrote val to #{file}"
+            File.open(file, "w+") { |f| f.puts(PSON.dump(val)) }
+          end
+        end
+      end
     when "true"
       true
     when "false"
-- 
1.7.11.3

