Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: jruby/jruby
head fork: jruby/jruby
Checking mergeability… Don't worry, you can still create the pull request.
Commits on Apr 13, 2010
@enebo enebo Bump to 1.5.0.RC1 on branch be00fda
@enebo enebo Add x64 installer for windows 0a71126
@headius headius Two ugly hacks to get popen working more reliably:
* Loop for up to a second repeatedly trying to "destroy" the child process, to get around a single, early destroy not doing its job and causing waitFor to hang
* Pause for 0.1s during popen on Java 5 since it appears to be even less "ready" than Java 6.
Commits on Apr 14, 2010
@enebo enebo top-level spi was not being included in src distros 0b96ecd
@enebo enebo Add missing rakelib dir and also change permissions for testapp 0f8b6e7
@enebo enebo Tag out some failing specs in 1.9 mode 0b08bc7
Commits on Apr 15, 2010
@headius headius Update profile.jar to JIP 1.2 released version. 433bb29
Commits on Apr 16, 2010
@nicksieger nicksieger Use gemcutter when releasing, and use lowercase for gem version numbers 6c34c06
Commits on Apr 17, 2010
@BanzaiMan BanzaiMan Fix jruby.jit.maxsize help text. 240746b
Commits on Apr 18, 2010
@dekellum dekellum Avoid instance variable @jar_paths not initialized
Signed-off-by: Hiro Asari <>
@headius headius Oops, actually check for there being more than one match when doing t…
…he verbose "multiple methods" warning.
@headius headius Restore 1.4- Java object #inspect output (hashy class with internal h…
@headius headius Fix for JRUBY-4704: "Java wrapper with no contents" error when subcla…
…ssing a Runnable class in JRuby
Commits on Apr 19, 2010
@headius headius Modify "multiple methods" warning from JI method selection to only sh…
…ow in debug mode, since it's expected there might often be multiple matches. JRUBY-4734.
@BanzaiMan BanzaiMan Fix JRUBY-4735: install-gems ant target should not count on successfu…
…l installation of jruby-launcher
Commits on Apr 20, 2010
@enebo enebo pseudo-regression: JRUBY-3208 9dcb4d1
@BanzaiMan BanzaiMan Fix JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1…

Exclude test/testapp/testapp and test/testapp/testapp.exe that are included later in the build process
@headius headius Performance improvement (10x) for .new on a Ruby class that implement…
…s a Java interface.
@headius headius Miscellaneous perf improvements for Ruby to Java dispatch:
* Fix primitive return type coercion to actually use the precached converter, rather than doing a hash hit every time
* Eliminate an instanceof check that would actually constitute a bug, and shouldn't be seen at runtime
* Eliminate synchronization and volatility on every call by removing laziness in RubyToJavaInvoker initialization
@enebo enebo Src dist is missing jruby-jar gem c51dac4
@headius headius Additional improvements for JRUBY-4734 in method selection:
* Restore the line number (use "warn")
* Treat primitives and their boxes as "exact" for selection purposes.
@headius headius Fix failure in -W spec by restoring the IRubyObject value for verbose…
… in Ruby.
Commits on Apr 21, 2010
@yokolet yokolet Fix NPE raised from SystemPropertyCatcher#findLoadPaths() on GAE. Sin…
…ce GAE doesn't have java.class.path system property, null check here was needed.
@nicksieger nicksieger JRUBY-4730: Attempt to deal with native launcher bits getting include…
…d in distro
@headius headius Update ruby-debug-base to to pick up a bugfix for teardown k…
…illing debugging before tests can run.
@dekellum dekellum Add jruby.bindir property override to RbConfig::CONFIG[bindir] (Take 2)
Signed-off-by: Nick Sieger <>
@dekellum dekellum Add jruby.gem.(path|home) property support for rubygems. (Take 2)
Fix for JRUBY-4729.

Signed-off-by: Nick Sieger <>
@headius headius Fixes for JRUBY-4724 and JRUBY-4725
JRUBY-4724: Java class equality operator is order dependent
JRUBY-4725: to_java_object no longer exists
Commits on Apr 22, 2010
@calavera calavera JRUBY-4742: fix NPE when File::Stat doesn't find a file into a jar
Signed-off-by: Nick Sieger <>
Wayne Meissner Fix JRUBY-4715 FFI::StructByValue missing layout and struct_class met…
@chrisa chrisa Use a ReferenceQueue to track dying thread and remove their RubyThrea…
…d and

ThreadContext entries.

Modified to encapsulate the weak collection by Charles Oliver Nutter <>
@headius headius Fix for JRUBY-4731: Mismatched default compilation prefix 0f5f3eb
Commits on Apr 23, 2010
@headius headius Fixes for JRUBY-4732: Clean up anything that calls dataGetStruct on a…
… wrapped Java object to get the object
@headius headius Fix failing threadpool tests by making RubyThreadMap accept null keys…
… like WeakHashMap did.
@headius headius Fixes (and more) for JRUBY-4737: Compatibility issue with Spring prop…
…erty from 1.4.0 to 1.5.0.RC1

It appears that JRuby 1.4.0 allowed various objects to coerce to "void" by returning null, so this commit fixes that.

In addition, I've tried to unify some of the toJava logic, making most implementations call super.toJava if they can't coerce to the requested type (allowing RubyBasicObject's implementation to try some other avenues or error out). I also added some additional coersion cases for Time to java.util.Calendar, java.sql.Date/Time/TimeStamp, and joda's DateTime (it already did java.util.Date).
@headius headius Spec for JRUBY-4710: Problems importing classes in default package 1a58aa6
@nahi nahi Tests for Java native exceptions
Signed-off-by: Charles Oliver Nutter <>
@headius headius Additional fix for JRUBY-4677 to allow re-raising an in-flight Java e…
Commits on Apr 24, 2010
@headius headius Improvements for NailMain:
* Use a single ClassCache across runs, to avoid re-jitting and re-loading code in each instance
* Fire a System.gc after releasing the client, to avoid repeat calls growing the heap unnecessarily
@BanzaiMan BanzaiMan Specs for JRUBY-4680 341c4c7
Commits on Apr 26, 2010
Wayne Meissner Update jffi-Darwin.jar with a universal ppc,i386,x86_64 build 4ef46e7
@headius headius Move ppc-darwin FFI dir to powerpc-darwin for JRUBY-4721. fee62e9
@headius headius Arity-split RubyBignum#to_s for JRUBY-4751: Java call to RubyBignum.t…
…o_s() returns generic object representation
@headius headius Make sure the "hashy" inspect uses the identity hashcode of the wrapp…
…ed object for JI.
@nicksieger nicksieger JRUBY-3153: Get a bunch more IBM JDK specs running f39260c
@headius headius Fix re-coercion of a previously interface-duck-typed Ruby object to j…
…ava.lang.Object; it should from then on return the interface impl object. Broke jruby-rack because the assignable check continued returning RubyObject even if there was a contained duck-typed impl.
@headius headius Fix for JRUBY-4747: read_nonblock error with couchrest
Looks like the missing logic for us was that when defining Errno classes we're supposed to reuse the same class for the same value. On the platform I tested, EAGAIN and EWOULDBLOCK are the same value, and so the rescue EWOULDBLOCK in couchrest rescues EAGAIN too.
@headius headius Temporary fix for JRUBY-4749: require 'rbconfig' fails on GAE because…
… of NullPointerException
@enebo enebo JRUBY-4754: NotImplementedError: the MD5() function is unimplemented …
…on this machine
@headius headius Fix for JRUBY-4733: Allow compilation of Ruby files for a specificic …
…JVM version
Commits on Apr 27, 2010
@headius headius Partial fix for too-big methods (JRUBY-2621 and JRUBY-4757): chunk 10…
…0%-literal arrays and hashes.
@headius headius Add 1.9's Thread#backtrace (JRUBY-4761) 854f255
@headius headius Fix for JRUBY-4760: throws Errno::ENOENT when file inside j…
…ar is accessed using ".." (doubledot) in the path
@enebo enebo Update jcodings and the jars that depend on jcodings 4dec942
@enebo enebo Bump versions in maven for last commit 1449353
@BanzaiMan BanzaiMan Commit c536a0d changed signature for JRuby::Compiler::JavaGenerator.g…
…enerate_javac. This spec's failure caused CI to fail miserably.
Commits on Apr 28, 2010
@nicksieger nicksieger JRUBY-4750: Fix Rake tasks not loading from custom classpath in Ant 8fcc2a2
@enebo enebo Bump version to RC2 8ee8fe4
@enebo enebo Tag out failing 1.9 spec 7c245f3
Commits on Apr 29, 2010
@headius headius Remove all synchronization from fast-path variable accessor lookup. 073df6f
@headius headius Add an alias JRubyCompiler = JRuby::Compiler for backward compat. 0e1fea8
@headius headius Add double-checked locking (the safe kind) to the getting of class va…
…r table for write.
@headius headius Fix for JRUBY-4764: Leaking fileno to ChannelDescriptor mappings in R…

This change remains on master, but I'm reverting it on 1.5 because the old weak map is a known quantity that worked for years. We'll continue to explore a hard map + finalizers on master for 1.6, and I'll file a bug for that work.

Revert "No need to use a weak map for fileno to ChannelDescriptor, since in C land unclosed fd's live forever too. Eliminates special need for a hard map for sysopen and weak reference management for all other IOs."

This reverts commit 0c012c7.


@BanzaiMan BanzaiMan Revert stdlib change for appengine 3a3ae0f
@yokolet yokolet Fix JRUBY-4765, AssertionError while getting the second new JSR223 en…
Commits on Apr 30, 2010
@headius headius Fix SHA1 hashing logic for codeCache and add a --sha1 flag to jrubyc …
…to do the same thing.
@headius headius Add the ability to pre-generate all method handles when compiling a .…
…rb file (--handles flag to jrubyc).
Commits on May 01, 2010
Wayne Meissner Implement struct-by-value parameter and return type support for FFI c…
Commits on May 02, 2010
@headius headius Don't let Finalizer hold a reference to associated object and use pro…
…per logic for getting an ID to use.
@headius headius Add block callback offline generation for jrubyc --handles. Should no…
…w allow "complete" offline compilation of scripts.
@headius headius Remove unused tempfile.rb. bdb3995
@headius headius Fixes for the fixes for JRUBY-3742: Java native threads are not added…
… to ThreadService.rubyThreadMap after being adopted.

* Make the weak RubyThreadMap actually use the reference queue (doh!)
* Revert the threadContextMap to a weak map (doh!)
@headius headius Associate non-Ruby threads in ThreadService for JRUBY-3742: Java nati…
…ve threads are not added to ThreadService.rubyThreadMap after being adopted.
@headius headius Final fixes and test for JRUBY-4264: threadContextMap leaks RubyThrea…
…d on death of adopted thread
Commits on May 03, 2010
@BanzaiMan BanzaiMan Test case for JRUBY-4760. Reuses test/jar_with_relative_require1.jar. 3571be2
Commits on May 04, 2010
@headius headius Remove rogue that snuck into our codebase. 8050d18
@enebo enebo Bump to RC3 603f15a
Commits on May 05, 2010
@headius headius Fix for JRUBY-4773: Lock contention in Ruby.allocModuleId(RubyModule) 0acae99
Commits on May 06, 2010
@headius headius Add jffi-ppc-AIX library. 90c5dad
@BanzaiMan BanzaiMan Remove garbage from Mac OS X. 8f13d32
@BanzaiMan BanzaiMan Ignore Mac OS X artifact from now on. 6407876
Commits on May 11, 2010
@qerub qerub JRUBY-4786: Add missing space to error message of Kernel#caller
Signed-off-by: Vladimir Sizikov <>
@headius headius Fix for JRUBY-4784: Lost implicit conversion from ruby Time to java.u…
Commits on May 12, 2010
@nicksieger nicksieger Update versions to 1.5.0 6769999
Commits on May 13, 2010
@nicksieger nicksieger Make sure we don't put hard-coded paths in distributables 1bea779
Commits on May 22, 2010
@yokolet yokolet Change how to get script engine's info. Instead of using property fil…
…es, constants are hard coded.
@yokolet yokolet Add a test for setting null to context classloader. fd9b8ce
Commits on May 23, 2010
@BanzaiMan BanzaiMan Fix JRUBY-4813: RubySpec: String#sub! with pattern and block raises a…
… TypeError when self is frozen

Also take care of the 1.9 mode.
Commits on May 24, 2010
@nicksieger nicksieger JRUBY-4821: Clear last error when calling #close during IO#open block 5338319
Commits on May 25, 2010
@yokolet yokolet Remove PropertyReader class, which became useless. This fix also elim…
…inates using context class loader from embed API.
Commits on May 26, 2010
@enebo enebo JRUBY-4085: Array#find can return the wrong value if it's mutated dur…
…ing iteration
Commits on Jun 01, 2010
@headius headius Fix for JRUBY-4799: Uncaught AccessibleObject.setAccessible fails on …
…App Engine

The fix here is to avoid binding any methods from non-public classes, since from Java's perspective they're not callable that way. Instead, it only uses parent class methods and implemented interface methods. This does cause a behavioral change: non-public classes will appear to have no methods now, since the setAccessible we used to do is not always possible.
@headius headius Reenable methods on private classes if setAccessible is available in …
…the current security context. JRUBY-4799.
@enebo enebo JRUBY-4790: Regression processing __END__ between JRuby 1.4 and 1.5 b764f1e
Commits on Jun 02, 2010
@headius headius Revert "When loading classes for JI, don't force them to initialize r…
…ight away (needed for compilers, etc, where class will never actually be executed)."

This reverts commit 61a000f.
@headius headius Two fixes for executeScript logic:
* In the compiled paths, do not use context.getFrameSelf as the self, since in many cases at the moment of execution no self has been set into the frame. The interpreter paths used getTopSelf, so now the compiled paths do too.
* executeScript called through the same logic Main calls through, which meant it was usually trying to compile each script like it were a command-line script. Modified executeScript to call through runInterpreter instead of runNormally.

These changes fix an issue with jrubyc --java(c) output where the generated classes could not be imported and constructed from top-level Ruby code.
@headius headius Fix for JRUBY-4832: Memory Leak when extending Java class with additi…
…onal Ruby instance variable
@BanzaiMan BanzaiMan Fix JRUBY-4842: Time#utc_offset is incorrect in small time range. Spe…
…cs are in RubySpec a186c01.
@BanzaiMan BanzaiMan Taking a low risk approach to this change.
Revert "Fix JRUBY-4842: Time#utc_offset is incorrect in small time range. Specs are in RubySpec a186c01."

This reverts commit aa7cf89.
@headius headius Fix for JRUBY-4839: ObjectSpace.undefine_finalizer does not work
We need a way to test this without ObjectSpace enabled. All our test runs currently enable ObjectSpace to pass as many tests as possible.
Commits on Jun 03, 2010
@headius headius Add a test for JRUBY-4839 to ensure finalizers are removed both with …
…and without ObjectSpace enabled.
@headius headius Additional changes for JRUBY-4799:
* Rewrite the logic to pick methods off a class and its superclasses to do a better job handling interfaces, non-public classes, and so on.
* Make the access check be a catch-all, so any exception raised will mean we don't have that access.
@headius headius Eliminate more places where we reference "1.5.0" version number in sc…
…ripting API tests.
@headius headius Eliminate calls to now-deprecated ObjectSpace.idOf 8d3c722
Commits on Jun 04, 2010
@nicksieger nicksieger JRUBY-4838: Don't block on channel stream finalization 97a40fe
@headius headius Fix for JRUBY-4803, fixed in ruby stdlib for Ruby bug #2708. 5e69d6f
@headius headius Probable fix for JRUBY-4831: Multiple block args to ActiveRecord asso…
…ciation proxy are splatted incorrectly
@enebo enebo Update jnr-posix to 1.1.4 and bump JRuby version to 1.5.1 ff514b3
@headius headius Fix for JRUBY-4825: __FILE__ is not expanded when it is used from wit…
…hin a a compiled ruby script used as the main class of an executable jar
Commits on Jun 06, 2010
@enebo enebo Update maven poms to 1.5.1 f3a3480
Commits on Aug 03, 2010
@headius headius Fix for JRUBY-4767: JRuby and open-uri File handle issue
The fix here is to no longer hold a hard reference to a Selector in each RubyThread, since on some environments (like Tomcat) RubyThread objects can build up a bit. Even a modest number of RubyThread objects will eat 3*N file descriptors for epoll selection, which quickly hits the ulimits on a typical Linux box. By opening and closing them for each select, we pay a small per-select hit, but it fixes the problem.
@nicksieger nicksieger JRUBY-4981: Fix permgen problem with anonymous classes piling up 850bc0b
@nicksieger nicksieger JRUBY-4981: Fix inefficient sort comparator approach 57617f6
Commits on Aug 07, 2010
@headius headius Improvement to the JRUBY-4981 interface-impl classloader fix. 76b128e
Commits on Aug 12, 2010
@nahi nahi JRUBY-5007: add 'charset' parameter to mediatype of WEBrick http serv…
…er's default error page.

mediatype should have 'charset' parameter as a conventional manner.
Commits on Aug 16, 2010
@nahi nahi Revert "JRUBY-5007: add 'charset' parameter to mediatype of WEBrick h…
…ttp server's default error page."

CRuby's release manager decided to apply the original patch which is
differ from Apple and RedHat published.
I'll revert this and apply the following fix by CRuby development team.
@nahi nahi JRUBY-5007: import an upstream security fix of WEBrick (CVE-2010-0541) 51f145c
Commits on Aug 18, 2010
@headius headius Fix for JRUBY-5021: imap-over-ssl connections left to GC do not clean…
… up completely


Commits on Aug 20, 2010
@enebo enebo Bump 1.5 branch to upcoming 1.5.2 1c5e29d
Commits on Aug 27, 2010
@headius headius Not particularly pretty fix for potential NPE if there's an error get…
…ting selector or setting to non-blocking. This should have thrown at least an IOError before, but now it can throw NPE. Better resource cleanup code here would be really nice.
Commits on Sep 02, 2010
@BanzaiMan BanzaiMan Fix JRUBY-5052: Upgrade to the latest version (1.6.1) of Joda time 4f2a7e4
Commits on Sep 08, 2010
@headius headius Revert "Fix JRUBY-5052: Upgrade to the latest version (1.6.1) of Joda…
… time"

This reverts commit 4f2a7e4.

JodaTime was merged by mistake to jruby-1_5. This is too big a change for a minor release, so we have opted to revert it.
@headius headius Selector pool implementation.
The fixes for JRuby 1.5.2 involved avoiding a per-thread selector in favor of
always opening and closing the selector around blocking operations. This
worked for Linux and BSD, where selector lifecycle is fairly clean. But on
Windows, selector closing involves shutting down a socket, which goes into
TIME_WAIT state for some amount of time. As a result, heavy IO operations on
Windows could saturate the max number of socket connections for a given
process, preventing new selectors from being opened. This fix introduces a
soft-referenced pool of selector objects. There will only be as many live
Selector objects as there have been recent concurrent selects, and they will
age out on a soft-reference lifecycle, which ultimately means unused
selectors will be dereferenced and eventually finalized at GC boundaries.
@headius headius SelectorPool: move synch to only the public methods, add copyright/li…
…cense and docs.
Commits on Sep 16, 2010
@yokolet yokolet Add ScriptEngine.FILENAME handling to three eval methods. Also, fix l…
…oad path setup.
@headius headius Hack to work around Scala shipping classes that break Class.getDeclar…
…edClasses. JRUBY-5092.
@headius headius Fix for JRUBY-5093:
* Re-poll for thread events before locking the ThreadLibrary-related lock. This helps prevent (but does not guarantee) any timeout event from getting "lost" between a poll and the eventual locking.
* Move RubyThread.interrupt out of the RubyThread.receiveMail synchronized section, since it doesn't need synchronization and it may need to acquire a lock to notify the currentWaitObject. Locking against RubyThread and then currentWaitObject lead to deadlocks in our builds (and probably in real code too).
Commits on Sep 17, 2010
@olabini olabini Add a fix for JRUBY-5076 ba97fc3
@yokolet yokolet Fix JRUBY-4948. efe6e1b
Commits on Sep 18, 2010
@yokolet yokolet Fix for JRUBY-4944 2d90a9a
Commits on Sep 21, 2010
@nicksieger nicksieger JRUBY-5098: Make sure to use ENV['PATH'] and not System.getenv("PATH") 83171f7
Commits on Sep 25, 2010
@headius headius Fix for JRUBY-5100. Can't figure out a good way to write a test for t…
Commits on Sep 27, 2010
@enebo enebo Bump versions to 1.5.3 7b26de3
@yokolet yokolet Fix for embed/variable/ 97d0f6d
@yokolet yokolet Correct typo in jsr223/ a12d176
@dekellum dekellum JRUBY-4937: Add RubyFile.getUmaskSafe() to cache/sync and avoid troun…
…cing umask

Signed-off-by: Hiro Asari <>
@enebo enebo JRUBY-5011 (jrubyc --java): 'cannot find symbol' if function def has …
…more than 3 arguments
Commits on Oct 07, 2010
@BanzaiMan BanzaiMan Fix JRUBY-5110: kernel.system not working in 1.5.3 on Windows
See also: JRUBY-5098, JRUBY-4834.
Commits on Oct 12, 2010
@BanzaiMan BanzaiMan Fix JRUBY-5110. On Windows, ENV and JAVA_ENV keys are case-insensitive. 2ad723d
@BanzaiMan BanzaiMan Redo the fix of JRUBY-5110 a little more carefully.
It turns out that, on Windows, ENV_JAVA should be case-sensitive, while ENV is not. They are both case-sensitive on all other platforms. So, subclass org.jruby.RubyGlobal.StringOnlyRubyHash for case-insensitive lookup, and instantiate ENV as an instance of that class. ENV_JAVA remains the same.
@BanzaiMan BanzaiMan Refactor op_aref and op_aset to be case-aware. 861513d
Commits on Oct 20, 2010
@nahi nahi JRUBY-5123: Fixed 2 issues for unmarshalling TYPE_IVAR data.
In Ruby marshal format, TYPE_IVAR('I') is used when;
1) any ivar is added to built-in object (String, etc), or
2) ivar is added by Class#_dump (old API for customized marshal data)
   for serializing ivars.
JRuby < 1.6 could not handle TYPE_IVAR correctly when it's used
recursively. Fixed by introducing MarshalState for recursive state mgmt.
@headius headius Add missing test from previous commit. 41540ef
@nahi nahi JRUBY-5064: ChannelStream#read() should return an unsigned value.
For InputStream compatibility. Reading int from buffered bytes works but
reading from unbeffered bytes did not work.
@headius headius Fix for JRUBY-5132: java.awt.Component.instance_of?() expects 2 args
Added instance_of? as a reserved name, so it's not overwritten by Java methods.
@headius headius Fix for JRUBY-5138: requiring 'ffi' defines class method :error on Mo…
Commits on Oct 23, 2010
Naoto "Kevin" IMAI TOYODA Cucumber Japanese example raises exception on JRuby
It is caused by ByteArrayLexerSource's bug:
ByteArrayLexerSource#read() must return non-negative value (like 0xe3)
except when detecting EOF, but it can returns negative value (like
0xffffffe3) which causes EncodingException.

Resolution: mask ByteArrayLexerSource#read() with 0xff except EOF.

Signed-off-by: Yoko Harada <>
Commits on Oct 27, 2010
@BanzaiMan BanzaiMan Fix JRUBY-4766: java.lang.VerifyError: org/jruby/ext/posix/LinuxLibC$…

Updated jaffl.jar to 0.5.4.
Commits on Oct 29, 2010
@BanzaiMan BanzaiMan Use the appropriate lookup method for finding ENV["PATH"] on all plat…
…forms. This should fix JRUBY-5110 completely. (Let the third time be a charm!)
Commits on Oct 30, 2010
@BanzaiMan BanzaiMan Test case for JRUBY-5110. 97a7924
Commits on Nov 05, 2010
@headius headius Fix for JRUBY-4908: IO.popen4 returns the wrong pid in Linux edadd2b
@headius headius Fix test_io's test_sh_used_appropriately to use a more consistent ps …
…output (cures failure on Linux).
@headius headius One more fix to get test_io sh test working with a headless machine (…
…ps -a only shows processes with a controlling terminal)
@headius headius Merge --profile support to JRuby 1.5.
Squashed commit of the following hashes (master) with 1.5-appropriate cleanups:

(in reverse order of application, i.e. first commit is at the bottom)
Commits on Nov 06, 2010
@nahi nahi Fix for JRUBY-5122: Webrick socket.readline causes 100% cpu usage
Do not set NONBLOCK bit to sockets accepted by WEBrick server to avoid
busy loop.  Busy loop bug in RubyIO caused by NONBLOCK bit is fixed in
master but it's rather big change for stable branch.  So we decided to
just remove NONBLOCK bit at jruby-1_5 as a one-off change for this

As far as I understand, NONBLOCK bit is added to avoid interpreter block
by write system call.([ruby-dev:26477])  Ruby level IO#write is
originally a blocking call but IO#write of CRuby 1.8 might block
*interpreter* by calling write system call. With NONBLOCK bit, io_fwrite
in io.c does retry until the whole given buffer is written.

In JRuby, which runs native threads, it won't block by write so we don't
need to set NONBLOCK bit here.

This change might affect to applications which expect sockets accepted
by WEBrick to be non-blocking.  Almost all IO methods for reading are
blocking method so it won't happen I believe.
Commits on Nov 08, 2010
@enebo enebo Bump for 1.5.4 1e54517
@enebo enebo Add support for jruby-win32ole if installed as a gem f04574c
@headius headius Revert "One more fix to get test_io sh test working with a headless m…
…achine (ps -a only shows processes with a controlling terminal)"

This reverts commit 80ab0e9.
@headius headius Revert "Fix test_io's test_sh_used_appropriately to use a more consis…
…tent ps output (cures failure on Linux)."

This reverts commit 8b9bba7.
@headius headius Revert "Fix for JRUBY-4908: IO.popen4 returns the wrong pid in Linux"
This reverts commit edadd2b.
Commits on Nov 09, 2010
@vvs vvs JRUBY-4865: Ant.load_from_ant is broken on Windows 827258b
@enebo enebo Bump from 1.5.4 to 1.5.5 because jruby-jars booch 4bd4200
Commits on Nov 18, 2010
@calavera calavera fix JRUBY-4898: java.util.ConcurrentModificationException
Signed-off-by: Charles Oliver Nutter <>
Commits on Nov 30, 2010
@calavera calavera Explicitly add javac path to classpath before loading the ant extensi…
…on. It copies the behaviour of the ant script.
@nicksieger nicksieger ant.rb: Use ant.bat on Windows b1906f8
@nicksieger nicksieger JRuby launcher 1.0.3 Windows binaries c9e6654
@nicksieger nicksieger JRuby launcher 1.0.3 gem
@bobmcwhirter bobmcwhirter Reify class methods to java statics.
Signed-off-by: Charles Oliver Nutter <>
@bobmcwhirter bobmcwhirter A little less meta.
Signed-off-by: Charles Oliver Nutter <>
@headius headius Add spec for JRUBY-5127, fixed in previous commits:
a46016c A little less meta.
ceb8260 Reify class methods to java statics.
@headius headius A few 1.5-compatible fixes and backports to get static method reifica…
…tion working properly.
Commits on Dec 01, 2010
@ribrdb ribrdb Explicitly use the JRubyClassLoader when unmarshaling Java objects
Signed-off-by: Charles Oliver Nutter <>
@nahi nahi Changed the logic for checking given argument according to MRI 1.8.7 …

MRI uses rb_check_string_type instead of checking respond_to? :to_str
directly from 1.8.6, and checks respond_to :getc AND :read for IO check.
@enebo enebo Bump version to 1.5.6 e34fde6
Commits on Dec 02, 2010
@BanzaiMan BanzaiMan Re-fixing JRUBY-4352: Rbconfig's Config::CONFIG provides wrong name f…
…or Windows 2008 Server, based on input from Rakesh Arora. (See 07fb757.)
@nicksieger nicksieger JRUBY-4774, WARBLER-15: Fix classpath and load path issues related to…
… file paths containing spaces
@nicksieger nicksieger Merge branch 'jruby-1_5' of into jruby-1_5 9cf97c3
Commits on Dec 13, 2010
@nicksieger nicksieger Appease URLClassLoader which requires directories to end in slashes 8740a6b
Commits on Dec 16, 2010
@yokolet yokolet Adds options to set classloader for JSR223 engine. b8cfd2b
Commits on Jan 16, 2011
@calavera calavera fixes JRUBY-4800: Digest::Class.digest should accept a variable numbe…
…r of arguments
Commits on Feb 18, 2011
@nahi nahi Fix JRUBY-5524: FileUtils is vulnerable to symlink race attacks
This patch is imported from upstream temporarily. Here's a commit log of
CRuby's fix.

 * lib/fileutils.rb (FileUtils::remove_entry_secure): there is a
   race condition in the case where the given path is a directory,
   and some other user can move that directory, and create a
   symlink while this method is executing.
   Reported by: Nicholas Jefferson <nicholas at>