This is an automated email from the git hooks/post-receive script. nomadium pushed a commit to branch master in repository yecht.
commit 6009fd7420ec9efbe55a6981dded086fe4b47216 Author: Ola Bini <[email protected]> Date: Wed Apr 20 15:53:22 2011 -0500 Fix JRUBY-5581 and #1 --- ext/ruby/src/java/org/yecht/ruby/DefaultResolver.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ext/ruby/src/java/org/yecht/ruby/DefaultResolver.java b/ext/ruby/src/java/org/yecht/ruby/DefaultResolver.java index 8a9e6f8..d1e8bad 100644 --- a/ext/ruby/src/java/org/yecht/ruby/DefaultResolver.java +++ b/ext/ruby/src/java/org/yecht/ruby/DefaultResolver.java @@ -30,12 +30,14 @@ import org.jruby.Ruby; import org.jruby.RubyArray; import org.jruby.RubyClass; import org.jruby.RubyEnumerable; +import org.jruby.RubyFixnum; import org.jruby.RubyHash; import org.jruby.RubyKernel; import org.jruby.RubyModule; import org.jruby.RubyNumeric; import org.jruby.RubyObject; import org.jruby.RubyString; +import org.jruby.RubyTime; import org.jruby.anno.JRubyMethod; import org.jruby.runtime.Block; import org.jruby.runtime.BlockCallback; @@ -67,6 +69,7 @@ public class DefaultResolver { IRubyObject hour = runtime.newFixnum(0); IRubyObject min = runtime.newFixnum(0); IRubyObject sec = runtime.newFixnum(0); + IRubyObject addSec = runtime.newFixnum(0); long usec = 0; if(str.buffer[ptr] != 0 && ptr < pend) { @@ -108,7 +111,14 @@ public class DefaultResolver { int end = ptr + 1; while(Character.isDigit((char)str.buffer[end]) && end < pend) end++; byte[] padded = new byte[]{'0', '0', '0', '0', '0', '0'}; - System.arraycopy(str.buffer, ptr+1, padded, 0, end - (ptr+1)); + int begin = ptr+1; + int extraSeconds = 0; + if(end - begin > 6) { + extraSeconds = (end - begin) - 6; + begin += extraSeconds; + addSec = runtime.newFixnum(extractInt(str.buffer, begin - extraSeconds, begin)); + } + System.arraycopy(str.buffer, begin, padded, 0, end - begin); try { usec = Long.parseLong(new String(padded, 0, 6, "ISO-8859-1")); } catch(java.io.UnsupportedEncodingException e) {} @@ -146,11 +156,11 @@ public class DefaultResolver { IRubyObject time = runtime.getClass("Time").callMethod(runtime.getCurrentContext(), "utc", new IRubyObject[]{year,mon,day,hour,min,sec}); long tmp = RubyNumeric.num2long(time.callMethod(runtime.getCurrentContext(), "to_i")) - tz_offset; - return runtime.getClass("Time").callMethod(runtime.getCurrentContext(), "at", new IRubyObject[]{runtime.newFixnum(tmp), runtime.newFixnum(usec)}); + return ((RubyTime)runtime.getClass("Time").callMethod(runtime.getCurrentContext(), "at", new IRubyObject[]{runtime.newFixnum(tmp), runtime.newFixnum(usec)})).op_plus(addSec); } catch(java.io.UnsupportedEncodingException e) {} } else { // Make UTC time - return runtime.getClass("Time").callMethod(runtime.getCurrentContext(), "utc", new IRubyObject[]{year,mon,day,hour,min,sec,runtime.newFixnum(usec)}); + return ((RubyTime)runtime.getClass("Time").callMethod(runtime.getCurrentContext(), "utc", new IRubyObject[]{year,mon,day,hour,min,sec,runtime.newFixnum(usec)})).op_plus(addSec); } System.err.println("oopsie, returning null"); return null; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/yecht.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

