diff --git a/vendor/magento/framework/Serialize/Serializer/Json.php b/vendor/magento/framework/Serialize/Serializer/Json.php --- a/vendor/magento/framework/Serialize/Serializer/Json.php +++ b/vendor/magento/framework/Serialize/Serializer/Json.php @@ -23,7 +23,13 @@ { $result = json_encode($data); if (false === $result) { - throw new \InvalidArgumentException("Unable to serialize value. Error: " . json_last_error_msg()); + $backtrace = sprintf( + '%s||%s||%s', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'] ?? 'unknown backtrace function', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['class'] ?? 'unknown backtrace class', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['file'] ?? 'unknown backtrace file', + ); + throw new \InvalidArgumentException("Unable to serialize value. Error: " . json_last_error_msg() . ' -- ' . $backtrace); } return $result; } @@ -35,14 +41,26 @@ public function unserialize($string) { if ($string === null) { + $backtrace = sprintf( + '%s||%s||%s', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'] ?? 'unknown backtrace function', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['class'] ?? 'unknown backtrace class', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['file'] ?? 'unknown backtrace file', + ); throw new \InvalidArgumentException( - 'Unable to unserialize value. Error: Parameter must be a string type, null given.' + 'Unable to unserialize value. Error: Parameter must be a string type, null given.' . ' -- ' . $backtrace ); } $result = json_decode($string, true); if (json_last_error() !== JSON_ERROR_NONE) { - throw new \InvalidArgumentException("Unable to unserialize value. Error: " . json_last_error_msg()); + $backtrace = sprintf( + '%s||%s||%s', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'] ?? 'unknown backtrace function', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['class'] ?? 'unknown backtrace class', + debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['file'] ?? 'unknown backtrace file', + ); + throw new \InvalidArgumentException("Unable to unserialize value. Error: " . json_last_error_msg() . ' -- ' . $backtrace); } return $result; }