Troubleshooting frozen object in tzinfo_timezone

M

Morten

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?

ruby 1.8.4 (2005-12-24) [x86_64-linux]

Thanks.

Morten
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,163
Latest member
Sasha15427
Top