YAML serialization problem for Exception
The implementation of YAML.object_maker allocates an object and
instance_variable_set the instance variables passed as the second
argument, while Exception doesn't seem to use such instance variable to
return the exception message (Exception#message). This bug can be
reproduced by typing
YAML::load(YAML::dump(Exception.new('test_message'))) in IRB.
this bug can be reproduced in Ruby 1.8 as well
Updated by jingweno (Owen Ou) over 7 years ago
To reproduce the bug, try this on IRB:
ruby-1.9.2-p290 :001 > require 'yaml'
ruby-1.9.2-p290 :002 > YAML::load(YAML::dump(Exception.new('test_message')))
I expect to see # while the result is #.
I have fixed this problem with a pull request on August 09 2011 which hasn't been merged in till now: https://github.com/ruby/ruby/pull/41
Updated by jingweno (Owen Ou) about 7 years ago
Patch was applied: https://github.com/ruby/ruby/commit/eb1eee03ca13eb13f8bfd02f18d9f5a0d5537