Recent News

JRuby 1.6.6 Released

Monday, January 30 2012

The JRuby community is pleased to announce the release of JRuby 1.6.6.

The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.5.1 (and lower) are encouraged to upgrade to 1.6.6.

Because master keeps getting further and further away from our 1.6 branch we have decided to make this our last 1.6 release. We largely fulfilled our goal of having reasonable 1.9 support. Follow up fixes for 1.9 support will only be fixed on master from this point forward. JRuby 1.7.0 will be the next release of JRuby.

Notable Changes:

  • Updated stdlib to match Ruby 1.8.7p357 and 1.9.2p312
  • Updated RubyGems to 1.8.15
  • Multiple 1.9-mode yield/splat bugs fixed (pp, rspec 2.8 working again)
  • Multiple 1.9-mode encoding bugs fixed
  • Critical fixes in Random and Fiber
  • Map Scala operator methods to symbolic names ($plus, etc)

1.6.6 Issues Resolved:

  • JRUBY-6386 time.localtime not taking any arguments
  • JRUBY-6384 yaml broken for last 1.6.6 build?
  • JRUBY-6383 Scala integration breaks with 1.6.6
  • JRUBY-6382 1.9: Padrino can’t generate an app
  • JRUBY-6381 java.util.Collection#each dose not respect to_ary defined by objects that are iteratered
  • JRUBY-6380 Original array is overwritten when select! is called on a copy
  • JRUBY-6377 rspec .should include() fails in –1.9 mode
  • JRUBY-6375 Uninformative YAML parser error
  • JRUBY-6373 ThreadError: Mutex is not owned by calling thread, when interrupting thread using a Ruby Mutex
  • JRUBY-6370 Regression in 1.6.6 in –1.9 mode
  • JRUBY-6367 –pre command line switch not working in 1.9 runtime
  • JRUBY-6366 More array splatting bugs in 1.9 mode
  • JRUBY-6361 RbConfig reports wrong OS type on Solaris
  • JRUBY-6359 Can’t convert nil to String building ActiveSupport RDoc in 1.9 mode
  • JRUBY-6354 SyntaxError: (RegexpError) invalid multibyte escape in 1.9 mode in the 50th iteration
  • JRUBY-6338 JRuby does not look for .jrubyrc in home directory on Windows
  • JRUBY-6324 random seed for srand is not initialized properly
  • JRUBY-6323 JRuby does not pay attention to either -U or LANG in determining encoding for ARGV (it is always ASCII-8BIT)
  • JRUBY-6319 ‘binding’ returns wrong binding
  • JRUBY-6318 Tempfile#open does not return the value of the block given to it
  • JRUBY-6307 Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
  • JRUBY-6303 Cannot gem install from a remote repository in 1.9 mode
  • JRUBY-6295 Dir.chdir, $HOME and $LOGDIR behavior
  • JRUBY-6284 Calls to Kernel#exit result in an exception printed on stderr
  • JRUBY-6282 Colon is not allowed in a file name on Windows
  • JRUBY-6281 1.9: Applet does not work in the 1.9 mode
  • JRUBY-6272 Encoding exception running JRuby 1.6.5 (1.8 mode)
  • JRUBY-6233 jruby-complete-1.6.5.jar!/META-INF/jruby.home/bin/rake missing
  • JRUBY-6227 1.9: Struct#members and Struct::members should return an Array of Symbols in 1.9
  • JRUBY-6224 In MRI 1.9 the flag for Module#const_get also controls lookup of toplevel constants but not in JRuby
  • JRUBY-6217 Coverage module not working with Rails ActiveRecord associations
  • JRUBY-6214 Dir#rmdir raises improper exception if directory is not empty.
  • JRUBY-6212 IO#inspect in 1.9 could be prettier
  • JRUBY-6209 Hash#rehash does not work under some condition
  • JRUBY-6208 bad gem file creation using mode –1.9
  • JRUBY-6206 Incorrect SHA1 on two required packages in Maven Central
  • JRUBY-6205 ‘Bad file descriptor’ when using IO.popen4 with OpenJDK 7
  • JRUBY-6204 UTF-8 char in XML hangs in Joni
  • JRUBY-6202 JIT-ed class names only use method names, causing collisions
  • JRUBY-6201 File reading performance regression
  • JRUBY-6200 1.9: Loading some Unicode characters results in non-printable characters on Windows
  • JRUBY-6199 JRuby is hardcoded to use ‘-mmacos-version-min=10.4’ which is not compatible with ‘-rpath’ being used
  • JRUBY-6198 When calling dup on file open in binmode the new object does not respect binmode
  • JRUBY-6192 jruby::Handle declarations use ‘extern “C”’, causing linker symbol mismatches
  • JRUBY-6182 Marshal.dump yields different value after adding/removing instance variables (and disagrees with MRI)
  • JRUBY-6176 SecureRandom.uuid is not implemented
  • JRUBY-6173 pp is broken in –1.9 mode
  • JRUBY-6172 Requiring a file from a JAR that has a path inside the JAR that coincides with a path on the file system that includes a symlink fails
  • JRUBY-6171 Enumerable does not splat
  • JRUBY-6170 Fibers are broken in JRuby 1.6.5

JRuby 1.6.5.1 Released

Tuesday, December 27 2011

The JRuby community is pleased to announce the release of JRuby 1.6.5.1.

JRuby 1.6.5.1 is a special release with a single patch applied to our JRuby 1.6.5 source to correct CERT vulnerability CERT-2011-003. All users are recommended to upgrade to JRuby 1.6.5.1 to get this security fix.

A fuller JRuby 1.6.6 with bug fixes from the last two months will be released mid-January…

Background for the CERT advisory:

(for the impatient: predictable hashing algorithm and open access to a hash from a server can possibly allow Denial of Service (DOS) attacks)

Hashing 101

Hash tables apply a math function (hashing function) to the key of a key-value pair. The result of the hashing function is a location to a hash bucket which stores the key/value pair internally:

a[:heh] = 1
hashing_function(:heh) -> store :heh/1 in hash bucket #3
a[:foo] = 2
hashing_function(:foo) -> store :foo/2 in hash bucket #13
a[:bar] = 3
hashing_function(:bar) -> store :bar/3 in hash bucket #1

Hashes have many buckets and in theory all key/value pairs added to a hash will get spread out evenly across the hashes buckets. In practice, some number of keys will end up hashing into the same hash bucket (known as a hashing collision). As you get more key/value pairs stored to the same hash bucket the time to access those particular key/value pairs will slow down. This is because you need to walk some portion of the entries in the bucket to find the specific one you are looking for (hash structures will often make entries in an individual bucket a simple list structure).

a[:gar] = 4
hashing_function(:gar) -> store gar/4 in hash bucket #3 (same bucket as :heh)

In this example, accessing a[:gar] and a[:heh] may take longer than the other keys because they are sharing a hash bucket.

The Attack

The general application of the attack is for “the bad guys” to figure out a large set of values which will hash to the same hash bucket. Once they create this list they will send all those values to a server. The server will store them in a hash (think parameter list in Rack, for example). The act of storing or accessing any of those values takes longer and longer as the number of entries in a single hash bucket grows. The result will be a Denial Of Service (DOS) attack if enough values get stored.

hashing_function(:hostname) -> hash bucket #3
hashing_function(:aZ1) -> hash bucket #3
hashing_function(:cvg) -> hash bucket #3
hashing_function(:azr) -> hash bucket #3
... # many elided
hashing_function(:1fr) -> hash bucket #3
hashing_function(:yu3) -> hash bucket #3
hashing_function(:hyX) -> hash bucket #3

host = params[:hostname] # Uh oh! need to find this amongst many bucket buddies

The Fix

Adding a little bit of randomization to the hashing algorithm ends up making it much, much more difficult to figure out how to generate this type of attack. JRuby 1.6.5.1 (and all later JRuby releases) all have this additional randomization built into the hashing algorithm. The result should be decent hash bucket distribution that is difficult for attackers to predict. More information

This vulnerability is not exclusively an issue of JRuby. Other Ruby implementations also have a similar issue (also patched today). In fact, Java and PHP also appear to be susceptible to this style of attack. For more information, please see the CERT announcement.

Also, consider that language implementations are really only susceptible to this attack via frameworks which allow an external hacker to store arbitrary and/or unbounded key/values into a hash. Ruby Rack had this vulnerability, but they have fixed things so that the amount of parameters stored is bounded by a size to remove the possibility of a DOS attack. Rack users should upgrade to the latest version.

JRuby 1.6.5 Released

Tuesday, October 25 2011

The JRuby community is pleased to announce the release of JRuby 1.6.5.

The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.4 (and lower) are encouraged to upgrade to 1.6.5.

Notable Changes:

  • Many –1.9 encoding issues resolved
  • .jrubyrc support for storing convenient execution options
  • New cext.enabled property to turn off only C extentions but not native support
  • C extension support now uses less memory
  • Updated to Rubygems 1.8.9
  • -rjruby/thread_dump adds a USR2 Ruby thread dumper
  • Improved peformance interacting directly with Java Maps
  • Improved fiber performance and support for JVM coroutines
  • Improved zlib support
  • 36 Issues resolved

1.6.5 Issues Resolved:

  • JRUBY-5324 StringScanner should be 1.9 aware
  • JRUBY-5499 Update to rubygems 1.5.2 since 1.5.0 has severe bugs
  • JRUBY-5735 I18n handling of Rails 3.0 differs between 1.9 and 1.8 compatibility mode
  • JRUBY-5758 bundler not working in jruby 1.6.1 (ruby-1.9.2-p136) — works in 1.8 mode
  • JRUBY-5763 Encoding::CompatibilityError with UTF-8 encoded ERB template
  • JRUBY-5778 net http and gzip decompression in 1.9
  • JRUBY-5793 java.lang.ArrayIndexOutOfBoundsException installing chicken_little gem
  • JRUBY-5794 1.9: Bundler fails to install certain gems from github
  • JRUBY-5861 Installing gems that have unicode characters in the gemspec cause an error in 1.9 mode
  • JRUBY-5885 java.util.Map#[]= is up to 20 times slower than #put
  • JRUBY-5927 JRuby in 1.9 mode fails text-hyphen’s test/test_bugs.rb the same way that 1.8 mode does
  • JRUBY-5946 IO.select is returning write array with nil elements
  • JRUBY-5994 Bad performance using hash accessors on ConcurrentMap
  • JRUBY-6017 Undocumented windowBits feature of Zlib::Infrate/Deflate
  • JRUBY-6019 A Ruby instance is not fully unregistered from the BeanManager on teardown
  • JRUBY-6030 After calling const_set, setting const name didn’t set Class.name
  • JRUBY-6031 ActiveRecord::JDBCError in JRuby 1.6.4
  • JRUBY-6034 NullPointerException at RubyProc.java:248
  • JRUBY-6036 REXML fails on XML with UTF-8-chars on jruby in 1.9-mode
  • JRUBY-6049 Bignum#[] returns an incorrect result when Bignum is given
  • JRUBY-6050 Fixnum#[] blows when small Bignum is given
  • JRUBY-6053 [1].pack(“b2”) returns an 1-length string
  • JRUBY-6060 NKF converts strings into wrong encoding
  • JRUBY-6064 Builder gem incompatible in –1.9 mode
  • JRUBY-6070 TCPSocket#new issues with local_addr and local_port
  • JRUBY-6075 ant dist fails on both master and jruby-1_6 branches
  • JRUBY-6077 Allow loading a Ruby source file from the class path using the fully qualified name
  • JRUBY-6079 gherkin.lexer.LexingError running cucumber example i18n/it jruby using compatibilty mode 1.9
  • JRUBY-6101 JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
  • JRUBY-6108 bin/jruby script has incompatible bourne shell syntax
  • JRUBY-6116 Errors on String#lines
  • JRUBY-6118 Dir.glob duplicate folder names
  • JRUBY-6135 CASEFOLD systems magically screw up globs with . or .. in them
  • JRUBY-6139 JRuby 1.9 mode encoding problem on to_yaml method
  • JRUBY-6141 All MatchData objects resulting from an invocation of String#scan are updated with the current match
  • JRUBY-6144 1.9 RubySpec failures on BEGIN

JRuby 1.6.4 Released

Monday, August 22 2011

The JRuby community is pleased to announce the release of JRuby 1.6.4.

The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.3 (and lower) are encouraged to upgrade to 1.6.4.

Notable Changes:

  • 1.9 language and core class fixes
  • New Native MacOS installer
  • Overloaded Java method dispatch perf fix
  • Java dispatch block cercion perf fix
  • Disabling native now disables C extension support
  • JRuby can be built with 1.9 mode by default
  • 48 Issues resolved

1.6.4 Issues Resolved:

  • JRUBY-928 Java arrays don’t inherit from java.lang.Object in Rubified Java class hierarchy
  • JRUBY-4699 Different select() behavior compared to MRI
  • JRUBY-4717 1.9 New digest methods are missing (base64digest and base64digest!)
  • JRUBY-4925 Evaluation of constant happens before rhs of assignment (different to mri)
  • JRUBY-5146 Enumerator#next has performance issues.
  • JRUBY-5441 Attempt to create decimal 2.2250738585072012e-308 sends JVM into tight infinite loop
  • JRUBY-5459 JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
  • JRUBY-5496 Need to split jar for App Engine
  • JRUBY-5546 Using -J-Djruby.reify.classes=true sometimes crashes JRuby 1.6.0RC2
  • JRUBY-5564 become_java! does not create java class which can be loaded by the context-classloader (as of >= 1.6.0.RC1)
  • JRUBY-5593 stat.st_gid unsupported on this platform (NotImplementedError)
  • JRUBY-5622 Regex string interpolation breaks unicode properties
  • JRUBY-5737 error: “Unsupported platform: unknown-darwin” when using JRuby’s ffi and Java 1.7 macosx-port build
  • JRUBY-5771 WeakRef::RefError wrongly defined as ::RefError, causing lots of runtime warnings when using weakref
  • JRUBY-5809 1.9 String.inspect produces wrong output on UTF-8 string
  • JRUBY-5896 Could not initialize class com.kenai.jaffl.struct.Struct$Constants
  • JRUBY-5906 jruby.reify.classes fails with NPE
  • JRUBY-5909 Converting range to array with zip results in TypeError
  • JRUBY-5915 “gem build” results in bogus gemspec in –1.9 mode
  • JRUBY-5918 Float marshal depends on locale
  • JRUBY-5922 Magic comment processing blows up on files with only a comment line with no newline
  • JRUBY-5924 Wrong Behavior at MatchData#end and Strings with special characters
  • JRUBY-5926 IO#gets and StringIO#gets both throw exceptions when you pass in a limit in 1.9 mode
  • JRUBY-5931 Wrong handling of “special” letters encoded in utf-8
  • JRUBY-5932 IPSocket.peeraddr should take an argument to note do a lookup
  • JRUBY-5933 ENV[]= causes segfault when accessed concurrently from different runtimes
  • JRUBY-5935 Add support for the ‘coverage’ lib in 1.9 mode
  • JRUBY-5936 IO.select throws ArrayIndexOutOfBoundsException
  • JRUBY-5940 StringIO#set_encoding is not implemented
  • JRUBY-5941 ZeroDivisionError with DateTime strftime(“%S”)
  • JRUBY-5950 When to_ary from yield does not return an array we ClassCast
  • JRUBY-5954 Incorrect Method#parameters in 1.9 mode
  • JRUBY-5960 Something in rails causes File#each to throw InvalidByteSequenceError in 1.9 mode
  • JRUBY-5963 Performance regression in 1.6.x in using procs as Java interface impls (closure conversion)
  • JRUBY-5965 JavaClass#handleScalaSingletons() raises & catches hundreds of unnecessary NPEs
  • JRUBY-5967 NPE when loading rails
  • JRUBY-5968 Mac OSX ant dist failure w/ patch
  • JRUBY-5971 Pass Psych taint tests
  • JRUBY-5973 Failure to connect to Nailgun server produces confusing error
  • JRUBY-5975 Support for –oc and –ic option in NKF
  • JRUBY-5979 Process::Status.coredump? implementation w/ patch and ruby test script
  • JRUBY-5980 Unable to call varargs constructor with 0 arguments.
  • JRUBY-5981 Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
  • JRUBY-5984 Java integration broke with latest jruby-1_6 branch HEAD
  • JRUBY-5989 MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
  • JRUBY-5997 Block argument handling is inconsistent in 1.9 mode
  • JRUBY-5998 Enumerator#each on enumerators created with Enumerator.new in 1.9 mode is slow
  • JRUBY-6007 Extract some classes from NKF

JRuby 1.6.3 Released

Thursday, July 07 2011

The JRuby community is pleased to announce the release of JRuby 1.6.3.

The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.2 (and lower) are encouraged to upgrade to 1.6.3.

Notable Changes:

  • 1.9 language and core class fixes
  • Ruby object construction performance boost
  • Require performance improvements
  • Windows native exec fixes
  • 39 Issues resolved

1.6.3 Issues Resolved:

  • JRUBY-2457 Instantiation of Ruby subclass of Java class does incorrect constructor argument check
  • JRUBY-5511 1.9: Failing character iteration specs for StringIO in 1.9 mode
  • JRUBY-5669 RubySpec: String#strip failures (1.9 mode)
  • JRUBY-5716 Enumerable should provide each_with_object
  • JRUBY-5719 Trivial patch to bin/jruby to allow spaces in the path
  • JRUBY-5722 Duplicate class definition issue in 1.9 mode
  • JRUBY-5724 jrubyc generates classes with the wrong names
  • JRUBY-5743 Build fails to run on OpenJDK build on OS X 10.6
  • JRUBY-5768 apparent bug in mkmf logic
  • JRUBY-5773 assignment in a method with default argument strip off other arguments.
  • JRUBY-5807 1.9: String.rstrip brokes UTF-8 string.
  • JRUBY-5813 FFI::AutoPointer occasionally calls releaser proc when GC’d, even if autorelease is set to false
  • JRUBY-5820 HashMap#map does not splat the arguments to the block
  • JRUBY-5824 exec(env, command) and Process.spawn(env, command) throw Errno::ENOENT exception
  • JRUBY-5827 FFI enum always maps the value 0
  • JRUBY-5828 FFI Structs no longer support bools
  • JRUBY-5833 $LOAD_PATH scanning slowness
  • JRUBY-5835 ruboto: File#read fails with jruby-jars-1.6.2
  • JRUBY-5837 Building jruby in git-free environment fails
  • JRUBY-5839 Enumerable#map is picky about it’s internal block arguments in –1.9 mode
  • JRUBY-5840 Rails won’t start with -X+C
  • JRUBY-5841 Call to ScriptingContainer#setCurrentDirectory is ignored after a call to ScriptingContainer#put
  • JRUBY-5844 jruby -x (executing ruby embedded into a message) fails
  • JRUBY-5849 make JAVA_VM to be set from environment
  • JRUBY-5850 jruby –1.9 : Exception in thread “RubyThread-1: threadtest.rb:1” java.lang.LinkageError: loader (instance of org/jruby/util/JRubyClassLoader): attempted duplicate class definition for name: “threadtest$block_0$RUBY$true?”
  • JRUBY-5853 Added WIN32OLE_EVENT#off_event
  • JRUBY-5854 conflicting license info in FFI
  • JRUBY-5856 CLONE -Kernel.exec will not use a modified ENV PATH to locate commands on Windows
  • JRUBY-5857 Should not be able to set ENV keys that contain an =
  • JRUBY-5863 Named captures cause crash when there is no match
  • JRUBY-5864 jruby bash scripts do not work with msys/mingw
  • JRUBY-5871 java.lang.NegativeArraySizeException from RubyEnumerator (after JITed)
  • JRUBY-5875 extending Struct and override initialize would make Marshal fail
  • JRUBY-5878 Enumerator.map is not yielding all values
  • JRUBY-5883 Hash Subclass#== not respected when checking equality of collections.
  • JRUBY-5887 Strange error in classloader
  • JRUBY-5888 missing File#readbyte
  • JRUBY-5889 Problem running JRuby 1.6.2 (via jruby-jars.gem) on 32-bit Systems
  • JRUBY-5900 java.lang.ClassFormatError: Invalid method Code length

JRuby 1.6.2 Released

Tuesday, May 24 2011

The JRuby community is pleased to announce the release of JRuby 1.6.2.

JRuby 1.6.2 is our second update to 1.6.x. The main motivation besides spinning incremental releases quicker was a nasty YAML bug which prevented a number of Rubygems from installing (see JRUBY-5581 – ArrayIndexOutOfBounds problem). Expect JRuby 1.6.3 in a couple of weeks.

The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.1 (and lower) are encouraged to upgrade to 1.6.2.

Notable Changes:

  • YAML problem generating an ArrayIndexOutOfBounds Exception JRUBY-5581
  • Java names of the form getX were not getting aliases of get_x, x (regression)
  • A couple of embedding errors (JRUBY-5734, JRUBY-5635)
  • A few 1.9 issues resolved

1.6.2 Issues Resolved:

  • JRUBY-5805 Kernel.warn should use 2 writes instead of 1 puts
  • JRUBY-5802 Problem loading yaml string in 1.9 mode with JRuby 1.6 and newer
  • JRUBY-5791 rvm install jruby-head rewrite’s the current rakes hash-bang invocation to be: #!/usr/bin/env jruby
  • JRUBY-5788 Java names with only on capital letter not getting Ruby shortcuts defined
  • JRUBY-5787 ConcurrencyError from Array#choice when the Array was truncated before
  • JRUBY-5786 SelectorPool file descriptor leak
  • JRUBY-5776 secure_random.rb broken on jruby (RangeError: bignum too big to convert into ‘long’)
  • JRUBY-5769 SSH connection can fail unpredictably
  • JRUBY-5762 Proc#=== is not same as Proc#call in 1.9 mode.
  • JRUBY-5740 zip with Range argument does not work in 1.9 mode
  • JRUBY-5734 Repeatedly getting ScriptEngine causes (NameError) uninitialized constant #<Class:0x………>::ARGV
  • JRUBY-5733 String#unpack: @ directive doesn’t work on substrings
  • JRUBY-5729 Process.respond_to?(:fork) must return false
  • JRUBY-5728 Array#pack is no longer threadsafe
  • JRUBY-5712 Threading issues in 1.6.0 and 1.9 mode
  • JRUBY-5689 Regression: wrapException throws unexpected exceptions depending on previously-run code
  • JRUBY-5674 Cannot override Fixnum operators
  • JRUBY-5665 RubySpec: String#scan failures
  • JRUBY-5635 ScriptingContainer.put() does not always work (race condition?)
  • JRUBY-5624 Class.new { p eval(“self”, binding) }
  • JRUBY-5606 asprintf does not exist on Solaris, so C extensions do not build
  • JRUBY-5581 gem install throws java.lang.ArrayIndexOutOfBoundsException
  • JRUBY-4828 Null-byte vulnerability

JRuby 1.6.1 Released

Tuesday, April 12 2011

The JRuby community is pleased to announce the release of JRuby 1.6.1.

JRuby 1.6.1 is our first update to 1.6.0. The primary goal of the 1.6.x series is to round out our 1.9 support by fixing any reported incompatibilities. Of course, as with any JRuby release, we will continue fixing any found incompatibilities and also improve performance. All users of 1.6.0 (and lower) are encouraged to upgrade to 1.6.1.

Notable Changes:

  • Numerous 1.9-mode features and bugs fixed
  • Various fixes to installing and running C extensions
  • Kernel.exec on windows does a native exec (CreateProcess)
  • Performance fixes for non-blocking IO methods
  • Performance tweaks for Array, String, and a few other core classes
  • Updated JSR292 (invokedynamic) support
  • 193 commits and 47 issues resolved since 1.6.0

1.6.1 Issues Resolved:

  • JRUBY-2126 jirb outputs ???? instead of Japanese characters
  • JRUBY-2488 Ctrl-D does not work in ‘jirb’
  • JRUBY-3943 19: IO objects should use internal encoding to transcode output strings
  • JRUBY-4791 IRB with readline “leaks” streams, leaving GC to clean them up
  • JRUBY-5044 JRuby throws invalid runtime exception when loading C extensions in different runtimes
  • JRUBY-5285 jruby-rake-plugin doesn’t play nice with bundler
  • JRUBY-5396 19: YAML anchors & alias merging regression
  • JRUBY-5590 IRB completion fails in 1.9 with multiple dot notation elements
  • JRUBY-5591 Kconv.kconv throws an NPE
  • JRUBY-5592 JRuby 1.6 done blowed up RUBYOPT
  • JRUBY-5594 Seeing ConnectionPendingException in my code
  • JRUBY-5596 Improve Dalli IO performance
  • JRUBY-5597 assignment to Java::byte[] creates range error for values greater than 127 JRUBY-5598 cext/src/invoke.cpp doesn’t include alloca.h
  • JRUBY-5599 install-dev-gems target has gems ordered incorrectly
  • JRUBY-5600 dist-bin ant target fails because rspec is not installed.
  • JRUBY-5601 C extension fails to build on Solaris with newer GCC because of -std=c99
  • JRUBY-5602 IndexOutOfBoundsException in Dir.glob_helper for file: path
  • JRUBY-5604 JRuby version string should use MRI’s format
  • JRUBY-5606 asprintf does not exist on Solaris, so C extensions do not build
  • JRUBY-5607 Installing Maven artifacts via rubygems fails: de.saumya.mojo:ruby-tools:jar:0.6-SNAPSHOT is missing
  • JRUBY-5608 java.lang.ClassFormatError under IBM JVM
  • JRUBY-5609 rubygems maven support does not install artifact from extra repositories
  • JRUBY-5610 Socket#accept_nonblock unconditionally raises Errno::EAGAIN
  • JRUBY-5624 Class.new { p eval(“self”, binding) }
  • JRUBY-5627 JRuby flock silently converts LOCK_EX to LOCK_SH on read-only files
  • JRUBY-5628 Missing write_array_of_<foo>() methods
  • JRUBY-5629 Backtraces report modules as classes
  • JRUBY-5632 19: Incompatible behaviour of splat operator (*) with objects that implement #to_a (w.r.t. MRI)
  • JRUBY-5634 File.new (and related paths) unconditionally calling to_int on first arg
  • JRUBY-5637 Default exception message uses singleton class when it should not
  • JRUBY-5640 Dir#pos= dies if negative value provided
  • JRUBY-5641 String.each_line: Newline handling differs between 1.9 and 1.8 compatibility mode
  • JRUBY-5646 RubyString.newUnicodeString in 1.9 mode produces ASCII-8BIT
  • JRUBY-5648 Method#source_location is nil for methods whose visibility is overridden JRUBY-5649 requiring ‘jruby/profiler’ on a Rakefile causes exception
  • JRUBY-5651 java.util.ConcurrentModificationException still occurs
  • JRUBY-5680 eval(“self”, Kernel.binding)
  • JRUBY-5682 Bundler fails to read some gemspecs under JRuby in 1.9 mode
  • JRUBY-5685 IO.popen4 does not work when arguments contain *
  • JRUBY-5686 ‘Stabby’ lambdas throw NullPointerException
  • JRUBY-5687 Process::Status#exitstatus does not return correct exit status
  • JRUBY-5688 Process::Status#pid is missing
  • JRUBY-5690 cext GC collects classes and modules that are still in use
  • JRUBY-5693 19: Fixnum#** sometimes returns wrong Bignum
  • JRUBY-5694 DATA points to wrong file
  • JRUBY-5705 Open3.popen3 fails under –1.9 mode

JRuby 1.6.0 Released

Tuesday, March 15 2011

The JRuby community is pleased to announce the release of JRuby 1.6.0.

JRuby 1.6.0 final is out!

JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it to our continuous integration environment. JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.

Over the next month or two we plan on putting out quicker point releases in anticipation that 1.6.0 will get a new wave of feedback. Give JRuby 1.6.0 a try and let us know how things go.

Major Features:

  • Ruby 1.9.2 language and API compatibility

    • Not implemented Encoding::Converter, ripper
  • Improved Ruby call performance

  • Built-in profiler (–profile, –profile.graph)

  • RSpec no longer bundled

  • C Extension support (experimental)

  • RubyGems Maven support (preview)

  • Improved compatibility and user experience on Windows

  • jruby-complete.jar now includes 1.9 standard library

  • Embedding API refinements

  • Over 2000 commits and 270 issues resolved.

JRuby 1.6.0.RC3 Released

Tuesday, March 08 2011

The JRuby community is pleased to announce the release of JRuby 1.6.0.RC3.

JRuby 1.6.0.RC3 is the last release candidate of JRuby 1.6.0.

JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.

We are going to seriously try and make this our last RC before going final. Unless we find something devestatingly bad we will release 1.6.0 and then try and spin smaller point builds every 2-3 weeks to address reported problems.

Notable changes since 1.6.0.RC2:

  • New readable backtrace format
  • Easier to embed in OSGi environment
  • Fixed regression which slowed down jar-based requires
  • Add native JFFI bits for x86_64 SunOS (Solaris)
  • More platforms with pre-built C extension support
  • New jruby-core and jruby-stdlib maven artifacts
  • More 1.9 compatibility fixes

Major Features:

  • Ruby 1.9.2 language and API compatibility

    • Not implemented Encoding::Converter, ripper
  • Improved Ruby call performance

  • Built-in profiler (–profile, –profile.graph)

  • RSpec no longer bundled

  • C Extension support (experimental)

  • RubyGems Maven support (preview)

  • Improved compatibility and user experience on Windows

  • jruby-complete.jar now includes 1.9 standard library

  • Embedding API refinements

  • Over 2000 commits and 265 issues resolved.

Issues fixed since 1.6.0.RC2

Key Summary

  • JRUBY-5491 jruby.reify.classes fails with optparse.rb (trinidad)
  • JRUBY-5502 RubyUNIXSocket#recvfrom overflows temporary buffer
  • JRUBY-5337 No such file to load – rack when booting JRuby 1.6.0RC1 Rails app in Tomcat
  • JRUBY-5472 JRuby bash script no longer supports -X-C and similar options
  • JRUBY-5534 Performance issue with JRuby 1.6
  • JRUBY-5393 1.9: Can’t run debugger
  • JRUBY-5481 Marshal specs failing in 1.8 mode
  • JRUBY-5509 gem update_rubygems Fails on JRuby 1.5.3
  • JRUBY-5477 Caller stacks now include AbstractScript.java
  • JRUBY-4544 JRuby + Java Web Start gems can’t be loaded
  • JRUBY-5479 Socket#pack_sockaddr_in fails for port numbers greater than 32383
  • JRUBY-5483 become_java! only works on the first subclass of a deep class hierarchy
  • JRUBY-5397 1.9: Make String#gsub encoding aware for ruby files
  • JRUBY-5503 Timeout::timeout makes IO#close block if there’s a #read present
  • JRUBY-5471 private method verify_mode= called with Bundler, net/https, jruby-openssl and RubyGems 1.5
  • JRUBY-2513 Stack traces for exceptions do not show the correct line number
  • JRUBY-5455 StringIO::ungetc can’t handle the ”;” character correctly.
  • JRUBY-5405 FileStat chardev does not work on Solaris 10 x86
  • JRUBY-5463 Process.getpriority should raise an error with an invalid process type
  • JRUBY-5490 JSR223: propagate the exceptions
  • JRUBY-5487 Kernel#select’s read_array parameter is not respected
  • JRUBY-5484 Thread#status isn’t set to “sleep” when blocking on a TCPSocket#read
  • JRUBY-5473 Use of -Werror when compiling C extension support causes error on OpenBSD amd64
  • JRUBY-5480 jrubyc compile loop do …. end error
  • JRUBY-5474 Compiling cext support on OpenBSD amd64 uses wrong directory
  • JRUBY-5469 Compiling cext support on OpenBSD puts the library under FreeBSD
  • JRUBY-5517 RUBYOPT is pulled from system env always, even for in-process child
  • JRUBY-4433 win: Writing to a pipe with closed source raises wrong exception
  • JRUBY-5501 When embedding jruby the FORCE compile option breaks constants
  • JRUBY-5281 jruby-complete jar not working from directory with spaces
  • JRUBY-4618 Backtick execution pauses the process
  • JRUBY-4469 Process.spawn seems to be completely broken
  • JRUBY-2167 Regexp parse errors should not be rescueable
  • JRUBY-5190 BigDecimal#to_f always returns 0.0 for large precisions
  • JRUBY-4446 windows: File.grpowned? fails RubySpecs
  • JRUBY-5468 rb_time_new prototype doesn’t match definition
  • JRUBY-3431 String#encode (and decode?) missing from Ruby 1.9 String
  • JRUBY-5434 Random “Detected invalid array contents due to unsynchronized modifications with concurrent users” with Rails 3.0
  • JRUBY-1166 ‘public_instance_methods’ different from MRI within Rake (breaking Needle)
  • JRUBY-4156 1.9: jruby -S rake spec fails to find ‘spec/rake/spectask’
  • JRUBY-5447 maven gem support not working on windows?
  • JRUBY-4788 Stackoverflow when calling code from java with wrong parameters
  • JRUBY-4914 Process.spawn gives wrong pid in windows
  • JRUBY-5498 important JRuby 1.6 startup time regression launching JRuby script from JSR223 (12 sec -> 45 sec)
  • JRUBY-5554 Simplify jirb_swing script
  • JRUBY-5525 NPE Loading OSEnvironment on Windows
  • JRUBY-5552 Method#source_location is nil for methods defined via define_method or define_singleton_method
  • JRUBY-5528 JDBC Driver Unloading should be configurable
  • JRUBY-5550 Using shoulda prevents Rails from running tests in ruby1.9 mode
  • JRUBY-5557 SnakeYAML dependency missing from Maven poms
  • JRUBY-5548 rb_call_super causes SystemStackError when used in both current class and ancestor class in a C extension
  • JRUBY-5545 JRuby 1.6RC 2 is missing Solaris 10 x86 64bit JFFI support
  • JRUBY-5541 Problem with java_import on Android (Ruboto)
  • JRUBY-5539 marshal fails in 1.9 with strings
  • JRUBY-5532 IO.foreach: Can’t convert Hash into String
  • JRUBY-5531 Process.spawn(“ruby”) gives garbage PID
  • JRUBY-5514 Errno::EBADF is sometimes raised instead of IOError when TCPSocket#readline is called after TCPSocket#close
  • JRUBY-5515 Digest::SHA2 NameError in (1.6.RC2 – 1.9 mode)
  • JRUBY-5384 org.jruby.embed.osgi suport in OSGi for ruby code and java code loaded from OSGi bundles
  • JRUBY-5522 system(“@command”) should work in windows
  • JRUBY-2519 Dir instance object caches directory contents

JRuby 1.6.0.RC2 Released

Wednesday, February 09 2011

The JRuby community is pleased to announce the release of JRuby 1.6.0.RC2.

JRuby 1.6.0.RC2 is the second release candidate of JRuby 1.6.0.

JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.

We encourage Ruby and JRuby users alike to test out 1.6.0.RC2 to help us shake out remaining issues. It would be especially helpful if users would test out 1.9 mode (by passing –1.9 flag) to help us round out our 1.9.2 compatibility before the final 1.6.0 release.

Notable changes since 1.6.0.RC1:

  • Large number of 1.9 compatibility issues addressed

    • Encoding issues (especially involving Regexp)
    • Fiddle implementation
    • non-ASCII identifiers
  • irb (1.8.7, 1.9.2) and command prompt added to Windows installer

  • Compiler handles all 1.9 syntax now

  • Fixes for new backtrace accuracy, reliability

  • Removed all GPL or LGPL-only dependencies

  • Updated to RubyGems 1.5.0

  • C extension support prebuilt for OS X, Linux (32/64), Windows (32)

  • 83 issues resolved since RC1

Major Features:

  • Ruby 1.9.2 language and API compatibility

    • Not implemented Encoding::Converter, ripper
  • Improved Ruby call performance

  • Built-in profiler (–profile, –profile.graph)

  • RSpec no longer bundled

  • C Extension support (experimental)

  • RubyGems Maven support (preview)

  • Improved compatibility and user experience on Windows

  • jruby-complete.jar now includes 1.9 standard library

  • Embedding API refinements

  • Over 2000 commits and 265 issues resolved.

Issues fixed since 1.6.0.RC1

  • JRUBY-5382 Timeout is firing late under load
  • JRUBY-4764 Leaking fileno to ChannelDescriptor mappings in Ruby.retainedDescriptors.
  • JRUBY-5345 require ‘ffi’ breaks in windows jar when the path to the jar contains spaces/special chars
  • JRUBY-5229 Interpreter is slower for microbenchmarks after “backtrace” merge
  • JRUBY-5354 undefined method ‘map’ for {}:Java::JavaUtil::HashMap
  • JRUBY-5341 1.9 Rescuing a specific error throws up a Java Exception when $DEBUG is true
  • JRUBY-3331 to_f near Float::MAX
  • JRUBY-5460 ant test-1.9 doesn’t run any test at all
  • JRUBY-5353 new map proxy’s inspect method doesn’t work when Map object is created in Ruby
  • JRUBY-2564 File.open interprets ‘/dir’ as ‘./dir’ on Windows
  • JRUBY-5347 Float#round(int) isn’t implemented in 1.9 mode
  • JRUBY-5358 Arg-passing or splatting error in jitted execution
  • JRUBY-5365 java.util.HashMap.new.kind_of? java.util.Map returns false
  • JRUBY-5372 Failures in 1.9 test/ruby/test_alias
  • JRUBY-4878 Can’t run ruby file with utf-8 characters
  • JRUBY-5377 Class.__subclasses__ incompatible with Rails
  • JRUBY-4816 Very simple bug with character replacing
  • JRUBY-5368 Star and unnamed restarg treated differently in 1.9 mode Proc#parameters
  • JRUBY-5342 Add Scala-specific JI logic
  • JRUBY-5387 Unable to run Rails tests since we use Psych as default yaml lib
  • JRUBY-5315 Time constructors don’t support fractional seconds
  • JRUBY-4580 unable to run jirb in –fast
  • JRUBY-4178 gzip oddity
  • JRUBY-5395 camelCase to snake_case conversion regression
  • JRUBY-4904 Aliased method fails equality test
  • JRUBY-4871 1.9 Attempt to invoke any method on Delegator leads to ClassCastException
  • JRUBY-3434 Ruby 1.9 mode should guess system encoding if not specified
  • JRUBY-5399 1.9: Dir#[] doesn’t convert Pathname args to String
  • JRUBY-5219 Problem w/ JRuby, Warbler & Weblogic 10
  • JRUBY-4722 ant bails with unrecognized -d32 option on OS X on some architecture/os-version/java-version combinations
  • JRUBY-4946 Having an attribute named timeout breaks factory_girl under jruby
  • JRUBY-5366 jruby 1.6 RC1 ruby 1.9: org.jruby.RubyBasicObject cannot be cast to org.jruby.RubyObject
  • JRUBY-5417 Nil backtrace when overriding method_missing and calling super
  • JRUBY-5326 1.9: Java error in Psych when running “gem build” command
  • JRUBY-5412 Strange each_slice/with_index combo exception
  • JRUBY-5016 1.9: SyntaxError when a block var shadows local var
  • JRUBY-5356 –profile.graph sometimes shows wrong methods
  • JRUBY-5363 Kernel#caller behavior is different for files with .rbw extension
  • JRUBY-5261 RSpec >= 2.2 around hooks trigger runtime NPE
  • JRUBY-5406 1.9: String#encode does not support “locale” as an encoding
  • JRUBY-5418 Getting NativeException: org.jruby.RubyContinuation$Continuation: null with RSpec 2 and EventMachine
  • JRUBY-5346 jruby 1.6.0.RC1 doesn’t recognize multibyte strings in 1.9 branch
  • JRUBY-5389 IO.popen doesn’t support Array of String’s arg in 1.9 mode
  • JRUBY-5433 Process.abort should only accept string arguments
  • JRUBY-5431 Kernel#exit! without arg causes wrong process exit code
  • JRUBY-5236 test/org/jruby/util/shell_launcher_test is not getting +x set in src dist
  • JRUBY-5394 1.9: Array#join using to_a instead of to_s when both defined
  • JRUBY-5436 File.open mode doesn’t accept “r:ENC:-”
  • JRUBY-5407 add_method_signature causes a VerifyError if used for more than return type.
  • JRUBY-5364 become_java! / RubyClass.reify regression
  • JRUBY-5429 jruby-complete.jar relocates org.objectweb.asm, but jruby.jar does not
  • JRUBY-5143 Encoding of ByteList is not set
  • JRUBY-5444 IOJavaAddons.AnyIO pollutes Object unnecessarily
  • JRUBY-5450 Marshal.load and Marshal.dump not implemented?
  • JRUBY-5355 1.9: defined? does not yet compile, is used by RubyGems
  • JRUBY-4749 require ‘rbconfig’ fails on GAE because of NullPointerException
  • JRUBY-4849 Provide or update links to source/project, attribution, and license info for all libraries ship with JRuby
  • JRUBY-5203 included Module is not picked up by runtime
  • JRUBY-4907 popen4 reports wrong PID on Windows
  • JRUBY-5343 ScriptingContainer throws LoadError when there are spaces in the classpath (Ruby 1.9 mode only)
  • JRUBY-5367 Rake/Gem::PackageTask fails with the rubygems 1.4 upgrade, when using java platform
  • JRUBY-5410 JRuby needs to provide a dist free of GPLed libraries, for GPL-sensitive consumers like Apache
  • JRUBY-5388 Requiring a filename with accented characters fails
  • JRUBY-5376 singleton_class.define_method creates private methods
  • JRUBY-5378 Memory Leak With JRuby/Tomcat
  • JRUBY-5413 Bundled version of Rubygems (1.4.2) fails when behind a proxy
  • JRUBY-5281 jruby-complete jar not working from directory with spaces
  • JRUBY-5213 –profile needs to dump even on ^C, other means of getting info, multi-thread
  • JRUBY-5453 NullPointerException in ScriptingContainer.setCurrentDirectory()
  • JRUBY-4910 jruby.exe + multibyte-character is broken
  • JRUBY-5448 Maven gem support should report and abort when using <mvn3
  • JRUBY-5336 jruby –1.9 Object#id should raise NoMethodError
  • JRUBY-5391 MongoMapper’s usage of defined? is handled incorrectly
  • JRUBY-4488 Joni matches [^\w] incorrectly, and differently to MRI/187
  • JRUBY-5340 Non-greedy item can cause Regexp to get stuck
  • JRUBY-4951 1.9: Thread#backtrace should apply to the thread in question
  • JRUBY-5108 Regex incompatibility between MRI and JRuby
  • JRUBY-4768 ‘jruby -X’ should be more friendly
  • JRUBY-5398 Generated Javadoc for ScriptingContainer cuts off in the middle
  • JRUBY-5430 RubyHash view objects should be static
  • JRUBY-5334 Abbrev.abbrev with multi-byte strings returns another result
  • JRUBY-5445 JRuby cannot parse a magic comment like #-- mode: ruby; --
  • JRUBY-4949 Make ARGV via embedding work same as it does when running jruby itself
  • JRUBY-4271 interfaces on reified classes patch was incomplete and broke instances being passed to java code.

JRuby 1.6.0.RC1 Released

Monday, January 10 2011

The JRuby community is pleased to announce the release of JRuby 1.6.0.RC1.

JRuby 1.6.0.RC1 is the first release candidate of JRuby 1.6.0.

JRuby 1.6.0 is the largest release of JRuby to date. This release fixes hundreds of user issues and brings compatibility with Ruby 1.9.2 to a very high level. We have made Windows a primary supported platform by adding it as a continuous integration platform, and JRuby 1.6 will provide Windows-based Ruby users with the best experience yet. This release integrates experimental support for C extensions based on Ruby’s C API. And as with all major releases, we have improved stability and performance across the board in response to real-world user input.

We encourage Ruby and JRuby users alike to test out 1.6.0.RC1 to help us shake out remaining issues. It would be especially helpful if users would test out 1.9 mode (by passing –1.9 flag) to help us round out our 1.9.2 compatibility before the final 1.6.0 release.

Major Features:

  • Ruby 1.9.2 language and API compatibility

    • Not implemented Encoding::Converter, non-ASCII identifiers, ripper, fiddle
  • Improved Ruby call performance

  • Built-in profiler (–profile, –profile.graph)

  • RubyGems 1.4.2

  • RSpec no longer bundled

  • C Extension support (experimental)

  • RubyGems Maven support (preview)

  • Improved compatibility and user experience on Windows

  • jruby-complete.jar now includes 1.9 standard library

  • Embedding API refinements

  • Over 2000 commits and 265 issues resolved.

JRuby 1.5.6 Released

Friday, December 03 2010

The JRuby community is pleased to announce the release of JRuby 1.5.6.

JRuby 1.5.6 is a minor follow-up release to address problems with mirroring of 1.5.5 in maven, update to 1.0.3 of jruby native launcher, and a few undesirable issues in windows. All users of JRuby 1.5.5 (and lower) are recommended to upgrade to 1.5.6.

1.5.6 Issues Resolved:

  • JRUBY-4352 Rbconfig’s Config::CONFIG provides wrong name for Windows 2008 Server, based on input from Rakesh Arora. (See 07fb757.)
  • JRUBY-4774 Fix classpath and load path issues related to file paths containing spaces
  • JRUBY-4898 java.util.ConcurrentModificationException
  • JRUBY-5127 become_java! doesn’t add Ruby class methods as statics on the resulting Java class
  • JRUBY-5223 Marshal.load fails when Kernel.read is defined

Not in our tracking system:

  • ant.bat should be specified on Windows

JRuby 1.5.5 Released

Wednesday, November 10 2010

The JRuby community is pleased to announce the release of JRuby 1.5.5.

(Note: Due to a showstopper bug found after the release jruby-jars gem and the inability to remove gem releases from rubygems.org we have skipped from 1.5.3 to 1.5.5. The 1.5.5 release is the same release that would have been 1.5.4 had we been able to re-release jruby-jars.)

JRuby 1.5.5 is a minor follow-up release to address problems executing some commands on Windows, a couple of Marshalling discrepancies with MRI, and a few other random production-affecting issues. We also improved the output and accuracy of –profile (try it out). All users of JRuby 1.5.3 are recommended to upgrade to 1.5.5.

1.5.5 Issues Resolved:

  • JRUBY-4766 Updated jaffl for YourKit compatibility
  • JRUBY-4865 Ant.load_from_ant is broken on Windows
  • JRUBY-4940 Cucumber Japanese example raises exception on JRuby
  • JRUBY-5064 Marshalled ruby hash gets loaded incorrectly
  • JRUBY-5110 kernel.system not working in 1.5.3 on Windows
  • JRUBY-5112 Cannot run ‘jruby -S rake test’ for Rails project on Windows in 1.5.3
  • JRUBY-5122 Webrick socket.readline causes 100% cpu usage
  • JRUBY-5123 Marshal dump format error and inconsistencies with MRI
  • JRUBY-5132 java.awt.Component.instance_of?() expects 2 args
  • JRUBY-5133 Backtick operator does not work on Windows in 1.5.3
  • JRUBY-5138 requiring ‘ffi’ defines class method :error on Module
  • JRUBY-5168 Can’t include interfaces in a synchronized class

JRuby 1.5.3 Released

Tuesday, September 28 2010

The JRuby community is pleased to announce the release of JRuby 1.5.3.

JRuby 1.5.3 is a minor follow-up release to address a thread deadlock, a spurious error involving selectors on windows, and a couple of fixes affecting bundler exec (and generally improves our exec() behavior). We also fixed a few highly specialized issues which should have no affect on most users. All users of JRuby 1.5.2 are recommended to upgrade to 1.5.3.

1.5.3 Issues Resolved:

  • JRUBY-5093 ConditionVariable use causes thread deadlocks
  • JRUBY-5076 SelectorProvider.openSelector() will sometimes fail on Windows
  • JRUBY-5098 Kernel#exec does not heed ENV['PATH'] when launching shell command
  • JRUBY-5100 Subprocess started by Kernel#exec does not respect RUBYOPT and other environment variables set via ENV.
  • JRUBY-4944 JSR-223 ScriptEngine ignores global bindings
  • JRUBY-4948 Remove noisy warning when setting ScriptEngine.ARGV
  • JRUBY-5092 Scala classes (and perhaps others) are named oddly and break Java reflection
  • JRUBY-4937 File.open with permissions has sideffect of clearing umask

JRuby 1.5.2 Released

Friday, August 20 2010

The JRuby community is pleased to announce the release of JRuby 1.5.2.

JRuby 1.5.2 is a minor follow-up release to address a few file descriptor and class loading leaks. There is also a security fix for users of Webrick (see http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-0541). All users of JRuby 1.5.1 are recommended to upgrade to 1.5.2.

1.5.2 Issues Resolved:

  • JRUBY-4767 JRuby and open-uri File handle issue
  • JRUBY-4981 Anonymous classes are piling up and filling up PErmGen, eventually causing a crash
  • JRUBY-4841 CLONE -Memory Leak when extending Java class with additional Ruby instance variable
  • JRUBY-5007 XSS in WEBrick (CVE-2010-0541)
  • JRUBY-5018 SSLSocket holds selectors, keys, preventing quick cleanup of resources when dereferenced

JRuby 1.5.1 Released

Monday, June 07 2010

The JRuby community is pleased to announce the release of JRuby 1.5.1.

JRuby 1.5.0 was a long overdue and huge release. JRuby 1.5.1 is a minor follow-up release to address some of the more visible issues discovered after the release of 1.5.0. Everyone is encouraged to move to 1.5.1. Users of JRuby’s Java integration or those deploying on Google AppEngine will need to upgrade to 1.5.1.

1.5.1 Issues Resolved:

  • JRUBY-4799: Uncaught AccessibleObject.setAccessible fails on App Engine
  • JRUBY-4839: ObjectSpace.undefine_finalizer does not work
  • JRUBY-4838: JRuby exit hangs on ChannelStream.finalize
  • JRUBY-4795: regression: JRuby 1.5 doesn’t pick up JDBC drivers from CLASSPATH
  • JRUBY-4832: Memory Leak when extending Java class with additional Ruby instance variable
  • JRUBY-4790: Regression processing END between JRuby 1.4 and 1.5
  • JRUBY-4803: Known bug in net/http.rb
  • JRUBY-4844: jruby behaves differently from MRI with (rails 2.3.8) activerecord associations
  • JRUBY-4837: FileUtils.touch does not update the mtime of directories on Windows
  • JRUBY-4821: IO#open(&block) + close sets $! which disables Test::Unit::Autorunner
  • JRUBY-4831: Multiple block args to ActiveRecord association proxy are splatted incorrectly
  • JRUBY-4825: FILE is not expanded when it is used from within a a compiled ruby script used as the main class of an executable jar

JRuby 1.5.0 Released

Wednesday, May 12 2010

The JRuby community is pleased to announce the release of JRuby 1.5.0.

This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists!

1.5.0 Highlights:

  • New native access framework designed for performance and better FFI support
  • Native launcher for *NIX platforms
  • Ant support and Rake-Ant integration
  • Better and better support for Windows
  • Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
  • Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
  • Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
  • ruby-debug installed by default
  • Many fixes for Rails 3
  • Various improvements to startup time
  • Improved performance for Object#object_id/__id__
  • Reduced memory use for Java class metadata and faster loading of Java classes
  • jar-in-jar support in the classloader
  • The “open4” library now works properly
  • jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
  • New logic for interface implementation that produces “real” classes
  • jruby.ji.objectProxyCache to turn off OPC for extra performance
  • JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
  • Miscellaneous perf improvements to core classes and minor improvements in the JIT
  • No more ObjectSpace during IRB
  • Cleaned up maven artifacts
  • Windows Installer fixes for x64 and Windows 7 security
  • Over 1250 commits since JRuby 1.4

We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren

JRuby 1.5.0.RC3 Released

Tuesday, May 04 2010

The JRuby community is pleased to announce the release of JRuby 1.5.0.RC3

This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC3 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.

1.5.0 Highlights:

  • New native access framework designed for performance and better FFI support
  • Native launcher for *NIX platforms
  • Ant support and Rake-Ant integration
  • Better and better support for Windows
  • Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
  • Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
  • Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
  • ruby-debug installed by default
  • Many fixes for Rails 3
  • Various improvements to startup time
  • Improved performance for Object#object_id/__id__
  • Reduced memory use for Java class metadata and faster loading of Java classes
  • jar-in-jar support in the classloader
  • The “open4” library now works properly
  • jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
  • New logic for interface implementation that produces “real” classes
  • jruby.ji.objectProxyCache to turn off OPC for extra performance
  • JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
  • Miscellaneous perf improvements to core classes and minor improvements in the JIT
  • No more ObjectSpace during IRB
  • Cleaned up maven artifacts
  • Windows Installer fixes for x64 and Windows 7 security
  • Over 1250 commits since JRuby 1.4

Issues resolved since 1.5.0.RC2:

JRUBY-3742: Java native threads are not added to ThreadService.rubyThreadMap after being adopted. JRUBY-4264: threadContextMap leaks RubyThread on death of adopted thread

Issues resolved since 1.5.0.RC1:

  • JRUBY-3153: IO rubyspec failures under IBM JDK6 Linux
  • JRUBY-3208: ant task api-docs runs out of memory, patch included
  • JRUBY-4677: Java exceptions can’t be rescued with “rescue Exception”
  • JRUBY-4680: jirb_swing broken: JRuby picking wrong constructor, with no obvious work around
  • JRUBY-4704: “Java wrapper with no contents” error when subclassing a Runnable class in JRuby
  • JRUBY-4710: Problems importing classes in default package
  • JRUBY-4715: FFI::StructByValue missing layout and struct_class methods.
  • JRUBY-4721: FFI::Platform::CONF_DIR looks in wrong location for PPC Macs.
  • JRUBY-4724: Java class equality operator is order dependent
  • JRUBY-4725: to_java_object no longer exists
  • JRUBY-4729: System properties to set bindir and default rubygems paths
  • JRUBY-4730: Unix jruby-1.5.0.RC1 distro includes rubygems/default/jruby_native.rb without native launcher
  • JRUBY-4731: Mismatched default compilation prefix
  • JRUBY-4733: Allow compilation of Ruby files for a specificic JVM version
  • JRUBY-4734: Reduce “multiple Java method” warnings in unambiguous cases
  • JRUBY-4735: install-gems ant target should not count on successful installation of jruby-launcher
  • JRUBY-4737: Compatibility issue with Spring property from 1.4.0 to 1.5.0.RC1
  • JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1.5.0.RC1.tar.gz
  • JRUBY-4742: File::Stat throws a NPE when it doesn’t find a file into a jar
  • JRUBY-4747: read_nonblock error with couchrest
  • JRUBY-4749: require ‘rbconfig’ fails on GAE because of NullPointerException
  • JRUBY-4750: ant-to-rake: <rake> task does not work when classpath is defined via taskdef’s attribute
  • JRUBY-4751: Java call to RubyBignum.to_s() returns generic object representation
  • JRUBY-4754: NotImplementedError: the MD5() function is unimplemented on this machine
  • JRUBY-4757: addressable gem doesn’t work with –fast
  • JRUBY-4760: File.open throws Errno::ENOENT when file inside jar is accessed using “..” (doubledot) in the path
  • JRUBY-4761: 1.9.2: Thread#backtrace

We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren

JRuby 1.5.0.RC2 Released

Wednesday, April 28 2010

The JRuby community is pleased to announce the release of JRuby 1.5.0.RC2

This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC2 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.

1.5.0 Highlights:

  • New native access framework designed for performance and better FFI support
  • Native launcher for *NIX platforms
  • Ant support and Rake-Ant integration
  • Better and better support for Windows
  • Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
  • Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
  • Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
  • ruby-debug installed by default
  • Many fixes for Rails 3
  • Various improvements to startup time
  • Improved performance for Object#object_id/__id__
  • Reduced memory use for Java class metadata and faster loading of Java classes
  • jar-in-jar support in the classloader
  • The “open4” library now works properly
  • jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
  • New logic for interface implementation that produces “real” classes
  • jruby.ji.objectProxyCache to turn off OPC for extra performance
  • JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
  • Miscellaneous perf improvements to core classes and minor improvements in the JIT
  • No more ObjectSpace during IRB
  • Cleaned up maven artifacts
  • Windows Installer fixes for x64 and Windows 7 security
  • Over 1250 commits since JRuby 1.4

Issues resolved since 1.5.0.RC1:

  • JRUBY-3153: IO rubyspec failures under IBM JDK6 Linux
  • JRUBY-3208: ant task api-docs runs out of memory, patch included
  • JRUBY-4677: Java exceptions can’t be rescued with “rescue Exception”
  • JRUBY-4680: jirb_swing broken: JRuby picking wrong constructor, with no obvious work around
  • JRUBY-4704: “Java wrapper with no contents” error when subclassing a Runnable class in JRuby
  • JRUBY-4710: Problems importing classes in default package
  • JRUBY-4715: FFI::StructByValue missing layout and struct_class methods.
  • JRUBY-4721: FFI::Platform::CONF_DIR looks in wrong location for PPC Macs.
  • JRUBY-4724: Java class equality operator is order dependent
  • JRUBY-4725: to_java_object no longer exists
  • JRUBY-4729: System properties to set bindir and default rubygems paths
  • JRUBY-4730: Unix jruby-1.5.0.RC1 distro includes rubygems/default/jruby_native.rb without native launcher
  • JRUBY-4731: Mismatched default compilation prefix
  • JRUBY-4733: Allow compilation of Ruby files for a specificic JVM version
  • JRUBY-4734: Reduce “multiple Java method” warnings in unambiguous cases
  • JRUBY-4735: install-gems ant target should not count on successful installation of jruby-launcher
  • JRUBY-4737: Compatibility issue with Spring property from 1.4.0 to 1.5.0.RC1
  • JRUBY-4738: test/testapp/testapp.exe appears twice in jruby-src-1.5.0.RC1.tar.gz
  • JRUBY-4742: File::Stat throws a NPE when it doesn’t find a file into a jar
  • JRUBY-4747: read_nonblock error with couchrest
  • JRUBY-4749: require ‘rbconfig’ fails on GAE because of NullPointerException
  • JRUBY-4750: ant-to-rake: <rake> task does not work when classpath is defined via taskdef’s attribute
  • JRUBY-4751: Java call to RubyBignum.to_s() returns generic object representation
  • JRUBY-4754: NotImplementedError: the MD5() function is unimplemented on this machine
  • JRUBY-4757: addressable gem doesn’t work with –fast
  • JRUBY-4760: File.open throws Errno::ENOENT when file inside jar is accessed using “..” (doubledot) in the path
  • JRUBY-4761: 1.9.2: Thread#backtrace

We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren

jruby-openssl 0.7 Released!

Tuesday, April 27 2010

Here’s announcing jruby-openssl 0.7. This release should be usable on AppEngine, and contains many compatibility fixes, see below.

Thanks so much to NaHi (NAKAMURA Hiroshi) for his impressive work on another jruby-openssl release!

To install the new release, simply run:

jruby -S gem install jruby-openssl

Compatibility issues

JRUBY-4342      Follow ruby-openssl of CRuby 1.8.7.
JRUBY-4346      Sync tests with tests for ruby-openssl of CRuby 1.8.7.
JRUBY-4444      OpenSSL crash running RubyGems tests
JRUBY-4075      Net::SSH gives OpenSSL::Cipher::CipherError "No message available"
JRUBY-4076      Net::SSH padding error using 3des-cbc on Solaris
JRUBY-4541      jruby-openssl doesn't load on App Engine.
JRUBY-4077      Net::SSH "all authorization methods failed" Solaris -> Solaris
JRUBY-4535      Issues with the BouncyCastle provider
JRUBY-4510      JRuby-OpenSSL crashes when JCE fails a initialise bcprov
JRUBY-4343      Update BouncyCastle jar to upstream version; jdk14-139 -> jdk15-144

Cipher issues

JRUBY-4012      Initialization vector length handled differently than in
  MRI (longer IV sequence are trimmed to fit the required)
JRUBY-4473      Implemented DSA key generation
JRUBY-4472      Cipher does not support RC4 and CAST
JRUBY-4577      InvalidParameterException 'Wrong keysize: must be equal to
  112 or 168' for DES3 + SunJCE

SSL and X.509(PKIX) issues

JRUBY-4384      TCP socket connection causes busy loop of SSL server
JRUBY-4370      Implement SSLContext#ciphers
JRUBY-4688      SSLContext#ciphers does not accept 'DEFAULT'
JRUBY-4357      SSLContext#{setup,ssl_version=} are not implemented
JRUBY-4397      SSLContext#extra_chain_cert and SSLContext#client_ca
JRUBY-4684      SSLContext#verify_depth is ignored
JRUBY-4398      SSLContext#options does not affect to SSL sessions
JRUBY-4360      Implement SSLSocket#verify_result and dependents
JRUBY-3829      SSLSocket#read should clear given buffer before
  concatenating (ByteBuffer.java:328:in `allocate':
  java.lang.IllegalArgumentException when returning SOAP queries over a
  certain size)
JRUBY-4686      SSLSocket can drop last chunk of data just before inbound
  channel close
JRUBY-4369      X509Store#verify_callback is not called
JRUBY-4409      OpenSSL::X509::Store#add_file corrupts when it includes
  certificates which have the same subject (problem with
  ruby-openid-apps-discovery (github jruby-openssl issue #2))
JRUBY-4333      PKCS#8 formatted privkey read
JRUBY-4454      Loading Key file as a Certificate causes NPE
JRUBY-4455      calling X509::Certificate#sign for the Certificate
  initialized from PEM causes IllegalStateException

PKCS#7 issues

JRUBY-4379      PKCS7#sign failed for DES3 cipher algorithm
JRUBY-4428      Allow to use DES-EDE3-CBC in PKCS#7 w/o the Policy Files
  (rake test doesn't finish on JDK5 w/o policy files update)

Misc

JRUBY-4574      jruby-openssl deprecation warning cleanup
JRUBY-4591      jruby-1.4 support

JRuby 1.4.1 Released - Fixes XSS Vulnerability in JRuby 1.4.0 - Recommended Upgrade

Monday, April 26 2010

Today we’re releasing JRuby 1.4.1 as a recommended upgrade for all previous versions of JRuby. Previous versions contained a bug in JRuby’s regular expression engine that could allow an attacker to perform, for example, an XSS attack on a web application running under JRuby.

Download the 1.4.1 release.

This vulnerability fix is the only change from the previous JRuby release (1.4.0). Also note that the JRuby 1.5.0 release contains this fix as well.

Common Vulnerabilities and Exposures

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2010-1330 to this issue. This is a candidate for inclusion in the CVE list, which standardizes names for security problems.

Impact

Any Ruby application code that uses regular expressions for string matching and substitution running under JRuby and using $KCODE = 'u' is vulnerable.

If a string contains invalid UTF-8 byte sequences in the (inclusive) range \xC0 to \xFD, the immediately following character will not be matched by a regular expression. Consider the following code:

str = "\xF6<script>"

$KCODE = ''
puts "KCODE: " + $KCODE
puts str.gsub(/</, "&lt;")

$KCODE = 'u'
puts "KCODE: " + $KCODE
puts str.gsub(/</, "&lt;")

Ruby 1.8.7 ignores the invalid bytes and continues, while Ruby 1.9.2 raises an ArgumentError due to the invalid bytes. But for JRuby, the effect is to fail to match the character following the invalid byte. For the example above example run with JRuby 1.4.0 prints the following. Note that the fourth line should be the same as the second.

KCODE: NONE
?&lt;script>
KCODE: UTF8
?<script>

The effect of this bug is magnified considering that the Rails html_escape or h helper essentially does what the above example does, meaning that any Rails view using the standard ERb escape helper method is vulnerable.

Releases

The JRuby 1.4.1 and 1.5.0 releases (including release candidates) all have the vulnerability fixed.

The fix was applied to the jcodings library which JRuby uses. As such, a source patch against the JRuby source is not available. Replacing the build_lib/jcodings.jar file in your JRuby source build with the jcodings version 1.0.3 jar file is sufficient to resolve the issue.

If you are unable to upgrade to JRuby 1.4.1, please contact the JRuby team at security@jruby.org for assistance.

Workarounds

Turn off $KCODE = 'u' in your application if you can. Otherwise, the only approach is to patch application or framework code to be aware of the invalid byte sequences.

Thanks

Many thanks to Jörn Hartmann (joern dot hartmann at gmail dot com) for finding and reporting the issue.

JRuby 1.5.0.RC1 Released

Thursday, April 15 2010

The JRuby community is pleased to announce the release of JRuby 1.5.0.RC1

This development cycle has been our longest cycle yet (nearly 5 months), but it also has the most fixes. It also includes many new notable features (see below). Most of our bug fixes have been more of what we consider fine-tuning, since we keep getting into smaller corner-cases of compatibility for individual Ruby methods. In that sense, we expect if you had a good experience with JRuby 1.4.0 then 1.5.0.RC1 will be a no-brainer upgrade. If you haven’t tried JRuby in a while with your application, then please give us another try. Odds are whatever issue you were having before no longer exists! And we would really like help making sure JRuby 1.5.0 final is a solid release…so please try and report back with any problems.

1.5.0.RC1 Highlights:

  • New native access framework designed for performance and better FFI support
  • Native launcher for *NIX platforms
  • Ant support and Rake-Ant integration
  • Better and better support for Windows
  • Multiple performance improvements for Ruby-to-Java calling, improving correctness, memory, and speed.
  • Embedding API improvements based on user input (JSR-223, BSF, RedBridge, etc)
  • Software updates: Ruby 1.8.7 standard library update, RubyGems 1.3.6, RSpec 1.3.0
  • ruby-debug installed by default
  • Many fixes for Rails 3
  • Various improvements to startup time
  • Improved performance for Object#object_id/__id__
  • Reduced memory use for Java class metadata and faster loading of Java classes
  • jar-in-jar support in the classloader
  • The “open4” library now works properly
  • jruby.jit.codeCache=dir to save jitted scripts/methods to disk in a sha1-hashed .class file
  • New logic for interface implementation that produces “real” classes
  • jruby.ji.objectProxyCache to turn off OPC for extra performance
  • JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
  • Miscellaneous perf improvements to core classes and minor improvements in the JIT
  • No more ObjectSpace during IRB
  • Cleaned up maven artifacts
  • Windows Installer fixes for x64 and Windows 7 security
  • Over 1250 commits since JRuby 1.4

We always appreciate community contributions. This cycle we’ve had more help than ever: David Calavera, Stephen Bannasch, Daniel Luz, Ian Dees, Koichiro Ohba, Hongli Lai, Hiroshi Nakamura, Colin Jones, Takeru Sasaki, Roger Pack, Matjaz Gregoric, Joseph LaFata, Frederic Jean, Alex Coles, Lars Westergren

JRuby BugMash!

Tuesday, January 05 2010

Come join us this weekend, January 9-12, for the first ever JRuby BugMash!

The JRuby project has been growing impressively quickly, with frequent releases and a constantly expanding community. There’s a hefty list of impressive users and companies, and the team has been touring the world, trying their best to make it out to everyone who wants to hear and learn about the project.

As with any growing code base though, there’s a need to keep things tidy; frequent releases and speedy development also mean bugs, and things that need fixing–and that’s where we turn to you!

The first ever official JRuby BugMash will take place this Saturday, January 9th through Tuesday, January 12th. The core team will spend the days prior to the BugMash highlighting the specific bugs that are most important–you’ll want to keep an eye out for the Intro section. Then, Saturday morning, it’s off to the races! As a small token of our appreciation, in addition to the wonderful satisfaction of having made a difference to the project, we’ll be sending each of the first 100 participants a limited edition JRubyConf Poster. There are some more ‘tokens of appreciation’ up our sleeves for the top contributors, but we’ll keep those secret for now.

The JRuby Core Team will be around on IRC channel #jruby throughout the BugMash to help folks get started and to answer questions. Be sure to stop in and say hello!

bug trail

JRuby created (red) vs. resolved (green) bugs over the past 120 days

Vulnerability in jruby-openssl < 0.6 - Recommended Upgrade

Monday, December 07 2009

A security problem involving peer certificate verification was found where failed verification silently did nothing, making affected applications vulnerable to attackers. Attackers could lead a client application to believe that a secure connection to a rogue SSL server is legitimate. Attackers could also penetrate client-validated SSL server applications with a dummy certificate.

Common Vulnerabilities and Exposures

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2009-4123 to this issue. This is a candidate for inclusion in the CVE list, which standardizes names for security problems.

Impact

Your application would be vulnerable if you’re using the OpenSSL::SSL::VERIFY_PEER mode on an OpenSSL-enabled socket (client or server) and any version of jruby-openssl prior to 0.6. An example using client-side validated SSL with the ‘net/https’ library is shown below.

  require 'net/https'
  uri = URI.parse('https://www.amazon.com/')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER

  # This code should raise OpenSSL::SSL::SSLError
  # because it's not the correct trust anchor for
  # www.amazon.com.
  http.ca_file = 'test/fixture/verisign_c3.pem'
  response = http.start do |s|
    s.get(uri.request_uri)
  end

  # This code must fail as well because of an incorrect
  # trust anchor setting (no certs is the directory).
  http.ca_path = '/tmp'
  response = http.start do |s|
    s.get(uri.request_uri)
  end

  # verisign.pem is the correct trust anchor for www.amazon.com.
  # Only this request should be successful.
  http.ca_file = 'test/fixture/verisign.pem'
  response = http.start do |s|
    s.get(uri.request_uri)
  end

Release and Patch

  • The 0.6 release has the fix for the certificate validation vulnerability. Install the upgrade in the usual fashion by running jruby -S gem install jruby-openssl and ensuring that you get version 0.6 or greater.
  • A patch is available which should apply cleanly to the jruby-openssl 0.5.2 source. Ensure the code builds cleanly and passes tests by running jruby -S rake clean default.
  • Please contact security@jruby.org if you are unable to upgrade or use the 0.5.2 patch and require a backport. Let us know what version of jruby-openssl you’re using and help us understand how you’re using the library so we can determine whether you’re affected by the vulnerability.

Workarounds

No known workarounds exist, other than rewriting application code to use a different library to establish validated SSL connections.

Thanks

Thanks to NaHi (NAKAMURA Hiroshi - nahi at ruby-lang.org) for finding the problem and providing the fix.

JRuby 1.4.0 Released

Monday, November 02 2009

The JRuby community is pleased to announce the release of JRuby 1.4.0

After three very helpful release candidates we have a final 1.4.0 release. This release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.

We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.

1.4.0 Highlights:

  • JRuby is now compatible with 1.8.7 patchlevel 174

  • Windows Native Launcher - Solves many reported bugs with our old .bat scripts

  • New YAML parser Yecht (bug-for-bug compatible with Syck!)

  • Improved Java Integration Support

    • faster
    • new java_method, java_send, and java_alias methods
  • Windows installer

  • New embedding framework

    • Java 6 scripting out of the box
    • New org.jruby.embed package to supersede JavaEmbedUtils
  • Many 1.9 mode (–1.9) fixes

    • updated stdlib to 1.9.2preview2
    • Rubygems now working
    • Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
  • rubygems 1.3.5

  • Much better error reporting

    • shorter backtraces with less Java
    • Ruby-compatiable syntax error reporting
  • 307 bugs fixed since 1.3.1

We want to thank all the users who have been helping us to get a better release out. Special thanks to Hiro Asari, David Calavera, and Roger Pack for their recent activity in the project. We also want to welcome Yoko Harada as a committer to the project. Her work and support of our embedding efforts has been great.

Issues fixed since JRuby 1.3.1:

Key        Summary
JRUBY-382     Better error output from parser
JRUBY-558     Integration method matching needs more help with nulls
JRUBY-937     JRuby does not honor RUBY_OPTS or RUBYOPT
JRUBY-1316     Command line doesn't recognize KEY=value construct on WIndows
JRUBY-2232     UNIXSocket doesn't work on Solaris
JRUBY-2324     AST Node positions and content incorrect when passing down Multibyte content to lexer
JRUBY-2349     Bug in constant lookup on non Module or Class
JRUBY-2398     We should strive to implement the 1.8.7 improvements
JRUBY-2419     Argument application within block is not parsed correctly (for Range literals)
JRUBY-2525     Dir.glob ordering inconsistent with Matzruby
JRUBY-2587     [1.8.7] Hash.[] should call to_ary if only one argument is provided
JRUBY-2604     [1.8.7] Implement Binding#eval method
JRUBY-2626     Many rubyspec failures for SortedSet
JRUBY-2654     File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib
JRUBY-2666     Issues with Socket#getaddrinfo
JRUBY-2694     [1.8.7] Ability to specify suffix/extension for Tempfile
JRUBY-2839     Eight new BigDecimal RubySpec failures
JRUBY-2866     Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7
JRUBY-2895     Wildcard arguments not properly expanded on Windows
JRUBY-3024     Better handling if suppressAccessChecks is not permitted
JRUBY-3030     jruby/test/rubicon/test_object_space.rb fails on Windows XP SP 2
JRUBY-3081     CLASSPATH append problem in bin/jruby script under cygwin
JRUBY-3123     Java primate arrays no longer respond to 'first' (Array) from ruby
JRUBY-3150     Execution variable $: does not include on the taint check level > 1
JRUBY-3154     Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads)
JRUBY-3159     -e option does not work with iterator blocks
JRUBY-3165     Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods
JRUBY-3215     BSF does not retain local scope between eval calls
JRUBY-3240     YAML: active_support dump of BigDecimal differs from MRI
JRUBY-3245     Java exceptions not caught when converting java objects to ruby objects
JRUBY-3263     imcompatibility with Ruby-1.8.6 in YAML parsing
JRUBY-3266     undefined method 'add_ruby_type' for YAML:Module
JRUBY-3297     Array.new with (size, object=nil) returns the value passed to break
JRUBY-3306     --1.9 mode doesn't know define_singleton_method
JRUBY-3319     Date spec failures
JRUBY-3321     matrix rubyspec failures
JRUBY-3323     rational rubyspec failures
JRUBY-3327     Possible YAML parsing error
JRUBY-3346     Need pointers of Ruby blocks (JRuby FFI)
JRUBY-3350     JRuby .bat scripts do not correctly find Java without JAVA_HOME env var
JRUBY-3352     JNA-based FFI fails to load for specs on Windows
JRUBY-3368     java.util.List[range] is broken
JRUBY-3380     New 1.9 Enumerator methods
JRUBY-3389     RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance
JRUBY-3412     YAML.dump loses the timezone when dumping Time instances
JRUBY-3419     JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments
JRUBY-3433     Encoding.default_internal and Encoding.default_external missing
JRUBY-3435     Enumerable missing fiber-related next, rewind, with_index methods
JRUBY-3442     1.9 allows trailing commas in method invocations
JRUBY-3453     Make import not complain if Java already has already imported the specific Java class
JRUBY-3473     RubySpec: OpenStruct frozen failures
JRUBY-3478     Dir.new does not work for directories inside jar file
JRUBY-3499     File.expand_path (from inside a jar) uses %20 instead of space characters
JRUBY-3505     Can't install hpricot (0.7) gem
JRUBY-3518     yaml_initialize not called for subclasses of standard types
JRUBY-3524     Erroneously redirecting stdout when running jgem
JRUBY-3545     ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem)
JRUBY-3546     ~/.hoerc results in parsing error
JRUBY-3550     strftime breaks unicode characters in format string
JRUBY-3558     RubySpec: Defining instance methods on an eigenclass define public methods
JRUBY-3559     the integratated joda time version should be in a distinct package hierarchy
JRUBY-3567     RubySpec: The __FILE__ constant equals a relative path when required using a relative path
JRUBY-3575     File permission errors installing gems in 1.9 mode
JRUBY-3576     utf-8 string becomes macroman on os x
JRUBY-3577     File and FileTest methods should use to_path to coerce non-string parameters
JRUBY-3591     Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby
JRUBY-3592     Regression test failure (test_grpowned)
JRUBY-3605     [1.9] IO.initialize missing option hash parsing
JRUBY-3606     [1.9] IO.set_encoding is stubbed out
JRUBY-3607     [1.9] IO.external_encoding stubbed out
JRUBY-3611     RubySpec: "StringIO#sysread when passed no arguments" failures
JRUBY-3612     RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array
JRUBY-3627     Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables
JRUBY-3653     RubySpec: Hash failures "computes equality for complex recursive hashes"
JRUBY-3654     RubySpec: Array failures relating to recursive arrays
JRUBY-3662     JavaEmbedUtils should have methods to set/reset Standard I/O
JRUBY-3682     Hashcodes for Hash objects break compatability with MRI
JRUBY-3687     Bundle JSR 223 support in JRuby
JRUBY-3688     IO.read fails to read files in /proc filesystem on Linux
JRUBY-3700     test/externals/ruby1.8/yaml/test_yaml failures
JRUBY-3702     The method methods
JRUBY-3703     TestCommandLineSwitches fails on Windows
JRUBY-3705     Rubyspec: behavior of $: under safe > 1
JRUBY-3706     Rubyspec: method arity behavior
JRUBY-3707     Rubyspec: Process egid behavior
JRUBY-3713     TwoVarDynamicScope only supports scopes with two variable
JRUBY-3718     FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument
JRUBY-3721     sub-optimal IO#read after IO#getc
JRUBY-3722     block parameter problem
JRUBY-3731     --debug causes problems. Methods are missing.
JRUBY-3733     Accessors arity
JRUBY-3736     JRuby won't load a .jar if a .so is found too.
JRUBY-3738     jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported
JRUBY-3745     RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block
JRUBY-3747     String#gsub! with pattern and block raises a RuntimeError when self is frozen
JRUBY-3748     RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number
JRUBY-3750     JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9"
JRUBY-3751     YAML.load fails for Struct objects with non-standard initialize
JRUBY-3757     String.split is broken
JRUBY-3759     syslog not available for JRuby --1.9
JRUBY-3761     FileUtils.chown_R produces ArgumentError when the directory contains a symlink
JRUBY-3766     update .classpath for building jruby with eclipse
JRUBY-3773     CLONE -custom YAML serialization ignored by JRuby
JRUBY-3774     >>define_method :name do | &er;blk | << ignores
JRUBY-3776     The install-gems goal throws exceptions
JRUBY-3777     Exception on Solaris loading ruby gems
JRUBY-3778     clone of stderr and stdout not working
JRUBY-3782     BSF interface - apply nonfunctional with parameters
JRUBY-3783     Timeout.timeout doesn't raise given exception
JRUBY-3784     More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size'
JRUBY-3788     argument population of blocks broke in at least one case somewhere between 1.2 and 1.3
JRUBY-3796     ruby_string.to_java_string has different encoding than new java.lang.String(ruby_string)
JRUBY-3799     Bug in native timeout module causes hang when waiting on IO
JRUBY-3800     CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided
JRUBY-3806     Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue
JRUBY-3807     jgem --1.9 broken
JRUBY-3808     Gem redclothcoderay doesn't installs under jruby
JRUBY-3809     require 'tmpdir' fails when embedded in a java app that has messed with the classpath
JRUBY-3810     StringIO#truncate problem
JRUBY-3811     require 'Complex' fails when running in Ruby 1.9 mode
JRUBY-3815     Time#strftime breaks with multibyte characters, affects I18n#localize
JRUBY-3816     Objects returned from Java library call not fully unwrapped
JRUBY-3817     Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8
JRUBY-3820     timeout library should throw an anonymous exception type while unrolling stack
JRUBY-3821     Array.flatten performance issue
JRUBY-3823     Wrong property in netbeans-ant.xml
JRUBY-3827     WEBrick binds only to localhost, not to requested bind addresses
JRUBY-3828     JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases
JRUBY-3832     FFI: apparent memory leak when using callbacks
JRUBY-3833     Running RubySpec ci :language with -X+C fails locally, but not in "ant spec"
JRUBY-3835     FFI AbstractMemory#get_array_of_uint64 is missing
JRUBY-3836     backquotes can raise IO Error (closed stream)
JRUBY-3838     Exceptions coming out of eval no longer have line numbers
JRUBY-3845     Invoker for Array#pop isn't generated on 187 branch
JRUBY-3849     Resolv.getaddress is broken on OSX 1.5
JRUBY-3850     Hash#select returns an Array of entries for which block is true FAILED
JRUBY-3851     Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR
JRUBY-3852     Hash#eql? spec failures
JRUBY-3853     Two Enumerable spec bugs for 1.8.7 (one related to break)
JRUBY-3854     Five spec failures in ConditionVariable after merge
JRUBY-3856     YAML.load is broken when loading structs with initialize method with arguments
JRUBY-3858     NPE in RubyRegexp.java with --1.9
JRUBY-3859     VariadicInvoker missing a BOOL case
JRUBY-3860     Rational(3,-4).to_i should return -1
JRUBY-3861     Shared "box" in DefaultMethod breaking visibility re-checks in some cases
JRUBY-3862     Socket.pack_sockaddr_in is broken on linux
JRUBY-3863     Support boolean arguments to and return values from ffi callbacks
JRUBY-3867     Nailgun not supported in Windows bat files
JRUBY-3869     'puts []' prints a newline
JRUBY-3870     Object#singleton_methods(true) doesn't include inherited methods
JRUBY-3871     strftime doesn't support %h
JRUBY-3873     StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime
JRUBY-3874     it would be nice if LoadService could log where it searches and what it finds
JRUBY-3875     TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open
JRUBY-3876     JRuby crashes on using the three-parameter version of TCPSocket.open
JRUBY-3878     String representation of arrays and symbols does not match ruby 1.9
JRUBY-3879     Array#pack('d') is incorrect
JRUBY-3880     Net::HTTP doesn't timeout as expected when using timeout.rb
JRUBY-3882     Java raised exceptions fail to list JRuby caller method in the backtrace
JRUBY-3884     Rubyspec failures: Dir#inspect includes the directory name
JRUBY-3885     Rubyspec failures: Enumerable#none?
JRUBY-3889     java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package
JRUBY-3890     NativeExceptions have ugly stack traces
JRUBY-3891     JavaSupport.handleNativeException doesn't seem handle superclasses properly
JRUBY-3892     Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass"
JRUBY-3893     Can't require yaml from jruby-complete.jar at head
JRUBY-3894     Problems with __FILE__ and file loaded from a jar
JRUBY-3896     '--ng' in JRUBY_OPTS is not passed correctly
JRUBY-3897     Dir::entries doesn't work within a jar
JRUBY-3898     Two methods, tryCompile and runScript, in org.jruby.Ruby should be public to enable compileable option for embedding
JRUBY-3907     Time.strftime allows tokens deriving from GNU C library
JRUBY-3908     Addendum to JRUBY-3896
JRUBY-3910     Java List to Ruby Array conversion ~100% slower than primitive array conversion
JRUBY-3911     hpricot is busted when truncating multibyte strings
JRUBY-3912     FFI - Some Ruby-FFI specs fail on JRuby
JRUBY-3913     Date.strftime bug fixes (%u, %w, %s) and addition of %G
JRUBY-3914     In 1.9 mode, Time.now == nil should return false, not nil
JRUBY-3915     JFFI needs binaries for more arches
JRUBY-3916     Clean up nailgun directory a little
JRUBY-3919     Creation of BouncyCastle security provider results in security errors when run in an unprivileged context
JRUBY-3921     Can't run ruby specs for ruby 1.9
JRUBY-3922     File.basename doesn't cope with UTF8 strings
JRUBY-3927     Jar complete doesn't compile
JRUBY-3928     Net::HTTP doesn't timeout as expected when using timeout.rb
JRUBY-3929     checksums for new versions please
JRUBY-3932     Set == broken in 1.9
JRUBY-3933     [19] IO.gets missing additional limit field
JRUBY-3936     Math.gamma fails on certain values when it shouldn't
JRUBY-3937     Socket::getaddrinfo() returns incorrect data on solaris
JRUBY-3940     Rubyspec: Kernel#== compare spec failing
JRUBY-3941     [19] socket.do_not_reverse_lookup is unimplemented
JRUBY-3942     [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter
JRUBY-3945     [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding
JRUBY-3946     [1.9] Encoding.default_external should get encoding from default charset when is nil
JRUBY-3947     [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1)
JRUBY-3951     TMail fails to install without modifications mkmf.rb
JRUBY-3952     Update pom.xml to reflect move from SVN to Git.
JRUBY-3953     jruby.bat doesn't run on Windows 7
JRUBY-3954     JRuby operating differently from MRI with andand gem
JRUBY-3956     Can't do Enumerator#next in --1.9? Not implemented yet?
JRUBY-3964     Threads created for Fibers/Generators/Enumerator.next must die due to GC and raise a nice error when threads are unavailable
JRUBY-3967     remove some duplicated tests that have been added to rubyspecs
JRUBY-3968     YAML.load produces: allocator undefined for Symbol (TypeError)
JRUBY-3969     LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3
JRUBY-3970     jruby.bat errors out with unexpected characters
JRUBY-3971     jruby --ng gives "Access denied" message
JRUBY-3974     In-proc execution loses almost all parent-process config values
JRUBY-3977     "require" won't load jars with ".so" anywhere in the name
JRUBY-3979     [1.9] Array.collect returns an Enumerator when no block given
JRUBY-3981     Cannot connect to ActiveRecord database
JRUBY-3984     [1.9] Array improvements to solve several specs
JRUBY-3985     [1.9] ARGF improvements to solve several specs
JRUBY-3987     [1.9] Bignum improvements to pass some ruby specs
JRUBY-3988     Fixnums quietly lop off bits when calling methods of lesser precision than long
JRUBY-3989     nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0
JRUBY-3990     Fixnums are inconsistently converted when target type is java.lang.Object
JRUBY-3991     [1.9] Comparable improvements to pass ruby specs
JRUBY-3993     [1.9] Dir improvements to pass some ruby specs
JRUBY-3994     [1.9] Enumerable improvements to pass some ruby specs
JRUBY-3995     ant bails with unrecognized -d32 option on Windows
JRUBY-3997     IBM JDK does not support some String.format specifiers
JRUBY-3998     Path separators differ between jruby and jruby --ng on Windows
JRUBY-3999     [PATCH] Improved Sorting Algorithm
JRUBY-4000     [1.9] Fixnum improvements to solve ruby specs
JRUBY-4001     [PATCH] Fixed float rubyspecs
JRUBY-4003     NegativeArraySizeException in RubyHash.keys
JRUBY-4004     jrubyc should return a non-zero return code if compilation fails
JRUBY-4011     IO.binmode should raise an IOError on closed stream
JRUBY-4017     [1.8] Method#name and UnboundMethod#name should return strings, not symbols
JRUBY-4018     jruby --ng-server aborts on Windows with "the syntax of the command is incorrect"
JRUBY-4019     Build issues when changes from rev 2eef39 are included
JRUBY-4021     [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity?
JRUBY-4022     9 rubyspec failures for SecureRandom
JRUBY-4029     String hash keys should be copied
JRUBY-4036     Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used
JRUBY-4037     Ruby 1.8 compatibility: /#{/\w/}/uo does not work as expected
JRUBY-4038     nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch
JRUBY-4039     Implicit conversion to List<Long> results in a List<Byte%gt; or List<Integer>
JRUBY-4041     tool/nailgun/configure is not executable
JRUBY-4042     [windows] jruby.bat without parameters fails
JRUBY-4043     could not coerce BigDecimal to class java.lang.Object (TypeError)
JRUBY-4045     [windows] jruby -e "p $LOAD_PATH" fails (regression)
JRUBY-4046     [windows] UNIXSocket and UNIXServer should not be defined on Windows (regression)
JRUBY-4050     Installer PATH modification should be optional
JRUBY-4051     Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb
JRUBY-4052     JRuby on windows does not provide the calloc function
JRUBY-4053     ActiveRecord AssociationCollection#== method is returning false on equal results
JRUBY-4055     [windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line
JRUBY-4056     unsigned values values should be stuffed into Java signed values like Java does
JRUBY-4058     [windows] jruby.bat eats % signs
JRUBY-4059     test filepath containing _p is split by _jrubyvmopts.bat
JRUBY-4060     gem command doesn't work when RUBYOPT set
JRUBY-4062     RUBYOPT=-rubygems causes various problems for JRuby
JRUBY-4063     memory stomping error with debug JVM on Solaris
JRUBY-4064     Yecht regression: require'ing rubygems now makes nil, true, false all tainted
JRUBY-4065     java_alias to compliment and combine the best of java_method and java_send
JRUBY-4066     ruby subclass of java public void method cannot return numeric values
JRUBY-4069     [windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud
JRUBY-4070     Can't find Nailgun classes on Windows
JRUBY-4071     SystemCallError.new does not create an Errno instance
JRUBY-4078     rcov feils with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008.
JRUBY-4079     rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008.
JRUBY-4081     Long stored in RubyArray is returned as Byte
JRUBY-4084     Working with the enumerable methods on arrays containing strings created by splicing can raise a Java Exception
JRUBY-4085     test/test_system_error.rb is broken
JRUBY-4089     Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects
JRUBY-4091     IConv.conv ignores //IGNORE flag into the encoding parameter
JRUBY-4094     variadic FFI functions with struct-by-value return types are broken
JRUBY-4095     FFI functions that return a struct-by-value cannot accept non-primitive parameters
JRUBY-4096     JVM crash on exit when loading library with FFI
JRUBY-4100     Native jruby launcher needed (at least for Windows)
JRUBY-4108     LoadService::SuffixType too private now for LoadService magic
JRUBY-4109     Inconsistent handling of Fixnum/Bignum boundary
JRUBY-4111     Solaris 32bit stat struct too large
JRUBY-4114     jffi in 1.4 needs update to 0.6.0.2
JRUBY-4120     [windows] Native launcher doesn't honor CLASSPATH env variable
JRUBY-4121     [major regression] Most *.bat commands don't work anymore
JRUBY-4122     RbConfig/Gem cleanup after switch to native launcher
JRUBY-4124     [windows] Native launcher doesn't honor JAVA_HOME env variable
JRUBY-4128     FFI needs NullPointerError exception class
JRUBY-4129     gem install can not work when the gem name contails '_p'
JRUBY-4131     Nailgun doesn't work on Windows 2000
JRUBY-4132     [windows] JRuby's native launcher provides empty name to jps/jconsole
JRUBY-4133     JRuby native launcher should look at its binary name and launch appropriate tools
JRUBY-4136     [windows] Native jrubyw.exe is needed
JRUBY-4137     ant dist/rake installers should generate sha1 and md5 files for installer files
JRUBY-4138     Open up LoadService some more
JRUBY-4139     FFI::Struct and FFI::Union do not call member struct's initialize method
JRUBY-4142     [regression] TCPSocket raises wrong exception when can't connect
JRUBY-4144     Remove all vestiges of individual version numbers from install4j scripts
JRUBY-4145     Windows Launcher with just IBM Java installed will not execute properly
JRUBY-4150     rake --trace causes dialog box (Missing argument) on Windows
JRUBY-4153     Rational#new! is no longer defined
JRUBY-4154     [regression] Thread.exclusive is undefined
JRUBY-4155     Warbler install fails on RC2
JRUBY-4157     fannkuch and chameneosredux benchmarks timing out on The Benchmarks Game
JRUBY-4161     Potential Regression: Extlib spec suite: Enumerable#entries wrong # of arguments(0 for 1)
JRUBY-4172     Rbconfig's Config::CONFIG provides wrong name for Windows 7
JRUBY-4179     [regression] [1.8] Dir.mkdir should accept any arg that responds to #to_str
JRUBY-4185     JRuby using unreleased version of jcodings.jar, prevents usage of jvyamlb in same app.
JRUBY-4189     calling to_java(:string) on a ruby array with a symbol in it now causes java exception
JRUBY-4190     java.util.List.sort regression since 1.3.1
JRUBY-3403       Socket close_read and close_write should use appropriate methods on java.net.Socket
JRUBY-3725     Fix for JRUBY-3563 introduces regression in Socket#getnameinfo
JRUBY-3740     Thread#wakeup not working
JRUBY-3743     Timeout no longer supports sub-second timeouts
JRUBY-3744     Ruby BigDecimal vulnerability seems to affect JRuby as well

JRuby 1.4.0RC3 Released

Wednesday, October 28 2009

The JRuby community is pleased to announce the release of JRuby 1.4.0RC3

Third time is a charm! Actually, this third release candidate is largely for the benefit of our Windows users. We have gotten reports of issues with our new installer and our new native launcher and we have been trying to make sure JRuby on Windows is a pleasant experience. We also fixed a Socket regression which had caused celerity to break.

The JRuby 1.4.0 release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.

We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.

Please try your apps against 1.4.0RC3 ASAP and report problems

1.4.0RC1-RC3 Highlights:

  • JRuby is now compatible with 1.8.7 patchlevel 174

  • Windows Native Launcher - Solves many reported bugs with our old .bat scripts

  • New YAML parser Yecht (bug-for-bug compatible with Syck!)

  • Improved Java Integration Support

    • faster
    • new java_method, java_send, and java_alias methods
  • Windows installer

  • New embedding framework

    • Java 6 scripting out of the box
    • New org.jruby.embed package to replace JavaEmbedUtils
  • Many 1.9 mode (–1.9) fixes

    • updated stdlib to 1.9.2preview2
    • Rubygems now working
    • Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
  • rubygems 1.3.5

  • Much better error reporting

    • shorter backtraces with less Java
    • Ruby-compatiable syntax error reporting
  • 241 bugs fixed since 1.3.1

Issues fixed between 1.4.0RC2 and 1.4.0RC3:

Key             Summary
JRUBY-4150      rake --trace causes dialog box (Missing argument) on Windows
JRUBY-4145      Windows Launcher with just IBM Java installed will not execute properly
JRUBY-4155      Warbler install fails on RC2
JRUBY-4144      Remove all vestiges of individual version numbers from install4j scripts
JRUBY-4153      Rational#new! is no longer defined
JRUBY-4161      Potential Regression: Extlib spec suite: Enumerable#entries wrong # of arguments(0 for 1)
JRUBY-4138      Open up LoadService some more
JRUBY-4154      [regression] Thread.exclusive is undefined
JRUBY-4139      FFI::Struct and FFI::Union do not call member struct's initialize method

Issues fixed between 1.4.0RC1 and 1.4.0RC2:

Key             Summary
JRUBY-4036 	Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used
JRUBY-4064 	Yecht regression: require'ing rubygems now makes nil, true, false all tainted
JRUBY-4051 	Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb
JRUBY-4063 	memory stomping error with debug JVM on Solaris
JRUBY-4042 	[windows] jruby.bat without parameters fails
JRUBY-4055 	[windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line
JRUBY-4058 	[windows] jruby.bat eats % signs
JRUBY-4056 	unsigned values values should be stuffed into Java signed values like Java does
JRUBY-4039 	Implicit conversion to List<Long> results in a List<Byte> or List<Integer>
JRUBY-4079 	rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008.
JRUBY-4041 	tool/nailgun/configure is not executable
JRUBY-4069 	[windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud
JRUBY-4071 	SystemCallError.new does not create an Errno instance
JRUBY-4089 	Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects
JRUBY-4045 	[windows] jruby -e "p $LOAD_PATH" fails (regression)
JRUBY-4066 	ruby subclass of java public void method cannot return numeric values
JRUBY-4043 	could not coerce BigDecimal to class java.lang.Object (TypeError)
JRUBY-4053 	ActiveRecord AssociationCollection#== method is returning false on equal results
JRUBY-4094 	variadic FFI functions with struct-by-value return types are broken
JRUBY-4062 	RUBYOPT=-rubygems causes various problems for JRuby
JRUBY-4060 	gem command doesn't work when RUBYOPT set
JRUBY-4038 	nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch
JRUBY-4095 	FFI functions that return a struct-by-value cannot accept non-primitive parameters
JRUBY-4111 	Solaris 32bit stat struct too large
JRUBY-4108 	LoadService::SuffixType too private now for LoadService magic
JRUBY-4131 	Nailgun doesn't work on Windows 2000
JRUBY-4129 	gem install can not work when the gem name contails '_p'

Issues Fixed between 1.3.1 and 1.4.0RC1:

Key            Summary
JRUBY-382      Better error output from parser
JRUBY-937      JRuby does not honor RUBY_OPTS or RUBYOPT
JRUBY-2232     UNIXSocket doesn't work on Solaris
JRUBY-2324     AST Node positions and content incorrect when passing down Multibyte content to lexer
JRUBY-2349     Bug in constant lookup on non Module or Class
JRUBY-2398     We should strive to implement the 1.8.7 improvements
JRUBY-2419     Argument application within block is not parsed correctly (for Range literals)
JRUBY-2525     Dir.glob ordering inconsistent with Matzruby
JRUBY-2587     [1.8.7] Hash.[] should call to_ary if only one argument is provided
JRUBY-2604     [1.8.7] Implement Binding#eval method
JRUBY-2626     Many rubyspec failures for SortedSet
JRUBY-2654     File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib
JRUBY-2666     Issues with Socket#getaddrinfo
JRUBY-2694     [1.8.7] Ability to specify suffix/extension for Tempfile
JRUBY-2866     Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7
JRUBY-3123     Java primate arrays no longer respond to 'first' (Array) from ruby
JRUBY-3150     Execution variable $: does not include on the taint check level > 1
JRUBY-3154     Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads)
JRUBY-3159     -e option does not work with iterator blocks
JRUBY-3165     Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods
JRUBY-3215     BSF does not retain local scope between eval calls
JRUBY-3240     YAML: active_support dump of BigDecimal differs from MRI
JRUBY-3263     imcompatibility with Ruby-1.8.6 in YAML parsing
JRUBY-3266     undefined method 'add_ruby_type' for YAML:Module
JRUBY-3297     Array.new with (size, object=nil) returns the value passed to break
JRUBY-3306     --1.9 mode doesn't know define_singleton_method
JRUBY-3319     Date spec failures
JRUBY-3321     matrix rubyspec failures
JRUBY-3323     rational rubyspec failures
JRUBY-3327     Possible YAML parsing error
JRUBY-3352     JNA-based FFI fails to load for specs on Windows
JRUBY-3368     java.util.List[range] is broken
JRUBY-3380     New 1.9 Enumerator methods
JRUBY-3389     RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance
JRUBY-3403     Socket close_read and close_write should use appropriate methods on java.net.Socket
JRUBY-3412     YAML.dump loses the timezone when dumping Time instances
JRUBY-3419     JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments
JRUBY-3433     Encoding.default_internal and Encoding.default_external missing
JRUBY-3442     1.9 allows trailing commas in method invocations
JRUBY-3453     Make import not complain if Java already has already imported the specific Java class
JRUBY-3473     RubySpec: OpenStruct frozen failures
JRUBY-3478     Dir.new does not work for directories inside jar file
JRUBY-3499     File.expand_path (from inside a jar) uses %20 instead of space characters
JRUBY-3505     Can't install hpricot (0.7) gem
JRUBY-3518     JRUBY-1786
yaml_initialize not called for subclasses of standard types
JRUBY-3545     ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem)
JRUBY-3546     ~/.hoerc results in parsing error
JRUBY-3558     RubySpec: Defining instance methods on an eigenclass define public methods
JRUBY-3559     the integratated joda time version should be in a distinct package hierarchy
JRUBY-3575     File permission errors installing gems in 1.9 mode
JRUBY-3576     utf-8 string becomes macroman on os x
JRUBY-3577     File and FileTest methods should use to_path to coerce non-string parameters
JRUBY-3591     Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby
JRUBY-3592     Regression test failure (test_grpowned)
JRUBY-3605     [1.9] IO.initialize missing option hash parsing
JRUBY-3606     [1.9] IO.set_encoding is stubbed out
JRUBY-3607     [1.9] IO.external_encoding stubbed out
JRUBY-3611     RubySpec: "StringIO#sysread when passed no arguments" failures
JRUBY-3612     RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array
JRUBY-3627     Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables
JRUBY-3653     RubySpec: Hash failures "computes equality for complex recursive hashes"
JRUBY-3654     RubySpec: Array failures relating to recursive arrays
JRUBY-3662     JavaEmbedUtils should have methods to set/reset Standard I/O
JRUBY-3682     Hashcodes for Hash objects break compatability with MRI
JRUBY-3687     Bundle JSR 223 support in JRuby
JRUBY-3688     IO.read fails to read files in /proc filesystem on Linux
JRUBY-3700     test/externals/ruby1.8/yaml/test_yaml failures
JRUBY-3702     The method methods
JRUBY-3703     TestCommandLineSwitches fails on Windows
JRUBY-3705     Rubyspec: behavior of $: under safe > 1
JRUBY-3706     Rubyspec: method arity behavior
JRUBY-3707     Rubyspec: Process egid behavior
JRUBY-3718     FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument
JRUBY-3721     sub-optimal IO#read after IO#getc
JRUBY-3722     block parameter problem
JRUBY-3725     Fix for JRUBY-3563 introduces regression in Socket#getnameinfo
JRUBY-3731     --debug causes problems. Methods are missing.
JRUBY-3736     JRuby won't load a .jar if a .so is found too.
JRUBY-3738     jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported
JRUBY-3740     Thread#wakeup not working
JRUBY-3743     Timeout no longer supports sub-second timeouts
JRUBY-3744     Ruby BigDecimal vulnerability seems to affect JRuby as well
JRUBY-3745     RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block
JRUBY-3747     String#gsub! with pattern and block raises a RuntimeError when self is frozen
JRUBY-3748     RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number
JRUBY-3750     JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9"
JRUBY-3751     YAML.load fails for Struct objects with non-standard initialize
JRUBY-3757     String.split is broken
JRUBY-3759     syslog not available for JRuby --1.9
JRUBY-3761     FileUtils.chown_R produces ArgumentError when the directory contains a symlink
JRUBY-3766     update .classpath for building jruby with eclipse
JRUBY-3773     CLONE -custom YAML serialization ignored by JRuby
JRUBY-3774     >>define_method :name do | &er;blk | << ignores
JRUBY-3776     The install-gems goal throws exceptions
JRUBY-3777     Exception on Solaris loading ruby gems
JRUBY-3778     clone of stderr and stdout not working
JRUBY-3782     BSF interface - apply nonfunctional with parameters
JRUBY-3783     Timeout.timeout doesn't raise given exception
JRUBY-3784     More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size'
JRUBY-3788     argument population of blocks broke in at least one case somewhere between 1.2 and 1.3
JRUBY-3799     Bug in native timeout module causes hang when waiting on IO
JRUBY-3800     CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided
JRUBY-3806     Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue
JRUBY-3807     jgem --1.9 broken
JRUBY-3808     Gem redclothcoderay doesn't installs under jruby
JRUBY-3809     require 'tmpdir' fails when embedded in a java app that has messed with the classpath
JRUBY-3810     StringIO#truncate problem
JRUBY-3811     require 'Complex' fails when running in Ruby 1.9 mode
JRUBY-3815     Time#strftime breaks with multibyte characters, affects I18n#localize
JRUBY-3817     Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8
JRUBY-3820     timeout library should throw an anonymous exception type while unrolling stack
JRUBY-3823     Wrong property in netbeans-ant.xml
JRUBY-3827     WEBrick binds only to localhost, not to requested bind addresses
JRUBY-3828     JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases
JRUBY-3832     FFI: apparent memory leak when using callbacks
JRUBY-3835     FFI AbstractMemory#get_array_of_uint64 is missing
JRUBY-3836     backquotes can raise IO Error (closed stream)
JRUBY-3838     Exceptions coming out of eval no longer have line numbers
JRUBY-3849     Resolv.getaddress is broken on OSX 1.5
JRUBY-3850     Hash#select returns an Array of entries for which block is true FAILED
JRUBY-3851     Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR
JRUBY-3852     Hash#eql? spec failures
JRUBY-3853     Two Enumerable spec bugs for 1.8.7 (one related to break)
JRUBY-3854     Five spec failures in ConditionVariable after merge
JRUBY-3856     YAML.load is broken when loading structs with initialize method with arguments
JRUBY-3858     NPE in RubyRegexp.java with --1.9
JRUBY-3859     VariadicInvoker missing a BOOL case
JRUBY-3860     Rational(3,-4).to_i should return -1
JRUBY-3861     Shared "box" in DefaultMethod breaking visibility re-checks in some cases
JRUBY-3862     Socket.pack_sockaddr_in is broken on linux
JRUBY-3863     Support boolean arguments to and return values from ffi callbacks
JRUBY-3867     Nailgun not supported in Windows bat files
JRUBY-3869     'puts []' prints a newline
JRUBY-3870     Object#singleton_methods(true) doesn't include inherited methods
JRUBY-3871     strftime doesn't support %h
JRUBY-3873     StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime
JRUBY-3874     it would be nice if LoadService could log where it searches and what it finds
JRUBY-3875     TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open
JRUBY-3876     JRuby crashes on using the three-parameter version of TCPSocket.open
JRUBY-3878     String representation of arrays and symbols does not match ruby 1.9
JRUBY-3879     Array#pack('d') is incorrect
JRUBY-3882     Java raised exceptions fail to list JRuby caller method in the backtrace
JRUBY-3884     Rubyspec failures: Dir#inspect includes the directory name
JRUBY-3885     Rubyspec failures: Enumerable#none?
JRUBY-3889     java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package
JRUBY-3890     NativeExceptions have ugly stack traces
JRUBY-3891     JavaSupport.handleNativeException doesn't seem handle superclasses properly
JRUBY-3892     Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass"
JRUBY-3893     Can't require yaml from jruby-complete.jar at head
JRUBY-3894     Problems with __FILE__ and file loaded from a jar
JRUBY-3896     '--ng' in JRUBY_OPTS is not passed correctly
JRUBY-3897     Dir::entries doesn't work within a jar
JRUBY-3907     Time.strftime allows tokens deriving from GNU C library
JRUBY-3908     Addendum to JRUBY-3896
JRUBY-3910     Java List to Ruby Array conversion ~100% slower than primitive array conversion
JRUBY-3911     hpricot is busted when truncating multibyte strings
JRUBY-3912     FFI - Some Ruby-FFI specs fail on JRuby
JRUBY-3913     Date.strftime bug fixes (%u, %w, %s) and addition of %G
JRUBY-3914     In 1.9 mode, Time.now == nil should return false, not nil
JRUBY-3916     Clean up nailgun directory a little
JRUBY-3922     File.basename doesn't cope with UTF8 strings
JRUBY-3927     Jar complete doesn't compile
JRUBY-3929     checksums for new versions please
JRUBY-3932     Set == broken in 1.9
JRUBY-3933     [19] IO.gets missing additional limit field
JRUBY-3936     Math.gamma fails on certain values when it shouldn't
JRUBY-3937     Socket::getaddrinfo() returns incorrect data on solaris
JRUBY-3941     [19] socket.do_not_reverse_lookup is unimplemented
JRUBY-3942     [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter
JRUBY-3945     [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding
JRUBY-3946     [1.9] Encoding.default_external should get encoding from default charset when is nil
JRUBY-3947     [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1)
JRUBY-3951     TMail fails to install without modifications mkmf.rb
JRUBY-3952     Update pom.xml to reflect move from SVN to Git.
JRUBY-3953     jruby.bat doesn't run on Windows 7
JRUBY-3954     JRuby operating differently from MRI with andand gem
JRUBY-3956     Can't do Enumerator#next in --1.9? Not implemented yet?
JRUBY-3967     remove some duplicated tests that have been added to rubyspecs
JRUBY-3968     YAML.load produces: allocator undefined for Symbol (TypeError)
JRUBY-3969     LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3
JRUBY-3970     jruby.bat errors out with unexpected characters
JRUBY-3974     In-proc execution loses almost all parent-process config values
JRUBY-3977     "require" won't load jars with ".so" anywhere in the name
JRUBY-3981     Cannot connect to ActiveRecord database
JRUBY-3984     [1.9] Array improvements to solve several specs
JRUBY-3985     [1.9] ARGF improvements to solve several specs
JRUBY-3987     [1.9] Bignum improvements to pass some ruby specs
JRUBY-3988     Fixnums quietly lop off bits when calling methods of lesser precision than long
JRUBY-3989     nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0
JRUBY-3990     Fixnums are inconsistently converted when target type is java.lang.Object
JRUBY-3991     [1.9] Comparable improvements to pass ruby specs
JRUBY-3993     [1.9] Dir improvements to pass some ruby specs
JRUBY-3995     ant bails with unrecognized -d32 option on Windows
JRUBY-3997     IBM JDK does not support some String.format specifiers
JRUBY-3998     Path separators differ between jruby and jruby --ng on Windows
JRUBY-3999     [PATCH] Improved Sorting Algorithm
JRUBY-4000     [1.9] Fixnum improvements to solve ruby specs
JRUBY-4001     [PATCH] Fixed float rubyspecs
JRUBY-4003     NegativeArraySizeException in RubyHash.keys
JRUBY-4004     jrubyc should return a non-zero return code if compilation fails
JRUBY-4011     IO.binmode should raise an IOError on closed stream
JRUBY-4017     [1.8] Method#name and UnboundMethod#name should return strings, not symbols
JRUBY-4019     Build issues when changes from rev 2eef39 are included
JRUBY-4021     [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity?
JRUBY-4022     9 rubyspec failures for SecureRandom

JRuby 1.4.0RC2 Released

Wednesday, October 21 2009

The JRuby community is pleased to announce the release of JRuby 1.4.0RC2.

  • Homepage: http://www.jruby.org/
  • Download: http://www.jruby.org/download

The JRuby 1.4.0 release ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.

We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.

Due to the overwhelming feedback we got from RC1, we have fixed a number of reported issues (shown below) for RC2. We expect that this will be our last RC before 1.4.0 final.

Please try your apps against 1.4.0RC2 ASAP and report problems.

1.4.0RC2 Highlights:

  • Windows Native Launcher

    • Solves many reported bugs with our old .bat scripts

1.4.0RC1 Highlights:

  • JRuby is now compatible with 1.8.7 patchlevel 174

  • New YAML parser Yecht (bug-for-bug compatible with Syck!)

  • Improved Java Integration Support

    • faster
    • new java_method and java_send methods
  • Windows installer

  • New embedding framework

    • Java 6 scripting out of the box
    • New org.jruby.embed package to replace JavaEmbedUtils
  • Many 1.9 mode (–1.9) fixes

    • updated stdlib to 1.9.2preview2
    • Rubygems now working
    • Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
  • rubygems 1.3.5

  • Much better error reporting

    • shorter backtraces with less Java
    • Ruby-compatiable syntax error reporting
  • 232 bugs fixed since 1.3.1

We want to give a couple of special acknowledgements for some contributors who went the extra mile this release cycle.

David Calavera has done a great job wrestling with Rubyspec failures and coming up with patches.

Yoko Harada has totally revamped our embedding APIs and created a new API called Red Bridge. This should address all of the reported embedding issues.

Issues fixed since 1.4.0RC1:

JRUBY-4036 Regression: Instead of java-based ThreadLibrary a pure-ruby thread.rb from stdlib is used
JRUBY-4064 Yecht regression: require'ing rubygems now makes nil, true, false all tainted
JRUBY-4051 Recieve error "\jruby-1.4.0RC1\bin\) was unexpected at this time" when i try use jruby or jirb
JRUBY-4063 memory stomping error with debug JVM on Solaris
JRUBY-4042 [windows] jruby.bat without parameters fails
JRUBY-4055 [windows] jruby.bat can't handle caret sign (^) and question mark (?) in command line
JRUBY-4058 [windows] jruby.bat eats % signs
JRUBY-4056 unsigned values values should be stuffed into Java signed values like Java does
JRUBY-4039 Implicit conversion to List<Long> results in a List<Byte> or List<Integer>
JRUBY-4079 rcov fails with NullPointerException with JRuby 1.4.0RC1. Has worked with all JRuby versions since 2008.
JRUBY-4041 tool/nailgun/configure is not executable
JRUBY-4069 [windows] jruby.jar is not in bootclasspath, JRuby starts much slower then it colud
JRUBY-4071 SystemCallError.new does not create an Errno instance
JRUBY-4089 Mangled Joda-Time package breaks public APIs that return or consume Joda-Time objects
JRUBY-4045 [windows] jruby -e "p $LOAD_PATH" fails (regression)
JRUBY-4066 ruby subclass of java public void method cannot return numeric values
JRUBY-4043 could not coerce BigDecimal to class java.lang.Object (TypeError)
JRUBY-4053 ActiveRecord AssociationCollection#== method is returning false on equal results
JRUBY-4094 variadic FFI functions with struct-by-value return types are broken
JRUBY-4062 RUBYOPT=-rubygems causes various problems for JRuby
JRUBY-4060 gem command doesn't work when RUBYOPT set
JRUBY-4038 nil implicitly casts to java.lang.Integer instead of java.lang.Long during method dispatch
JRUBY-4095 FFI functions that return a struct-by-value cannot accept non-primitive parameters
JRUBY-4111 Solaris 32bit stat struct too large
JRUBY-4108 LoadService::SuffixType too private now for LoadService magic
JRUBY-4131 Nailgun doesn't work on Windows 2000
JRUBY-4129 gem install can not work when the gem name contails '_p'

JRuby 1.4.0RC1 Released

Friday, October 02 2009

The JRuby community is pleased to announce the release of JRuby 1.4.0RC1.

  • Homepage: http://www.jruby.org/
  • Download: http://www.jruby.org/download

JRuby 1.4.0 Release Candidate 1 ends a long release cycle in which we resolved a huge number of issues. The headline feature is a move to Ruby 1.8.7 support, in line with Rails’ own plans to make 1.8.7 the required minimum version of Ruby.

We have also gotten more serious about out 1.9 support (–1.9). The bigger applications mostly just work at this point, but we still have a ways to go on 1.9 support. Please try your 1.9 code in JRuby and help us firm things up.

Bug reports welcome and requested!

Please try your apps against 1.4.0RC1 ASAP and report problems.

Highlights:

  • JRuby is now compatible with 1.8.7 patchlevel 174

  • New YAML parser Yecht (bug-for-bug compatible with Syck!)

  • Improved Java Integration Support

    • faster
    • new java_method and java_send methods
  • Windows installer

  • New embedding framework

    • Java 6 scripting out of the box
    • New org.jruby.embed package to replace JavaEmbedUtils
  • Many 1.9 mode (–1.9) fixes

    • updated stdlib to 1.9.2preview2
    • Rubygems now working
    • Rails 2.3.3 simple apps working (2.3.4 has 1.9 bug)
  • rubygems 1.3.5

  • Much better error reporting

    • shorter backtraces with less Java
    • Ruby-compatiable syntax error reporting
  • 205 bugs fixed since 1.3.1

We want to give a couple of special acknowledgements for some contributors who went the extra mile this release cycle.

David Calavera has done a great job wrestling with Rubyspec failures and coming up with patches.

Yoko Harada has totally revamped our embedding APIs and created a new API called Red Bridge. This should address all of the reported embedding issues.

Issues Fixed for 1.4.0RC1:

JRUBY-382 Better error output from parser
JRUBY-937 JRuby does not honor RUBY_OPTS or RUBYOPT
JRUBY-2232 UNIXSocket doesn't work on Solaris
JRUBY-2324 AST Node positions and content incorrect when passing down Multibyte content to lexer
JRUBY-2349 Bug in constant lookup on non Module or Class
JRUBY-2398 We should strive to implement the 1.8.7 improvements
JRUBY-2419 Argument application within block is not parsed correctly (for Range literals)
JRUBY-2525 Dir.glob ordering inconsistent with Matzruby
JRUBY-2587 [1.8.7] Hash.[] should call to_ary if only one argument is provided
JRUBY-2604 [1.8.7] Implement Binding#eval method
JRUBY-2626 Many rubyspec failures for SortedSet
JRUBY-2654 File pty.rb is not part of the JRuby distro, but is part of the Ruby standard lib
JRUBY-2666 Issues with Socket#getaddrinfo
JRUBY-2694 [1.8.7] Ability to specify suffix/extension for Tempfile
JRUBY-2866 Set .include? method behavior differs between JRuby 1.1.3 and Ruby 1.8.7
JRUBY-3123 Java primate arrays no longer respond to 'first' (Array) from ruby
JRUBY-3150 Execution variable $: does not include on the taint check level > 1
JRUBY-3154 Net::HTTP.read_timeout is ignored, timeout is intinite instead (leading to massive accumulation of sockets and reading threads)
JRUBY-3159 -e option does not work with iterator blocks
JRUBY-3165 Add stream/reader based methods to JavaEmbedUtils.RuntimeAdapter as convenience methods
JRUBY-3215 BSF does not retain local scope between eval calls
JRUBY-3240 YAML: active_support dump of BigDecimal differs from MRI
JRUBY-3263 imcompatibility with Ruby-1.8.6 in YAML parsing
JRUBY-3266 undefined method 'add_ruby_type' for YAML:Module
JRUBY-3297 Array.new with (size, object=nil) returns the value passed to break
JRUBY-3306 --1.9 mode doesn't know define_singleton_method
JRUBY-3319 Date spec failures
JRUBY-3321 matrix rubyspec failures
JRUBY-3323 rational rubyspec failures
JRUBY-3327 Possible YAML parsing error
JRUBY-3352 JNA-based FFI fails to load for specs on Windows
JRUBY-3368 java.util.List[range] is broken
JRUBY-3380 New 1.9 Enumerator methods
JRUBY-3389 RubySpec: Hash#update raises a TypeError if called on a non-empty, frozen instance
JRUBY-3403 Socket close_read and close_write should use appropriate methods on java.net.Socket
JRUBY-3412 YAML.dump loses the timezone when dumping Time instances
JRUBY-3419 JRuby Fails (MRI 1.8.6 works) in Sinatra "helpers" when no arguments
JRUBY-3433 Encoding.default_internal and Encoding.default_external missing
JRUBY-3442 1.9 allows trailing commas in method invocations
JRUBY-3453 Make import not complain if Java already has already imported the specific Java class
JRUBY-3473 RubySpec: OpenStruct frozen failures
JRUBY-3478 Dir.new does not work for directories inside jar file
JRUBY-3499 File.expand_path (from inside a jar) uses %20 instead of space characters
JRUBY-3505 Can't install hpricot (0.7) gem
JRUBY-3518 JRUBY-1786 yaml_initialize not called for subclasses of standard types
JRUBY-3545 ArrayIndexOutOfBoundsException when opening Bio::FlatFiles (bioruby gem)
JRUBY-3546 ~/.hoerc results in parsing error
JRUBY-3558 RubySpec: Defining instance methods on an eigenclass define public methods
JRUBY-3559 the integratated joda time version should be in a distinct package hierarchy
JRUBY-3575 File permission errors installing gems in 1.9 mode
JRUBY-3576 utf-8 string becomes macroman on os x
JRUBY-3577 File and FileTest methods should use to_path to coerce non-string parameters
JRUBY-3591 Hexadecimal constants do not have the same equal? behaviour between JRuby and CRuby
JRUBY-3592 Regression test failure (test_grpowned)
JRUBY-3605 [1.9] IO.initialize missing option hash parsing
JRUBY-3606 [1.9] IO.set_encoding is stubbed out
JRUBY-3607 [1.9] IO.external_encoding stubbed out
JRUBY-3611 RubySpec: "StringIO#sysread when passed no arguments" failures
JRUBY-3612 RubySpec: Array#to_s returns '[...]' for the embedded array in a recursive array
JRUBY-3627 Parsing related methods and class/interdace should have ManyVarsDynamicScope to share local variables
JRUBY-3653 RubySpec: Hash failures "computes equality for complex recursive hashes"
JRUBY-3654 RubySpec: Array failures relating to recursive arrays
JRUBY-3662 JavaEmbedUtils should have methods to set/reset Standard I/O
JRUBY-3682 Hashcodes for Hash objects break compatability with MRI
JRUBY-3687 Bundle JSR 223 support in JRuby
JRUBY-3688 IO.read fails to read files in /proc filesystem on Linux
JRUBY-3700 test/externals/ruby1.8/yaml/test_yaml failures
JRUBY-3702 The method methods
JRUBY-3703 TestCommandLineSwitches fails on Windows
JRUBY-3705 Rubyspec: behavior of $: under safe > 1
JRUBY-3706 Rubyspec: method arity behavior
JRUBY-3707 Rubyspec: Process egid behavior
JRUBY-3718 FFI: put_pointer and put_array_of_pointer fails to send :to_ptr to their argument
JRUBY-3721 sub-optimal IO#read after IO#getc
JRUBY-3722 block parameter problem
JRUBY-3725 Fix for JRUBY-3563 introduces regression in Socket#getnameinfo
JRUBY-3731 --debug causes problems. Methods are missing.
JRUBY-3736 JRuby won't load a .jar if a .so is found too.
JRUBY-3738 jruby 1.3.0 windows vista issues: doesn't output helpful error if JAVA_HOME undefined, and JAVA_HOME path defined in quotes not supported
JRUBY-3740 Thread#wakeup not working
JRUBY-3743 Timeout no longer supports sub-second timeouts
JRUBY-3744 Ruby BigDecimal vulnerability seems to affect JRuby as well
JRUBY-3745 RubySpec: Hash#rehash causes a RuntimeError to be raised if called inside an iterator block
JRUBY-3747 String#gsub! with pattern and block raises a RuntimeError when self is frozen
JRUBY-3748 RubySpec: Kernel.Integer raises an ArgumentError if there is a space between the + and number
JRUBY-3750 JRUBY_OPTS="--1.9" results in error "jruby: unknown option --1.9"
JRUBY-3751 YAML.load fails for Struct objects with non-standard initialize
JRUBY-3757 String.split is broken
JRUBY-3759 syslog not available for JRuby --1.9
JRUBY-3761 FileUtils.chown_R produces ArgumentError when the directory contains a symlink
JRUBY-3766 update .classpath for building jruby with eclipse
JRUBY-3773 CLONE -custom YAML serialization ignored by JRuby
JRUBY-3774 >>define_method :name do | &blk | << ignores
JRUBY-3776 The install-gems goal throws exceptions
JRUBY-3777 Exception on Solaris loading ruby gems
JRUBY-3778 clone of stderr and stdout not working
JRUBY-3782 BSF interface - apply nonfunctional with parameters
JRUBY-3783 Timeout.timeout doesn't raise given exception
JRUBY-3784 More than 2G memory required for jruby -e 'buf = IO.read("/tmp/1GB.txt"); p buf.size'
JRUBY-3788 argument population of blocks broke in at least one case somewhere between 1.2 and 1.3
JRUBY-3799 Bug in native timeout module causes hang when waiting on IO
JRUBY-3800 CLASSPATH environment variable should be ignored if -J-cp or -J-classpath are provided
JRUBY-3806 Encoding problems with File.expand_path after JRUBY-3576 fix for Macroman issue
JRUBY-3807 jgem --1.9 broken
JRUBY-3808 Gem redclothcoderay doesn't installs under jruby
JRUBY-3809 require 'tmpdir' fails when embedded in a java app that has messed with the classpath
JRUBY-3810 StringIO#truncate problem
JRUBY-3811 require 'Complex' fails when running in Ruby 1.9 mode
JRUBY-3815 Time#strftime breaks with multibyte characters, affects I18n#localize
JRUBY-3817 Timeouts in Net::HTTP raise Timeout::ExitException instead of Timeout::Error for Ruby 1.8
JRUBY-3820 timeout library should throw an anonymous exception type while unrolling stack
JRUBY-3823 Wrong property in netbeans-ant.xml
JRUBY-3827 WEBrick binds only to localhost, not to requested bind addresses
JRUBY-3828 JavaUtil.convertRubyToJava fails to convert objects in seemingly random cases
JRUBY-3832 FFI: apparent memory leak when using callbacks
JRUBY-3835 FFI AbstractMemory#get_array_of_uint64 is missing
JRUBY-3836 backquotes can raise IO Error (closed stream)
JRUBY-3838 Exceptions coming out of eval no longer have line numbers
JRUBY-3849 Resolv.getaddress is broken on OSX 1.5
JRUBY-3850 Hash#select returns an Array of entries for which block is true FAILED
JRUBY-3851 Hash#update raises a TypeError if called on a non-empty, frozen instance ERROR
JRUBY-3852 Hash#eql? spec failures
JRUBY-3853 Two Enumerable spec bugs for 1.8.7 (one related to break)
JRUBY-3854 Five spec failures in ConditionVariable after merge
JRUBY-3856 YAML.load is broken when loading structs with initialize method with arguments
JRUBY-3858 NPE in RubyRegexp.java with --1.9
JRUBY-3859 VariadicInvoker missing a BOOL case
JRUBY-3860 Rational(3,-4).to_i should return -1
JRUBY-3861 Shared "box" in DefaultMethod breaking visibility re-checks in some cases
JRUBY-3862 Socket.pack_sockaddr_in is broken on linux
JRUBY-3863 Support boolean arguments to and return values from ffi callbacks
JRUBY-3867 Nailgun not supported in Windows bat files
JRUBY-3869 'puts []' prints a newline
JRUBY-3870 Object#singleton_methods(true) doesn't include inherited methods
JRUBY-3871 strftime doesn't support %h
JRUBY-3873 StringIndexOutOfBoundsException if the last character in format is '%' in Time.strftime
JRUBY-3874 it would be nice if LoadService could log where it searches and what it finds
JRUBY-3875 TypeError when providing nil as the third parameter to TCPSocket.new/TCPSocket.open
JRUBY-3876 JRuby crashes on using the three-parameter version of TCPSocket.open
JRUBY-3878 String representation of arrays and symbols does not match ruby 1.9
JRUBY-3879 Array#pack('d') is incorrect
JRUBY-3882 Java raised exceptions fail to list JRuby caller method in the backtrace
JRUBY-3884 Rubyspec failures: Dir#inspect includes the directory name
JRUBY-3885 Rubyspec failures: Enumerable#none?
JRUBY-3889 java errors are hidden when an instance of a class is created and we used the method include_package to load the specific java package
JRUBY-3890 NativeExceptions have ugly stack traces
JRUBY-3891 JavaSupport.handleNativeException doesn't seem handle superclasses properly
JRUBY-3892 Running rake rdoc from within jruby-complete.jar results in "undefined method `key' for nil:NilClass"
JRUBY-3893 Can't require yaml from jruby-complete.jar at head
JRUBY-3894 Problems with __FILE__ and file loaded from a jar
JRUBY-3896 '--ng' in JRUBY_OPTS is not passed correctly
JRUBY-3897 Dir::entries doesn't work within a jar
JRUBY-3907 Time.strftime allows tokens deriving from GNU C library
JRUBY-3908 Addendum to JRUBY-3896
JRUBY-3910 Java List to Ruby Array conversion ~100% slower than primitive array conversion
JRUBY-3911 hpricot is busted when truncating multibyte strings
JRUBY-3912 FFI - Some Ruby-FFI specs fail on JRuby
JRUBY-3913 Date.strftime bug fixes (%u, %w, %s) and addition of %G
JRUBY-3914 In 1.9 mode, Time.now == nil should return false, not nil
JRUBY-3916 Clean up nailgun directory a little
JRUBY-3922 File.basename doesn't cope with UTF8 strings
JRUBY-3927 Jar complete doesn't compile
JRUBY-3929 checksums for new versions please
JRUBY-3932 Set == broken in 1.9
JRUBY-3933 [19] IO.gets missing additional limit field
JRUBY-3936 Math.gamma fails on certain values when it shouldn't
JRUBY-3937 Socket::getaddrinfo() returns incorrect data on solaris
JRUBY-3941 [19] socket.do_not_reverse_lookup is unimplemented
JRUBY-3942 [1.9] File.new should accept encoding options within the mode parameter and a hash with options as the third parameter
JRUBY-3945 [1.9] IO and file initialization should ignore internal encoding when is equal to external encoding
JRUBY-3946 [1.9] Encoding.default_external should get encoding from default charset when is nil
JRUBY-3947 [1.9] Domain errors on Math.log(0), Math.log2(0), Math.log10(0), Math.atanh(1), Math.atanh(-1)
JRUBY-3951 TMail fails to install without modifications mkmf.rb
JRUBY-3952 Update pom.xml to reflect move from SVN to Git.
JRUBY-3953 jruby.bat doesn't run on Windows 7
JRUBY-3954 JRuby operating differently from MRI with andand gem
JRUBY-3956 Can't do Enumerator#next in --1.9? Not implemented yet?
JRUBY-3967 remove some duplicated tests that have been added to rubyspecs
JRUBY-3968 YAML.load produces: allocator undefined for Symbol (TypeError)
JRUBY-3969 LICENSE.RUBY is missing in bin and source distributive for the JRuby 1.3.1 and 1.3
JRUBY-3970 jruby.bat errors out with unexpected characters
JRUBY-3974 In-proc execution loses almost all parent-process config values
JRUBY-3977 "require" won't load jars with ".so" anywhere in the name
JRUBY-3981 Cannot connect to ActiveRecord database
JRUBY-3984 [1.9] Array improvements to solve several specs
JRUBY-3985 [1.9] ARGF improvements to solve several specs
JRUBY-3987 [1.9] Bignum improvements to pass some ruby specs
JRUBY-3988 Fixnums quietly lop off bits when calling methods of lesser precision than long
JRUBY-3989 nil can't be passed for numeric Java types in some cases, even though nil.to_i treats it as 0
JRUBY-3990 Fixnums are inconsistently converted when target type is java.lang.Object
JRUBY-3991 [1.9] Comparable improvements to pass ruby specs
JRUBY-3993 [1.9] Dir improvements to pass some ruby specs
JRUBY-3995 ant bails with unrecognized -d32 option on Windows
JRUBY-3997 IBM JDK does not support some String.format specifiers
JRUBY-3998 Path separators differ between jruby and jruby --ng on Windows
JRUBY-3999 [PATCH] Improved Sorting Algorithm
JRUBY-4000 [1.9] Fixnum improvements to solve ruby specs
JRUBY-4001 [PATCH] Fixed float rubyspecs
JRUBY-4003 NegativeArraySizeException in RubyHash.keys
JRUBY-4004 jrubyc should return a non-zero return code if compilation fails
JRUBY-4011 IO.binmode should raise an IOError on closed stream
JRUBY-4017 [1.8] Method#name and UnboundMethod#name should return strings, not symbols
JRUBY-4019 Build issues when changes from rev 2eef39 are included
JRUBY-4021 [1.9] undefined methods Hash.compare_by_identity and Hash.compare_by_identity?
JRUBY-4022 9 rubyspec failures for SecureRandom

JRuby 1.3.1 Released

Monday, June 15 2009

The JRuby community is pleased to announce the release of JRuby 1.3.1.

  • Homepage: http://www.jruby.org/
  • Download: http://jruby.org/download

JRuby 1.3.1 is a minor bug fix release which:

  • Fixes a recently discovered security bug in BigDecimal
  • Fixes a regression in timeout (0-1 second timeouts truncate to 0)
  • Fixes a regression Thread.wakeup where the thread would not wake up

JRuby 1.3.0 Released

Wednesday, June 03 2009

The JRuby community is pleased to announce the release of JRuby 1.3.0.

  • Homepage: http://www.jruby.org/
  • Download: http://dist.codehaus.org/jruby/

The fixes in this release are primarily obvious compatibility problems and performance enhancements. Our goal is to put out point releases more frequently for the next several months (about 3-4 weeks a release). We want a more rapid release cycle to better address issues brought up by users of JRuby.

Highlights:

  • Fixes so that JRuby runs in restricted environments better like GAE/J
  • Accessing primitive Java arrays are about 10x faster
  • timeout.rb is now ~40% faster
  • Method cache performance improvements
  • irb works in –1.9 mode now - Additional Miscellaneous 1.9 fixes
  • rubygems 1.3.3, rake 0.8.7, and rspec 1.2.6 upgrades
  • 66 bugs fixed since 1.2.0

Issues fixed for 1.3.0

JRUBY-3729 JRuby's internal change killed JSR 223 JRuby engine's global variable sharing
JRUBY-3726 Cannot access named capture in match data
JRUBY-3723 1.3RC3 regression - Gem activate error
JRUBY-3714 ActiveMessaging poller stops silently with JRuby 1.3.0RC1 and RC2. Works with JRuby 1.2.0
JRUBY-3601 Need updated release of JFFI for 1.3 release
JRUBY-3719 FFI :buffer_out params incorrectly handled as pinned arrays by jffi
JRUBY-3626 Thread Safety issue with JRuby 1.3 RC1 - JRuby abnormally exit
JRUBY-3625 Multi-threading issue with RegExp
JRUBY-1441 ENV should not be case-sensitive on Windows
JRUBY-3617 Java array support unit tests on are failing on AIX with JRuby 1.3-dev
JRUBY-3663 Can't build JRuby on last OpenJDK builds (58+) because of uncorrect Invokdynamic support
JRUBY-3638 Multi-Threading issues with JRuby 1.3RC1 and soap4r
JRUBY-3678 problem with super called from method defined with define_method
JRUBY-3686 io.fcntl can also accept one-arg version
JRUBY-3509 uninitialized constant when using ResourceController plugin with Rails 2.2.2
JRUBY-3699 Failure in ruby1.8/uri/test_common
JRUBY-3594 JRuby's instance_exec only accepts up to 3 arguments
JRUBY-3677 Array#pack problem
JRUBY-3633 JRuby 1.3 Fails to Execute Embedded Ruby code in Java
JRUBY-3634 File.read or File.open with a url to a file resource fails with StringIndexOutOfBounds exception
JRUBY-3621 relative_path_from returns errors for "C:/" and "C:"
JRUBY-3536 jruby-complete gem install fails: private method `split' called for nil:NilClass
JRUBY-3647 Severe performance degradation from 3d9140fafcda9c4fe6b9d5a1fec0ae9822877e03
JRUBY-3659 Running ant spec-short without the proper Git abbreviations does not break
JRUBY-3661 Incorrect super call site caching with multiple included modules
JRUBY-3395 RubySpec: ConditionVariable#wait should return self
JRUBY-3658 RubySpec: Range#initialize visibility and arity failures
JRUBY-3396 RubySpec: Queue#num_waiting reports the number of threads waiting on the Queue
JRUBY-3357 Marshal load and dump rubyspec failures
JRUBY-3644 After sucessfully launching a remotely-debugged application (using -S rdebug --stop) trying to run it crashes
JRUBY-3649 IllegalArgumentException with --debug and syslog
JRUBY-3671 RubySpec: Time.times is an obsolete method
JRUBY-3388 RubySpec: File.open opens the file when passed mode, num and permissions
JRUBY-3343 Modify require logic to block when two threads require the same file at the same time
JRUBY-3585 Syslog has broken on OS X
JRUBY-2518 Dir["some glob"] doesn't work for files inside a jar
JRUBY-3496 MRI tests: test_hash shows bug in delete_if block argument
JRUBY-3578 ByteList.endsWith fails on empty bytelist
JRUBY-3586 StringIO should support to_inputstream, to_outputstream, and to_channel just like IO does
JRUBY-3588 Allow rescuing Java Throwables.
JRUBY-1800 Ruby 1.9 Fiber support should leverage the same thread pool as pooled JRuby threading
JRUBY-3345 Exception backtraces at toplevel appear to be broken
JRUBY-3483 Redirecting $stdout to an object blows up the stack
JRUBY-2900 Add -vm command line argument to pass classpath, etc.
JRUBY-3573 Memory leak when -Djruby.thread.pool.enabled=true
JRUBY-3680 closed stream error when using druby to copy a file
JRUBY-3472 RubySpec: failures in after_each for core/file
JRUBY-3579 Prawn gem nil:NilClass error that doesn't occur in MRI
JRUBY-3498 New failure in MRI's test_time
JRUBY-3679 java.nio.BufferOverflowException on every Kernel.puts call
JRUBY-3670 RubySpec: A Symbol literal does not contain null in the string
JRUBY-3683 JRUBY-3670 fix introduces a symbol regression
JRUBY-3596 gems in a jar are not found if the current directory contains a space
JRUBY-3393 RubySpec: CSV::Reader.parse calls block once for one row of input
JRUBY-3698 RubyDateFormat.java does ont handle %R specifier in strftime
JRUBY-3652 IO.popen drops first space between command and first argument
JRUBY-3632 Jruby deployment missing batch files
JRUBY-3620 JRuby shebang parsing is too simplistic
JRUBY-3572 Support for anonymous callback inside function definition
JRUBY-3650 Please consider allowing jruby -c to take multiple files as arguments
JRUBY-3660 Dir.pwd correctly displays dirs with unicode characters in them
JRUBY-2235 Minor regression: Kernel.system('non-existing-file') produces some output but shouldn't
JRUBY-3615 Fiber.yield crahes if called without arguments
JRUBY-3640 Minor optimizations with Map.entrySet