Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.0.1
-
Fix Version/s: JRuby 1.0.3, JRuby 1.1RC2
-
Component/s: Core Classes/Modules
-
Labels:None
-
Environment:Darwin dhcp-umpk16-87-31.sfbay.sun.com 8.10.3 Darwin Kernel Version 8.10.3: Wed Jun 27 23:29:36 PDT 2007; root:xnu-792.23.3~1/RELEASE_I386 i386 i386
-
Number of attachments :
Description
With Java 1.5.0_07 (the one included with this version of OS X) and a local build of jruby-1_0 branch, I am seeing the following behavior when using Rails to_time method to convert a String to a Time.
$ jruby script/console
Loading development environment.
>> s = 'Wed, 10 Oct 2007 11:55:23 -0700'
>> => "Wed, 10 Oct 2007 11:55:23 -0700"
s.to_time
>> ArgumentError: Argument out of range.
from /Users/nf151384/heliopolis/trunk/scm/script/../config/../config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/string/conversions.rb:10:in `to_time'
from (irb):2:in `binding'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:150:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `signal_status'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:147:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `each_top_level_statement'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `loop'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `catch'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `start'
from :1:in `catch'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:69:in `start'
from :1
Also note the input prompts are printing out of sequence with the command output, which is a separate issue.
Here it is just using jirb and ParseDate:
$ jirb
;irb(main):001:0> require 'parsedate'
=> true
irb(main):002:0> res = ParseDate.parsedate('Wed, 10 Oct 2007 11:55:23 -0700')
=> [2007, 10, 10, 11, 55, 23, "-0700", 3]
irb(main):003:0> date = Time.gm(*res)
ArgumentError: Argument out of range.
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb/workspace.rb:52:in `eval'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb/workspace.rb:81:in `evaluate'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb/context.rb:219:in `evaluate'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:150:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `signal_status'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:147:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `each_top_level_statement'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `loop'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb/ruby-lex.rb:230:in `each_top_level_statement'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `catch'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb/ruby-lex.rb:229:in `each_top_level_statement'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:146:in `eval_input'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:70:in `start'
from :1:in `catch'
from /usr/local/jruby-1.0.1/lib/ruby/1.8/irb.rb:69:in `start'
from :1
Maybe IRB bug!!
It seems that the date parser does not like this particular format. Note that "Tue Aug 28 00:37:29 2007 -0700" (
JRUBY-1298) works just fine.JRUBY-1298) works just fine.