document end events use explicit rather than implicit, so invert the flag
tagsMap size should be tested rather than the return map
tagsMap can be null, so test for null before size
Merge branch 'master' of git://github.com/jruby/jruby
Bump up compile size again...JDK7 still seems to OOM.
Remove unnecessary reification of incoming block.
Make this more obviously a valid utf-8 string
Sane-ify unicode char test
Store the JavaProxyClass cache in JavaSupport (fixes #164)

This keeps the cache of proxies inside an instance of a Ruby runtime
versus hanging around in a static map in JavaProxyClassFactory so that
the proxies don't prevent the runtime from being garbage collected.

Signed-off-by: Charles Oliver Nutter <headius@headius.com>
Fix JRUBY-6619: NoMethodError 'upcase' on Java string

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.
Fix JRUBY-6582

We were missing encoding negotiation that MRI does during % with
string args.
Fixes for TestM18N#test_sprintf_s
Note on failure in TestM17N#test_sprintf_c.
Update subprojects jars
Fix JRUBY-6517

This seems to be a flaw in the patch I provided for
http://bugs.ruby-lang.org/issues/5698. 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.
spaces, not tabs.
Fix JRUBY-6572 and unexclude a bunch of passing tests.

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.
Fix JRUBY-6603

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.
Additional IO encoding tweaks to get specs green again.
Add spec-short to travis.