Wrap cjson.encode in a pcall in SamplesDecoder and ResourcesDecoder

Change-Id: I541e241d4c398c458e7ec098debef6d241a954d9
diff --git a/heka/files/lua/common/resources.lua b/heka/files/lua/common/resources.lua
index dc18329..fcb8c94 100644
--- a/heka/files/lua/common/resources.lua
+++ b/heka/files/lua/common/resources.lua
@@ -124,7 +124,11 @@
         for _, sample in ipairs(message_body["payload"]) do
             add_resource_to_payload(sample, resource_payload)
         end
-        resource_msg.Payload = cjson.encode(resource_payload)
+        local ok, payload = pcall(cjson.encode, resource_payload)
+        if not ok then
+            return -1, "Cannot encode resource_payload"
+        end
+        resource_msg.Payload = payload
         resource_msg.Timestamp = patt.Timestamp:match(message_body.timestamp)
         return 0, resource_msg
     end
diff --git a/heka/files/lua/common/samples.lua b/heka/files/lua/common/samples.lua
index ad93873..af9c6c9 100644
--- a/heka/files/lua/common/samples.lua
+++ b/heka/files/lua/common/samples.lua
@@ -184,7 +184,11 @@
         for _, sample in ipairs(message_body["payload"]) do
             self:add_sample_to_payload(sample, sample_payload)
         end
-        sample_msg.Payload = cjson.encode(sample_payload)
+        local ok, payload = pcall(cjson.encode, sample_payload)
+        if not ok then
+            return -1, "Cannot encode sample_payload"
+        end
+        sample_msg.Payload = payload
         sample_msg.Timestamp = patt.Timestamp:match(message_body.timestamp)
         return 0, sample_msg
     end