Switch branches/tags
Commits on May 18, 2012
  1. Say what

    enebo committed May 18, 2012
  2. Remove JLine from being seen by maven and jarjar'ing our internal com…

    enebo committed May 18, 2012
    …mitted version to a non-conflicting package (to be reverted for next release when jline 2.7 is out)
  3. Update to jcodings 1.0.9

    enebo committed May 18, 2012
Commits on May 17, 2012
  1. Fix JRUBY-6588

    headius committed May 17, 2012
    Multiple fixes and improvements for transcoding. We are still
    passing everthing through Java Charset logic, which means the
    intermediate phase is always UTF-16, but we will now error out
    properly. The test case from the bug passes now.
  2. Fix #174

    headius committed May 17, 2012
    [JRUBY-6668] StringScanner#scan_until spins forever on UTF-8 data
    We were not preparing the regex properly. Added that, and the
    given example completes normally.
  3. Add license block.

    headius committed May 17, 2012
  4. Fix JRUBY-6607, JRUBY-6498

    headius committed May 17, 2012
    We did not have a finally block to ensure that unsuccessful
    connections were properly closed. Timeout errors would cause us
    to leave the partially-initialized connection dangling, and the
    JVM does not clean up socket connections on GC. Adding a finally
    block and success flag appears to have tidied up lingering
  5. Fix JRUBY-6669

    headius committed May 17, 2012
    I just moved the downcased version into the Windows block, since
    *nix will be more consistent.
  6. [IR] Minor code cleanup

    subbuss committed May 17, 2012
Commits on May 16, 2012
  1. Bump for version

    enebo committed May 16, 2012
  2. Dir.pwd sometimes mixes case on drive letter...I no longer think this…

    enebo committed May 16, 2012
    … is a bug but Windows only beating me down
  3. More pass'age on windows

    enebo committed May 15, 2012
  4. Add spec-short to travis.

    headius committed May 16, 2012
  5. Fix JRUBY-6603

    headius committed May 16, 2012
    To avoid attempting to read the ENV hash while it might be updated
    elsewhere, I added a dup call. This is not 100% perfect if dup is
    not threadsafe (unsure) but it was able to pass the given
    contrived example.
  6. Fix JRUBY-6572 and unexclude a bunch of passing tests.

    headius committed May 16, 2012
    I mostly just traced through the MRI logic for handling binary
    mode and tried to match up code. There's also a few fixes to make
    some of our ported logic match MRI more exactly.
    We have accumulated enough fixes that test_io_m17n has many tests
    working now. I removed them from excludes.
  7. spaces, not tabs.

    BanzaiMan committed May 16, 2012
  8. Fix JRUBY-6517

    headius committed May 16, 2012
    This seems to be a flaw in the patch I provided for Since that patch was only
    to improve perf of REXML in Ruby 1.8 mode, I think it's better to
    have slower and working than faster and broken. Reverting.
  9. Update subprojects jars

    enebo committed May 16, 2012
Commits on May 15, 2012
  1. Fix JRUBY-6582

    headius committed May 15, 2012
    We were missing encoding negotiation that MRI does during % with
    string args.
  2. Fix JRUBY-6619: NoMethodError 'upcase' on Java string

    headius committed May 15, 2012
    Well, this was a tricky one to find.
    The problem stems from the actual Enumeration being walked. In
    this case, when running under a Tomcat-based server (or perhaps
    when running under a server that just uses some Apache libraries)
    it is the NamesEnumerator class.
    NamesEnumerator implements Enumeration<String>, which causes javac
    to generate two nextElement methods: one with a String return and
    one with an Object return. Issue number 1 is that JRuby does not
    consider these to be overloads, and so it would randomly pick one
    or the other depending on what order they were retrieved via Java
    reflection. That was the cause of the variability.
    JRuby converts return arguments using a cached "converter" that
    it validates is still correct by confirming the object type being
    returned matches the expected object type. If a method returns
    String, we will use the cached String converter if the returned
    object is also a String.
    We also had code in place that attempted to find a "more public"
    version of methods defined on non-public classes by searching the
    public classes and interfaces above it.
    In the case of NamesEnumerator, which is package-private, whenever
    the String-returning method was encountered first we would proceed
    to search for the Object version even though both were public
    methods. But upon finding the Object version, we did not save it.
    Instead, we only captured the converter based on an Object return
    type and still dispatched using the String version.
    So basically, we were calling the String version of the method but
    using the Object converter to convert the result, which is why it
    wrapped rather than converted.
    I removed the public method search, since it wasn't actually
    accomplishing anything. Both of the public methods in question
    should dispatch ok without it, and this should avoid the broken
    hybrid of String method with Object converter.