Hi. Off and on I get a “can’t modify frozen object” when working with
the tzinfo_timezone plugin. I’ve added some debugging in the code to
try and track down what goes wrong:
def tzinfo
RAILS_DEFAULT_LOGGER.debug(“TZINFO STATE ‘#{@tzinfo}’ class
#{@tzinfo.class} frozen? #{@tzinfo.frozen?}”)
return @tzinfo if @tzinfo
RAILS_DEFAULT_LOGGER.debug(“TZINFO ASSIGN TO #{MAPPING[name]}”)
begin @tzinfo = MAPPING[name]
rescue TypeError => type_error
RAILS_DEFAULT_LOGGER.debug(“TZINFO TYPE ERROR #{type_error}”)
raise type_error
end
RAILS_DEFAULT_LOGGER.debug(“TZINFO ASSIGNED TO #{@tzinfo}”)
if String === @tzinfo @tzinfo = TZInfo::Timezone.get(@tzinfo)
MAPPING[name] = @tzinfo
end @tzinfo
end
When the error occurs, the following makes it to the log:
TZINFO STATE ‘’ class NilClass frozen? false
TZINFO ASSIGN TO Europe/Amsterdam
TZINFO TYPE ERROR can’t modify frozen object
Which means, that @tzinfo is nil, and yet, the line
@tzinfo = MAPPING[name]
Causes a TypeError. MAPPING is a hash. I’m mildly confused. Anyone
able to shed some light on what might be the issue or how to dig
further into the problem?
Hi. Off and on I get a “can’t modify frozen object” when working with
the tzinfo_timezone plugin. I’ve added some debugging in the code to
try and track down what goes wrong:
…
Thanks.
Morten
Has anybody figured out why this occurs and how to fix it? It’s odd
that the error only occurs sporadically.
The tzinfo_timezone plugin, in the init.rb script, actually replaces
Rails’ TimeZone class with TzinfoTimezone, so using either one of
those should work as the :class_name (I think?),
-tieg
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.