Recent News

JRuby 1.7.16 Released

Thursday, September 25 2014

The JRuby community is pleased to announce the release of JRuby 1.7.16 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.16 is our sixteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 20 issues fixed for 1.7.16 - Fixed regression which improperly wrote wrong version for OSGi bundles - Fixed several regressions involving symbolic links and Ruby loading - Doubled performance of FileTest.directory? ### Github Issues resolved for 1.7.16
  • #1997 - Tempfile behavior change in 1.7.15
  • #1995 - Regexp regression in 1.7.15 from 1.7.13
  • #1994 - Snapshot builds of jruby-1_7 jruby-jars.gem have the wrong file name
  • #1991 - Allow launch.inproc=true to expand glob patterns
  • #1989 - Files in axiom-types and descendants_tracker gems use 400 and 440 modes
  • #1986 - String#slice on multibyte chars raise Exception
  • #1983 - java -jar jruby-complete.jar -S irb doesn't work anymore
  • #1977 - jrubycomplete - OSGi DynamicImport-Package breaks Adobe AEM
  • #1975 - nil TypError on bundle install, regression 1.7.14+
  • #1973 - Bundle package broken after 1.7.14
  • #1971 - jruby-core 1.7.14 isn't a valid OSGI bundle anymore
  • #1965 - Gemfiles that use `:path` broken between 1.7.13 and 1.7.15
  • #1963 - Array#product does not coerce incoming arguments properly
  • #1953 - openssl ignores OpenSSL::X509::DEFAULT_CERT_FILE
  • #1950 - All RubyFileTest methods have a race condition
  • #1945 - File.exists?("broken_symlink") returns true
  • #1942 - Bundle not working with two gemspecs - bug introduced in 1.7.14
  • #1715 - IOError with OpenSSL #connect_nonblock: Writing not possible during handshake
  • #1700 - NPE in Ripper with $ special variables
  • #541 - JRuby 1.7.2 with authlogic 3.x fails to boot (OpenSSL)

JRuby 1.7.16 Released

Thursday, September 25 2014

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

JRuby 1.7.16 is our sixteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 20 issues fixed for 1.7.16
  • Fixed regression which improperly wrote wrong version for OSGi bundles
  • Fixed several regressions involving symbolic links and Ruby loading
  • Doubled performance of FileTest.directory?

Github Issues resolved for 1.7.16

  • #1997 - Tempfile behavior change in 1.7.15
  • #1995 - Regexp regression in 1.7.15 from 1.7.13
  • #1994 - Snapshot builds of jruby-1_7 jruby-jars.gem have the wrong file name
  • #1991 - Allow launch.inproc=true to expand glob patterns
  • #1989 - Files in axiom-types and descendants_tracker gems use 400 and 440 modes
  • #1986 - String#slice on multibyte chars raise Exception
  • #1983 - java -jar jruby-complete.jar -S irb doesn't work anymore
  • #1977 - jrubycomplete - OSGi DynamicImport-Package breaks Adobe AEM
  • #1975 - nil TypError on bundle install, regression 1.7.14+
  • #1973 - Bundle package broken after 1.7.14
  • #1971 - jruby-core 1.7.14 isn't a valid OSGI bundle anymore
  • #1965 - Gemfiles that use `:path` broken between 1.7.13 and 1.7.15
  • #1963 - Array#product does not coerce incoming arguments properly
  • #1953 - openssl ignores OpenSSL::X509::DEFAULT_CERT_FILE
  • #1950 - All RubyFileTest methods have a race condition
  • #1945 - File.exists?("broken_symlink") returns true
  • #1942 - Bundle not working with two gemspecs - bug introduced in 1.7.14
  • #1715 - IOError with OpenSSL #connect_nonblock: Writing not possible during handshake
  • #1700 - NPE in Ripper with $ special variables
  • #541 - JRuby 1.7.2 with authlogic 3.x fails to boot (OpenSSL)

JRuby 1.7.15 Released

Wednesday, September 03 2014

The JRuby community is pleased to announce the release of JRuby 1.7.15 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.15 is our fifteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. This release is a quick followup release to JRuby 1.7.14. JRuby 1.7.14 had a mangled jruby-jars release as well as several non-obvious regressions involving our new load service internals. We apologize if these regressions have affected you and recommend all people upgrade to 1.7.15. Changes of note: - 8 issues fixed for 1.7.15 - Potential memory leak resolved when reloading JRuby apps in Java App servers - jruby-jars gem did not have their embedded jars within it - rvm install of jruby would not properly follow gemset symlinks - Windows exec works again - lstat did not honor native.enabled property and always invoked native ### Github Issues resolved for 1.7.15
  • #1940 - Symlinks in load path get expanded when they should not
  • #1939 - Update jnr-ffi dependency version
  • #1936 - Pathname object in $LOAD_PATH causes error (1.7.14)
  • #1935 - Add ScriptingContainer accessors for ProfileOutput
  • #1930 - JRuby 1.7.14 relies on HOME in the environment - change in behaviour from 1.7.13
  • #1927 - jruby-complete 1.7.14 appears to be missing some files
  • #1926 - jruby-jars 1.7.14 gem seems to be missing jar files.
  • #1115 - control-c in cmd while running webrick rails app does not kill jruby.exe

JRuby 1.7.15 Released

Wednesday, September 03 2014

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

JRuby 1.7.15 is our fifteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

This release is a quick followup release to JRuby 1.7.14. JRuby 1.7.14 had a mangled jruby-jars release as well as several non-obvious regressions involving our new load service internals. We apologize if these regressions have affected you and recommend all people upgrade to 1.7.15.

Changes of note:

  • 8 issues fixed for 1.7.15
  • Potential memory leak resolved when reloading JRuby apps in Java App servers
  • jruby-jars gem did not have their embedded jars within it
  • rvm install of jruby would not properly follow gemset symlinks
  • Windows exec works again
  • lstat did not honor native.enabled property and always invoked native

Github Issues resolved for 1.7.15

  • #1940 - Symlinks in load path get expanded when they should not
  • #1939 - Update jnr-ffi dependency version
  • #1936 - Pathname object in $LOAD_PATH causes error (1.7.14)
  • #1935 - Add ScriptingContainer accessors for ProfileOutput
  • #1930 - JRuby 1.7.14 relies on HOME in the environment - change in behaviour from 1.7.13
  • #1927 - jruby-complete 1.7.14 appears to be missing some files
  • #1926 - jruby-jars 1.7.14 gem seems to be missing jar files.
  • #1115 - control-c in cmd while running webrick rails app does not kill jruby.exe

JRuby 1.7.14 Released

Wednesday, August 27 2014

The JRuby community is pleased to announce the release of JRuby 1.7.14 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.14 is our fourteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 30 issues fixed for 1.7.14 - Fixed potential memory leak with Jar file resources - Due to slow startup on Rails apps invokedynamic is no longer on by default - load/require internals refactored and simplified - Small smattering of compatibility fixes ### Github Issues resolved for 1.7.14
  • #1923 - String#start_with? returns false when using an empty string
  • #1905 - Tempfile and deleteOnExit
  • #1899 - Can't call static method on Java 8 interface
  • #1898 - Fix the memory leak and actually close the resources.
  • #1889 - NPE from org.jruby.java.proxies.ArrayJavaProxy.to_a
  • #1888 - native memory leak when reading files from inside a .jar
  • #1859 - JMX tries to double-bind a port when using bundle exec
  • #1858 - JRuby with Java 8 4 to 10 times slower than Java 7
  • #1852 - JRubyClassloader seems to have a problem with file urls pointing to jar ...
  • #1850 - embedded jars do not get loaded
  • #1846 - Fix $LOAD_FEATURES paths for 1.8
  • #1818 - fix ArrayJavaProxy#to_a failure on arrays containing null
  • #1813 - can not load resources from jar anymore with jar uri
  • #1809 - apply minor enebo's comments
  • #1808 - Fix BigDecimal#round behavior with NAN and INFINITY
  • #1805 - Zlib crc improvements
  • #1803 - Fix minor bug in `setNativeEnabled`, and expose it in ScriptingContainer
  • #1802 - Fix Encoding::Converter#inspect output
  • #1799 - mvn -Pall fails at the documentation step
  • #1790 - Make Time#to_r consistent with MRI
  • #1777 - ServerSocket#accept_nonblock returns the server's port, not the client's
  • #1772 - avoid sub-classing ThreadLocal since it will leak in envs such as .wars
  • #1765 - added a java_field method for use in the jrubyc command.
  • #1762 - enhanced the java_class compiler so it can handle multiple constructors
  • #1750 - Refactor LoadService to make use of resources
  • #1729 - no valid struct layout for Ethon::Curl::Slist
  • #1676 - Empty hash optimization
  • #1580 - IO.select raises CancelledKeyException on shutdown
  • #1520 - Date comparison as java objects
  • #1435 - bouncy-castle-java JARs missing when warbling with JRuby 1.7.10

JRuby 1.7.14 Released

Wednesday, August 27 2014

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

JRuby 1.7.14 is our fourteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 30 issues fixed for 1.7.14
  • Fixed potential memory leak with Jar file resources
  • Due to slow startup on Rails apps invokedynamic is no longer on by default
  • load/require internals refactored and simplified
  • Small smattering of compatibility fixes

Github Issues resolved for 1.7.14

  • #1923 - String#start_with? returns false when using an empty string
  • #1905 - Tempfile and deleteOnExit
  • #1899 - Can't call static method on Java 8 interface
  • #1898 - Fix the memory leak and actually close the resources.
  • #1889 - NPE from org.jruby.java.proxies.ArrayJavaProxy.to_a
  • #1888 - native memory leak when reading files from inside a .jar
  • #1859 - JMX tries to double-bind a port when using bundle exec
  • #1858 - JRuby with Java 8 4 to 10 times slower than Java 7
  • #1852 - JRubyClassloader seems to have a problem with file urls pointing to jar ...
  • #1850 - embedded jars do not get loaded
  • #1846 - Fix $LOAD_FEATURES paths for 1.8
  • #1818 - fix ArrayJavaProxy#to_a failure on arrays containing null
  • #1813 - can not load resources from jar anymore with jar uri
  • #1809 - apply minor enebo's comments
  • #1808 - Fix BigDecimal#round behavior with NAN and INFINITY
  • #1805 - Zlib crc improvements
  • #1803 - Fix minor bug in `setNativeEnabled`, and expose it in ScriptingContainer
  • #1802 - Fix Encoding::Converter#inspect output
  • #1799 - mvn -Pall fails at the documentation step
  • #1790 - Make Time#to_r consistent with MRI
  • #1777 - ServerSocket#accept_nonblock returns the server's port, not the client's
  • #1772 - avoid sub-classing ThreadLocal since it will leak in envs such as .wars
  • #1765 - added a java_field method for use in the jrubyc command.
  • #1762 - enhanced the java_class compiler so it can handle multiple constructors
  • #1750 - Refactor LoadService to make use of resources
  • #1729 - no valid struct layout for Ethon::Curl::Slist
  • #1676 - Empty hash optimization
  • #1580 - IO.select raises CancelledKeyException on shutdown
  • #1520 - Date comparison as java objects
  • #1435 - bouncy-castle-java JARs missing when warbling with JRuby 1.7.10

JRuby 1.7.13 Released

Tuesday, June 24 2014

The JRuby community is pleased to announce the release of JRuby 1.7.13 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.13 is our thirteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 58 issues fixed for 1.7.13 - jruby-openssl 0.9.5 bundled - Ability to upgrade jruby-openssl as a gem - New custom profiler API - Several BigDecimal fixes ### Github Issues resolved for 1.7.13
  • #1757 - new krypt gem release
  • #1749 - ??? jruby-opensll snapshot build not working properly on 1.7 branch
  • #1748 - openssl load 1.8 (and possibly 1.9 compatibility) fix
  • #1747 - Openssl is broken in 1.8 mode due to IO::WaitReadable
  • #1743 - Ruby 1.9+ will use nil not false for type argument of set_trace_func
  • #1731 - [GH-1726] - File.read should raise an Errno::ENOENT when the file is an empty String
  • #1726 - JRuby 1.7.12: File.read("") throws Java ArrayIndexOutOfBoundsException
  • #1725 - Make behavior of Array#eql? more closely match MRI
  • #1722 - Strange FloatDomainError
  • #1714 - String#rindex should handle matchdata strings
  • #1711 - quote variables so works with directories with spaces
  • #1708 - add spec for array coercion
  • #1707 - * Treat SSL NOT_HANDSHAKING as FINISHED.
  • #1705 - jruby-openssl gem version inconsitency
  • #1703 - Fix for issue #1695
  • #1699 - StringIO.set_encoding may change shared ByteList encoding
  • #1698 - jruby-lib build fails in windows
  • #1697 - Do not rescue java.lang.Error using StandardError
  • #1696 - Rescue StandardError rescues Java errors
  • #1688 - String rindex does not work properly with matchdata
  • #1684 - Fix for issue #1517
  • #1679 - Regression in compiling with default 1.8 mode
  • #1677 - Use pwd -P to work on systemlinked locations.
  • #1673 - ArrayJavaProxy#to_a now returns nested arrays where applicable
  • #1670 - (more) OpenSSL cleanup
  • #1667 - Kernel#fail should handle java exceptions
  • #1666 - Fix #1664 for Hash#compare_by_identity and Hash#store
  • #1664 - when Hash#compare_by_identity is called, it should not copy the keys
  • #1663 - BasicSocket#shutdown should accept strings or symbols
  • #1661 - minor (infrastructure) openssl cleanup
  • #1650 - require 'net/https' fails on 1.7.12 and master if jruby.native.enabled=false
  • #1649 - Triplicate BouncyCastle jars in the build
  • #1648 - GH-1633 - BigDecimal operations should throws TypeError when the first argument is nil
  • #1646 - GH-1551 - Fixing: Fixnum#to_s seems to generate strings immune to #[]=
  • #1645 - Fix jar entry path expansion (https://github.com/jruby/jruby/issues/321 issue)
  • #1641 - fail and raise behave differently
  • #1638 - "Regexp Interrrupted" Typo
  • #1636 - Static JavaProxy#getJavaClass needs to clear $!
  • #1633 - Erroneous BigDecimal operations
  • #1631 - BigDecimal#{round,truncate,floor,ceil} with no args returns to_i
  • #1630 - Add support for symbol rounding mode arguments
  • #1622 - Refactor channeldescriptor to use FileResource
  • #1616 - Actually use Java7ClassValue when using Java 7+.
  • #1602 - api for custom profiler
  • #1596 - Uninitialized constant OpenSSL::SSL::SSLContext::METHODS in 1.7.x
  • #1590 - Hash#hash fails when keys & values are the same
  • #1579 - BasicSocket.shutdown() is not compliant for >= 1.9.x
  • #1578 - Result of operation between BigDecimal and Rational differs.
  • #1566 - loading (default) gems varies between jruby 1.7.x versions
  • #1551 - Fixnum#to_s seems to generate strings immune to #[]=
  • #1543 - openssl 'BC' (security provider) leak
  • #1542 - fix initialize visibility
  • #1538 - ArgumentError: comparison of Class with Class failed
  • #1517 - Time#to_s with different UTC offset gives local hour with given offset
  • #1299 - Enumerator.peek throws NullPointerException after the last item (1.7.8)
  • #389 - OpenSSL::ASN1.decode results vary from MRI (and fail)
  • #357 - OpenSSL::PKey::RSA.new returns the wrong value
  • #210 - File.readlink cannot read dangling symlinks

JRuby 1.7.13 Released

Tuesday, June 24 2014

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

JRuby 1.7.13 is our thirteenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 58 issues fixed for 1.7.13
  • jruby-openssl 0.9.5 bundled
  • Ability to upgrade jruby-openssl as a gem
  • New custom profiler API
  • Several BigDecimal fixes

Github Issues resolved for 1.7.13

  • #1757 - new krypt gem release
  • #1749 - ??? jruby-opensll snapshot build not working properly on 1.7 branch
  • #1748 - openssl load 1.8 (and possibly 1.9 compatibility) fix
  • #1747 - Openssl is broken in 1.8 mode due to IO::WaitReadable
  • #1743 - Ruby 1.9+ will use nil not false for type argument of set_trace_func
  • #1731 - [GH-1726] - File.read should raise an Errno::ENOENT when the file is an empty String
  • #1726 - JRuby 1.7.12: File.read("") throws Java ArrayIndexOutOfBoundsException
  • #1725 - Make behavior of Array#eql? more closely match MRI
  • #1722 - Strange FloatDomainError
  • #1714 - String#rindex should handle matchdata strings
  • #1711 - quote variables so works with directories with spaces
  • #1708 - add spec for array coercion
  • #1707 - * Treat SSL NOT_HANDSHAKING as FINISHED.
  • #1705 - jruby-openssl gem version inconsitency
  • #1703 - Fix for issue #1695
  • #1699 - StringIO.set_encoding may change shared ByteList encoding
  • #1698 - jruby-lib build fails in windows
  • #1697 - Do not rescue java.lang.Error using StandardError
  • #1696 - Rescue StandardError rescues Java errors
  • #1688 - String rindex does not work properly with matchdata
  • #1684 - Fix for issue #1517
  • #1679 - Regression in compiling with default 1.8 mode
  • #1677 - Use pwd -P to work on systemlinked locations.
  • #1673 - ArrayJavaProxy#to_a now returns nested arrays where applicable
  • #1670 - (more) OpenSSL cleanup
  • #1667 - Kernel#fail should handle java exceptions
  • #1666 - Fix #1664 for Hash#compare_by_identity and Hash#store
  • #1664 - when Hash#compare_by_identity is called, it should not copy the keys
  • #1663 - BasicSocket#shutdown should accept strings or symbols
  • #1661 - minor (infrastructure) openssl cleanup
  • #1650 - require 'net/https' fails on 1.7.12 and master if jruby.native.enabled=false
  • #1649 - Triplicate BouncyCastle jars in the build
  • #1648 - GH-1633 - BigDecimal operations should throws TypeError when the first argument is nil
  • #1646 - GH-1551 - Fixing: Fixnum#to_s seems to generate strings immune to #[]=
  • #1645 - Fix jar entry path expansion (https://github.com/jruby/jruby/issues/321 issue)
  • #1641 - fail and raise behave differently
  • #1638 - "Regexp Interrrupted" Typo
  • #1636 - Static JavaProxy#getJavaClass needs to clear $!
  • #1633 - Erroneous BigDecimal operations
  • #1631 - BigDecimal#{round,truncate,floor,ceil} with no args returns to_i
  • #1630 - Add support for symbol rounding mode arguments
  • #1622 - Refactor channeldescriptor to use FileResource
  • #1616 - Actually use Java7ClassValue when using Java 7+.
  • #1602 - api for custom profiler
  • #1596 - Uninitialized constant OpenSSL::SSL::SSLContext::METHODS in 1.7.x
  • #1590 - Hash#hash fails when keys & values are the same
  • #1579 - BasicSocket.shutdown() is not compliant for >= 1.9.x
  • #1578 - Result of operation between BigDecimal and Rational differs.
  • #1566 - loading (default) gems varies between jruby 1.7.x versions
  • #1551 - Fixnum#to_s seems to generate strings immune to #[]=
  • #1543 - openssl 'BC' (security provider) leak
  • #1542 - fix initialize visibility
  • #1538 - ArgumentError: comparison of Class with Class failed
  • #1517 - Time#to_s with different UTC offset gives local hour with given offset
  • #1299 - Enumerator.peek throws NullPointerException after the last item (1.7.8)
  • #389 - OpenSSL::ASN1.decode results vary from MRI (and fail)
  • #357 - OpenSSL::PKey::RSA.new returns the wrong value
  • #210 - File.readlink cannot read dangling symlinks

JRuby 1.7.12 Released

Tuesday, April 15 2014

The JRuby community is pleased to announce the release of JRuby 1.7.12 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.12 is our twelfth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 39 issues fixed for 1.7.12 - Mostly small 1.9.3 compatibility fixes - Fixed a small leak if throwing lots of X509Errors - Improved loading speed of Ruby files from jar files. ### Github Issues resolved for 1.7.12
  • #1626 - Fix compare_to for to_java'ed Ruby objects
  • #1625 - Array#pack(cC) should not raise RangeError when argument is bignum
  • #1618 - Enum.java:238:in `valueOf': java.lang.IllegalArgumentException: No enum constant jnr.constants.platform.AddressFamily.AF_AF_INET
  • #1612 - jruby affected by libyaml CVE-2014-2525?
  • #1608 - Inconsistent parsing of long strings to integers between JRuby and MRI
  • #1607 - index.txt for s3 files
  • #1606 - Exception when comparing Time with nil using ===
  • #1605 - syslog FFI constants not generated for Syslog class on FreeBSD
  • #1603 - Remove [@] syntax to add IBM i compatibility
  • #1600 - Enums.... round three
  • #1599 - Fix dynamic rescue on Java exceptions (issue #1598)
  • #1598 - Dynamic rescue blocks don't catch Java exceptions
  • #1595 - "gem install bundler" fails using 2.0 or 2.1 mode
  • #1592 - Fix definition of JavaUtilities::ModifierShortcuts#static?
  • #1589 - Rand fix master
  • #1588 - fix Random.rand(1.0) behavior
  • #1587 - Refactor channeldescriptor to use FileResource
  • #1583 - Random.rand is broken with floating point values vs 1.9.3
  • #1575 - mvn build error for [INFO] JRuby Lib Setup ................................... FAILURE
  • #1573 - Fix exponential perf degradation in Time.parse and Time.strptime.
  • #1564 - String#{to_r,to_c} should not use backref when calling gsub internally
  • #1563 - Calling String#to_r causes loss of Regexp.last_match data
  • #1557 - Pathname doesn't have to_path in 1.8
  • #1556 - Dir.home returns LOGDIR env var instead of HOME or user.home
  • #1546 - Implement jar directory snapshot caching.
  • #1534 - NPE in RubyIO.fwrite(RubyString buffer)
  • #1532 - Potential runtime leak from X509Error$ErrorException
  • #1529 - Krypt 0.0.2.rc1 update
  • #1526 - Change to use FileResource to get entries for RubyDir
  • #1523 - unexpected ArgumentError in curried Proc
  • #1508 - fix spinning indefinitely on partial TLS record (issue #1280)
  • #1507 - Processdottimesfix
  • #1506 - Better messaging with NameErrors
  • #1478 - Array#pack difference between jruby 1.7.10 and ruby 1.9.3
  • #1460 - org.jruby.ext.pathname.RubyPathname class doesn't properly support instance_variable_set method
  • #1280 - jruby-openssl spins endlessly trying to read from a non-blocking SocketChannel while no data is available.
  • #1210 - Unbundle bouncy-castle-java
  • #1207 - Unbundle krypt libraries
  • #1100 - When inside a .JAR, __FILE__ returns a URI-like string that isn't understood by some keywords

JRuby 1.7.12 Released

Tuesday, April 15 2014

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

JRuby 1.7.12 is our twelfth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 39 issues fixed for 1.7.12
  • Mostly small 1.9.3 compatibility fixes
  • Fixed a small leak if throwing lots of X509Errors
  • Improved loading speed of Ruby files from jar files.

Github Issues resolved for 1.7.12

  • #1626 - Fix compare_to for to_java'ed Ruby objects
  • #1625 - Array#pack(cC) should not raise RangeError when argument is bignum
  • #1618 - Enum.java:238:in `valueOf': java.lang.IllegalArgumentException: No enum constant jnr.constants.platform.AddressFamily.AF_AF_INET
  • #1612 - jruby affected by libyaml CVE-2014-2525?
  • #1608 - Inconsistent parsing of long strings to integers between JRuby and MRI
  • #1607 - index.txt for s3 files
  • #1606 - Exception when comparing Time with nil using ===
  • #1605 - syslog FFI constants not generated for Syslog class on FreeBSD
  • #1603 - Remove [@] syntax to add IBM i compatibility
  • #1600 - Enums.... round three
  • #1599 - Fix dynamic rescue on Java exceptions (issue #1598)
  • #1598 - Dynamic rescue blocks don't catch Java exceptions
  • #1595 - "gem install bundler" fails using 2.0 or 2.1 mode
  • #1592 - Fix definition of JavaUtilities::ModifierShortcuts#static?
  • #1589 - Rand fix master
  • #1588 - fix Random.rand(1.0) behavior
  • #1587 - Refactor channeldescriptor to use FileResource
  • #1583 - Random.rand is broken with floating point values vs 1.9.3
  • #1575 - mvn build error for [INFO] JRuby Lib Setup ................................... FAILURE
  • #1573 - Fix exponential perf degradation in Time.parse and Time.strptime.
  • #1564 - String#{to_r,to_c} should not use backref when calling gsub internally
  • #1563 - Calling String#to_r causes loss of Regexp.last_match data
  • #1557 - Pathname doesn't have to_path in 1.8
  • #1556 - Dir.home returns LOGDIR env var instead of HOME or user.home
  • #1546 - Implement jar directory snapshot caching.
  • #1534 - NPE in RubyIO.fwrite(RubyString buffer)
  • #1532 - Potential runtime leak from X509Error$ErrorException
  • #1529 - Krypt 0.0.2.rc1 update
  • #1526 - Change to use FileResource to get entries for RubyDir
  • #1523 - unexpected ArgumentError in curried Proc
  • #1508 - fix spinning indefinitely on partial TLS record (issue #1280)
  • #1507 - Processdottimesfix
  • #1506 - Better messaging with NameErrors
  • #1478 - Array#pack difference between jruby 1.7.10 and ruby 1.9.3
  • #1460 - org.jruby.ext.pathname.RubyPathname class doesn't properly support instance_variable_set method
  • #1280 - jruby-openssl spins endlessly trying to read from a non-blocking SocketChannel while no data is available.
  • #1210 - Unbundle bouncy-castle-java
  • #1207 - Unbundle krypt libraries
  • #1100 - When inside a .JAR, __FILE__ returns a URI-like string that isn't understood by some keywords

JRuby 1.7.11 Released

Tuesday, February 25 2014

The JRuby community is pleased to announce the release of JRuby 1.7.11 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.11 is our eleventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 54 issues fixed for 1.7.11 - Miscellaneous encoding fixes - Several fiber edge cases fixed - Fiber thread pool reinstated - More Ruby-friendly Java backtraces ### Github Issues resolved for 1.7.11
  • #1519 - Catch/throw and exceptions do not propagate out of fibers
  • #1515 - Make JRuby\'s RubyTime argument checking be same as MRI
  • #1512 - Fixing encoding problem with string format.
  • #1511 - Encoding problem with string format
  • #1510 - Resurrect replacing '\' with '/' in JRubyFile for windows.
  • #1504 - Unreadable stacktraces when exceptions occur within Java code
  • #1501 - Time.utc can't handle hour 24
  • #1499 - Warning in Win32api.rb - check fails in Ruby 2.0 mode
  • #1498 - do not install jruby-launcher on mvn \-Pbootstrap for windows
  • #1494 - Refactor RubyFileStat and RubyFileTest to use FileResources
  • #1489 - Error Installing Gems in jruby 1.7.11-SNAPSHOT java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DERBoolean
  • #1488 - fiber GH-1463 regressed
  • #1485 - NPE not being caught or is printing out for no reason
  • #1483 - Fix uniq/uniq\! with block for array slices
  • #1481 - jruby-complete.jar broken on master
  • #1477 - Bugfix for issue #1248
  • #1475 - BUILDING.md: Added info about incremental compiling, cleaning after switching branches
  • #1474 - Strange encoding differences with UTF-8 strings
  • #1473 - Java NullPointerException raised inside Proc gets printed out even though it was rescued
  • #1470 - Building JRuby: some classes are not rebuilt properly by "mvn package"
  • #1468 - Fix jar globbing for real now.
  • #1463 - Raising an exception on a thread that is in a Fiber causes a NullPointerException
  • #1454 - Removed the custom glob code and added "defacto" expectations
  • #1453 - Dir.glob is broken for files inside jar
  • #1450 - Make warnings show the right line number
  • #1448 - Fix Gem.ruby singleton method on Windows
  • #1446 - Line number in runtime warnings is one greater than the actual line number
  • #1445 - [2.1] Return in a lambda always returns from the block, even when &-ified
  • #1443 - Fibers don't seem to reuse threads
  • #1442 - Fixed issue 1441. Forced check that value was of an appropriate type.
  • #1441 - Subtracting nil from a BigDecimal returns nil
  • #1440 - Enumerator#each_with_object should provide the yielder\'s return value to its block
  • #1439 - Restore hex and random_bytes to SecureRandom 1.8 \- fixes Travis
  • #1436 - Allow Travis on select branches
  • #1434 - uniq! returns nil when it is after a shifting operation.
  • #1424 - Incorrect line number reported in "already initialized constant" warining
  • #1421 - Need ByteList release for 1.7.11.
  • #1417 - Ripper error "lex_p < tokp" caused by multi-byte character
  • #1416 - mvn -Pbootstrap fails to build JRuby Integration Tests?
  • #1414 - Cache DecimalFormatSymbols instances to reduce lock contention
  • #1412 - Fix ffi buffer
  • #1410 - main.inspect returns wrong value.
  • #1406 - Further improvements to SecureRandom
  • #1403 - Hash cleaned when used as named parameters (JRUBY_OPTS=--2.0)
  • #1402 - Opening a class body doesn't reset the value of __method__
  • #1400 - Reduce locking in VariableTableManager#initObjectId
  • #1399 - Reduced the number of String allocations for the NONE parameterList case.
  • #1392 - NullPointerException loading rouge gem
  • #1377 - Implement Addrinfo.getaddrinfo
  • #1361 - invalid bytes in ascii string result in ArrayIndexOutOfBoundsException on chars
  • #1248 - Problems with paths containing space characters
  • #1181 - Thread leak or expected behavior with fibers
  • #1098 - Program that works under C Ruby fails under JRuby
  • #272 - Bad error message for block pass through with return statement

JRuby 1.7.11 Released

Tuesday, February 25 2014

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

JRuby 1.7.11 is our eleventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 54 issues fixed for 1.7.11
  • Miscellaneous encoding fixes
  • Several fiber edge cases fixed
  • Fiber thread pool reinstated
  • More Ruby-friendly Java backtraces

Github Issues resolved for 1.7.11

  • #1519 - Catch/throw and exceptions do not propagate out of fibers
  • #1515 - Make JRuby\'s RubyTime argument checking be same as MRI
  • #1512 - Fixing encoding problem with string format.
  • #1511 - Encoding problem with string format
  • #1510 - Resurrect replacing '\' with '/' in JRubyFile for windows.
  • #1504 - Unreadable stacktraces when exceptions occur within Java code
  • #1501 - Time.utc can't handle hour 24
  • #1499 - Warning in Win32api.rb - check fails in Ruby 2.0 mode
  • #1498 - do not install jruby-launcher on mvn \-Pbootstrap for windows
  • #1494 - Refactor RubyFileStat and RubyFileTest to use FileResources
  • #1489 - Error Installing Gems in jruby 1.7.11-SNAPSHOT java.lang.NoClassDefFoundError: org/bouncycastle/asn1/DERBoolean
  • #1488 - fiber GH-1463 regressed
  • #1485 - NPE not being caught or is printing out for no reason
  • #1483 - Fix uniq/uniq\! with block for array slices
  • #1481 - jruby-complete.jar broken on master
  • #1477 - Bugfix for issue #1248
  • #1475 - BUILDING.md: Added info about incremental compiling, cleaning after switching branches
  • #1474 - Strange encoding differences with UTF-8 strings
  • #1473 - Java NullPointerException raised inside Proc gets printed out even though it was rescued
  • #1470 - Building JRuby: some classes are not rebuilt properly by "mvn package"
  • #1468 - Fix jar globbing for real now.
  • #1463 - Raising an exception on a thread that is in a Fiber causes a NullPointerException
  • #1454 - Removed the custom glob code and added "defacto" expectations
  • #1453 - Dir.glob is broken for files inside jar
  • #1450 - Make warnings show the right line number
  • #1448 - Fix Gem.ruby singleton method on Windows
  • #1446 - Line number in runtime warnings is one greater than the actual line number
  • #1445 - [2.1] Return in a lambda always returns from the block, even when &-ified
  • #1443 - Fibers don't seem to reuse threads
  • #1442 - Fixed issue 1441. Forced check that value was of an appropriate type.
  • #1441 - Subtracting nil from a BigDecimal returns nil
  • #1440 - Enumerator#each_with_object should provide the yielder\'s return value to its block
  • #1439 - Restore hex and random_bytes to SecureRandom 1.8 \- fixes Travis
  • #1436 - Allow Travis on select branches
  • #1434 - uniq! returns nil when it is after a shifting operation.
  • #1424 - Incorrect line number reported in "already initialized constant" warining
  • #1421 - Need ByteList release for 1.7.11.
  • #1417 - Ripper error "lex_p < tokp" caused by multi-byte character
  • #1416 - mvn -Pbootstrap fails to build JRuby Integration Tests?
  • #1414 - Cache DecimalFormatSymbols instances to reduce lock contention
  • #1412 - Fix ffi buffer
  • #1410 - main.inspect returns wrong value.
  • #1406 - Further improvements to SecureRandom
  • #1403 - Hash cleaned when used as named parameters (JRUBY_OPTS=--2.0)
  • #1402 - Opening a class body doesn't reset the value of __method__
  • #1400 - Reduce locking in VariableTableManager#initObjectId
  • #1399 - Reduced the number of String allocations for the NONE parameterList case.
  • #1392 - NullPointerException loading rouge gem
  • #1377 - Implement Addrinfo.getaddrinfo
  • #1361 - invalid bytes in ascii string result in ArrayIndexOutOfBoundsException on chars
  • #1248 - Problems with paths containing space characters
  • #1181 - Thread leak or expected behavior with fibers
  • #1098 - Program that works under C Ruby fails under JRuby
  • #272 - Bad error message for block pass through with return statement

JRuby 1.7.10 Released

Thursday, January 09 2014

The JRuby community is pleased to announce the release of JRuby 1.7.10 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.10 is our tenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 22 issues fixed - Windows require_relative regression fixed. - Accidental SNAPSHOT dependency fixed - A couple of Marshalling bugs involving encoding fixed. ### Github Issues resolved for 1.7.10
  • #1385 - Socket::SOMAXCONN
  • #1380 - test-extended failing
  • #1375 - Global eventually ignores assignment
  • #1374 - require_relative fails when called from classpath:/ path file on Windows in JRuby 1.7.9
  • #1363 - Compiling from source at 1.7.9 fails due to unsatisfied maven dependencies
  • #1355 - Exception starting new thread after set_trace_func call
  • #1349 - bin/{rake,rdoc,ri} broken by default in jruby 1.7.9
  • #1345 - UnmarshalStream: Look for encoding information in all instance variables
  • #1338 - UnmarshalStream: Fixed two off-by-one errors in unmarshalInt
  • #1336 - Fixing Enumerator#peek behaviour
  • #1335 - Array#repeated_permutation should have arity 1
  • #1334 - #enum_slice and #enum_cons are 1.8-only
  • #1323 - Snapshot dependency in released jruby-core 1.7.9
  • #1322 - Dir resolves symlinks
  • #1317 - 1311 datetime comparision
  • #1312 - File.expand_path("NUL") broken
  • #1311 - DateTime comparision at sub-millisecond resolution
  • #1252 - Range#size missing from JRuby 1.7.8 in 2.0 mode
  • #1184 - undefined method `__ruby_object' for interface implementation
  • #1156 - jruby-openssl spins endlessly trying to write to a socket which is in state CLOSE_WAIT
  • #1129 - IO#read_nonblock blocks sometimes for SSL Sockets
  • #480 - JRuby does not Handle UTF-8 Source Files

JRuby 1.7.10 Released

Thursday, January 09 2014

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

JRuby 1.7.10 is our tenth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 22 issues fixed
  • Windows require_relative regression fixed.
  • Accidental SNAPSHOT dependency fixed
  • A couple of Marshalling bugs involving encoding fixed.

Github Issues resolved for 1.7.10

  • #1385 - Socket::SOMAXCONN
  • #1380 - test-extended failing
  • #1375 - Global eventually ignores assignment
  • #1374 - require_relative fails when called from classpath:/ path file on Windows in JRuby 1.7.9
  • #1363 - Compiling from source at 1.7.9 fails due to unsatisfied maven dependencies
  • #1355 - Exception starting new thread after set_trace_func call
  • #1349 - bin/{rake,rdoc,ri} broken by default in jruby 1.7.9
  • #1345 - UnmarshalStream: Look for encoding information in all instance variables
  • #1338 - UnmarshalStream: Fixed two off-by-one errors in unmarshalInt
  • #1336 - Fixing Enumerator#peek behaviour
  • #1335 - Array#repeated_permutation should have arity 1
  • #1334 - #enum_slice and #enum_cons are 1.8-only
  • #1323 - Snapshot dependency in released jruby-core 1.7.9
  • #1322 - Dir resolves symlinks
  • #1317 - 1311 datetime comparision
  • #1312 - File.expand_path("NUL") broken
  • #1311 - DateTime comparision at sub-millisecond resolution
  • #1252 - Range#size missing from JRuby 1.7.8 in 2.0 mode
  • #1184 - undefined method `__ruby_object' for interface implementation
  • #1156 - jruby-openssl spins endlessly trying to write to a socket which is in state CLOSE_WAIT
  • #1129 - IO#read_nonblock blocks sometimes for SSL Sockets
  • #480 - JRuby does not Handle UTF-8 Source Files

JRuby 1.7.9 Released

Friday, December 06 2013

The JRuby community is pleased to announce the release of JRuby 1.7.9 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.9 is our ninth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - 36 issues fixed - Windows File.size fixed - Windows now will properly display to console windows codepage - Fixed regression which broke Compass (or anything which depended on FSSM) - A few more encoding issues fixed - Lots of Enumerable method improvements We would like to single out Daniel Marcotte with a special shout-out this release. Daniel recently has been digging into our block dispatch code (especially in regards to Enumerable) which is far from a trivial part of our codebase and we are loving it. ### Github Issues resolved for 1.7.9
  • #1300 - Fix #1222, StringIO.gets w/ utf8
  • #1295 - Don't set java.net.preferIPv4Stack in shell scripts #1286
  • #1293 - Adding spec for JRUBY-5946
  • #1292 - subList toIndex should be exclusive, not inclusive. (fromIndex is inclusive.)
  • #1291 - Sidekiq - Minitest error: NoMethodError: unmocked method :==, expected one of []
  • #1282 - Blockless Struct#select should return an enumerator
  • #1275 - Quote a JSON key so it's valid JSON.
  • #1274 - RubyArray.subList should treat toIndex as exclusive, not inclusive.
  • #1272 - File.size (org.jruby.RubyFile.size() ) impacts underlying file handle
  • #1271 - Fix arrays with overridden each
  • #1267 - Removes Logger customizations in JavaUtilLoggingLogger
  • #1265 - StackOverflowError overriding Array.each since 1.7.5
  • #1264 - Fix Enumerable#chunk arg handling
  • #1263 - Fix Enumerable#take_while arg handling
  • #1262 - Fix Enumerable#slice_before arg handling
  • #1257 - mvn clean package wipes out installed jruby launcher
  • #1255 - StringIO Encoding Issue
  • #1254 - String#encode raises different errors on 1.7.8 than on 1.7.4 (and both are different from MRI)
  • #1251 - "Stub gems" missing/wrong in JRuby 1.7.8
  • #1246 - Fixing String#concat(symbol) should raise TypeError
  • #1245 - Undefined method exception when using `compass watch' in jruby 1.7.8.
  • #1242 - UTF-8 string interpolation in US-ASCII string sometimes returns wrong US-ASCII string
  • #1239 - Compiled method bodies do not scope defn/defs correctly
  • #1238 - JRuby 1.7.8 fails to initialize OpenSSL::PKey::RSA.new with encrypted key
  • #1236 - Erroneous files in JRuby 1.7.8 "bin/" directory.
  • #1234 - Fix any_spec
  • #1231 - Fix count_spec (1.7.x)
  • #1229 - duplicate class definition when reifying classes
  • #1222 - CSV parse fails when string with mutibyte character terminates with CR-LF
  • #1221 - openssl: add handling for base 0 to new and to_s
  • #1209 - Pathname#dup is broken in 1.7.5.
  • #1204 - Regression: Encoding error saving YAML with Norwegian characters
  • #1198 - String encoding
  • #1032 - Build error using Java 8 on OS X
  • #901 - Enumerable arg handling issues for `#chunk`, `#slice_before`, and `#take_while`
  • #770 - file size error on windows

JRuby 1.7.9 Released

Friday, December 06 2013

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

JRuby 1.7.9 is our ninth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • 36 issues fixed
  • Windows File.size fixed
  • Windows now will properly display to console windows codepage
  • Fixed regression which broke Compass (or anything which depended on FSSM)
  • A few more encoding issues fixed
  • Lots of Enumerable method improvements

We would like to single out Daniel Marcotte with a special shout-out this release. Daniel recently has been digging into our block dispatch code (especially in regards to Enumerable) which is far from a trivial part of our codebase and we are loving it.

Github Issues resolved for 1.7.9

  • #1300 - Fix #1222, StringIO.gets w/ utf8
  • #1295 - Don't set java.net.preferIPv4Stack in shell scripts #1286
  • #1293 - Adding spec for JRUBY-5946
  • #1292 - subList toIndex should be exclusive, not inclusive. (fromIndex is inclusive.)
  • #1291 - Sidekiq - Minitest error: NoMethodError: unmocked method :==, expected one of []
  • #1282 - Blockless Struct#select should return an enumerator
  • #1275 - Quote a JSON key so it's valid JSON.
  • #1274 - RubyArray.subList should treat toIndex as exclusive, not inclusive.
  • #1272 - File.size (org.jruby.RubyFile.size() ) impacts underlying file handle
  • #1271 - Fix arrays with overridden each
  • #1267 - Removes Logger customizations in JavaUtilLoggingLogger
  • #1265 - StackOverflowError overriding Array.each since 1.7.5
  • #1264 - Fix Enumerable#chunk arg handling
  • #1263 - Fix Enumerable#take_while arg handling
  • #1262 - Fix Enumerable#slice_before arg handling
  • #1257 - mvn clean package wipes out installed jruby launcher
  • #1255 - StringIO Encoding Issue
  • #1254 - String#encode raises different errors on 1.7.8 than on 1.7.4 (and both are different from MRI)
  • #1251 - "Stub gems" missing/wrong in JRuby 1.7.8
  • #1246 - Fixing String#concat(symbol) should raise TypeError
  • #1245 - Undefined method exception when using `compass watch' in jruby 1.7.8.
  • #1242 - UTF-8 string interpolation in US-ASCII string sometimes returns wrong US-ASCII string
  • #1239 - Compiled method bodies do not scope defn/defs correctly
  • #1238 - JRuby 1.7.8 fails to initialize OpenSSL::PKey::RSA.new with encrypted key
  • #1236 - Erroneous files in JRuby 1.7.8 "bin/" directory.
  • #1234 - Fix any_spec
  • #1231 - Fix count_spec (1.7.x)
  • #1229 - duplicate class definition when reifying classes
  • #1222 - CSV parse fails when string with mutibyte character terminates with CR-LF
  • #1221 - openssl: add handling for base 0 to new and to_s
  • #1209 - Pathname#dup is broken in 1.7.5.
  • #1204 - Regression: Encoding error saving YAML with Norwegian characters
  • #1198 - String encoding
  • #1032 - Build error using Java 8 on OS X
  • #901 - Enumerable arg handling issues for `#chunk`, `#slice_before`, and `#take_while`
  • #770 - file size error on windows

JRuby 1.7.8 Released

Thursday, November 14 2013

The JRuby community is pleased to announce the release of JRuby 1.7.8 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.8 is our eigth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. This release was an insanely quick followup release to 1.7.7. We realized a few hours ago after releasing 1.7.7 that we accidentally shipped the MacOS bin/jruby binary launcher. JRuby 1.7.8 is essentially 1.7.7 with the single correction to our bin dist file. Changes of note: - 21 issues fixed - Fixed Windows 'rails new' regression (bundle install exits) - Fixed OpenSSL gem bootstrapping problem - Fixed Google App Engine bootstrapping problem - A few missing 1.9+ Pathname features added ### Github Issues resolved
  • #1214 - Support for ISO-8859-16
  • #1213 - Remove README.md notes on junit.jar
  • #1201 - Pathname#delete alias missing / not working
  • #1199 - Softlink jruby to jruby.bash instead of hard copy.
  • #1182 - incorrect RubyHash multithreaded behaviour when marshalling
  • #1180 - Move the guard before the use of metaclass.
  • #1176 - Array(array) returns a copy instead of array itself
  • #1171 - Rails new failed with JRuby on Windows 7
  • #1170 - `rindex` performance improvement
  • #1167 - "print" called with no arguments prints "nil"
  • #1165 - Bug 1092 fix
  • #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
  • #1157 - Fix compatibility wiht Bouncy Castle 1.49.
  • #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
  • #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
  • #1151 - Too many files in JRuby 1.7.6
  • #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
  • #1148 - Commit c7c7c7 broke AppEngine
  • #1139 - ClassCastException when reading non String value from Java System.properties
  • #1136 - JRuby 1.7.5 doesn't compile valid class files
  • #1117 - #name method on java classes strips the outer class

JRuby 1.7.8 Released

Thursday, November 14 2013

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

JRuby 1.7.8 is our eigth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

This release was an insanely quick followup release to 1.7.7. We realized a few hours ago after releasing 1.7.7 that we accidentally shipped the MacOS bin/jruby binary launcher. JRuby 1.7.8 is essentially 1.7.7 with the single correction to our bin dist file.

Changes of note:

  • 21 issues fixed
  • Fixed Windows ‘rails new’ regression (bundle install exits)
  • Fixed OpenSSL gem bootstrapping problem
  • Fixed Google App Engine bootstrapping problem
  • A few missing 1.9+ Pathname features added

Github Issues resolved

  • #1214 - Support for ISO-8859-16
  • #1213 - Remove README.md notes on junit.jar
  • #1201 - Pathname#delete alias missing / not working
  • #1199 - Softlink jruby to jruby.bash instead of hard copy.
  • #1182 - incorrect RubyHash multithreaded behaviour when marshalling
  • #1180 - Move the guard before the use of metaclass.
  • #1176 - Array(array) returns a copy instead of array itself
  • #1171 - Rails new failed with JRuby on Windows 7
  • #1170 - `rindex` performance improvement
  • #1167 - "print" called with no arguments prints "nil"
  • #1165 - Bug 1092 fix
  • #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
  • #1157 - Fix compatibility wiht Bouncy Castle 1.49.
  • #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
  • #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
  • #1151 - Too many files in JRuby 1.7.6
  • #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
  • #1148 - Commit c7c7c7 broke AppEngine
  • #1139 - ClassCastException when reading non String value from Java System.properties
  • #1136 - JRuby 1.7.5 doesn't compile valid class files
  • #1117 - #name method on java classes strips the outer class

JRuby 1.7.7 Released

Thursday, November 14 2013

The JRuby community is pleased to announce the release of JRuby 1.7.7 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.7 is our seventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. This release was a quick followup release to 1.7.6. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks... Changes of note: - 21 issues fixed for 1.7.7 - Fixed Windows 'rails new' regression (bundle install exits) - Fixed OpenSSL gem bootstrapping problem - Fixed Google App Engine bootstrapping problem - A few missing 1.9+ Pathname features added ### Github Issues resolved for 1.7.7
  • #1214 - Support for ISO-8859-16
  • #1213 - Remove README.md notes on junit.jar
  • #1201 - Pathname#delete alias missing / not working
  • #1199 - Softlink jruby to jruby.bash instead of hard copy.
  • #1182 - incorrect RubyHash multithreaded behaviour when marshalling
  • #1180 - Move the guard before the use of metaclass.
  • #1176 - Array(array) returns a copy instead of array itself
  • #1171 - Rails new failed with JRuby on Windows 7
  • #1170 - `rindex` performance improvement
  • #1167 - "print" called with no arguments prints "nil"
  • #1165 - Bug 1092 fix
  • #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
  • #1157 - Fix compatibility wiht Bouncy Castle 1.49.
  • #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
  • #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
  • #1151 - Too many files in JRuby 1.7.6
  • #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
  • #1148 - Commit c7c7c7 broke AppEngine
  • #1139 - ClassCastException when reading non String value from Java System.properties
  • #1136 - JRuby 1.7.5 doesn't compile valid class files
  • #1117 - #name method on java classes strips the outer class

JRuby 1.7.7 Released

Thursday, November 14 2013

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

JRuby 1.7.7 is our seventh update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

This release was a quick followup release to 1.7.6. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks…

Changes of note:

  • 21 issues fixed for 1.7.7
  • Fixed Windows ‘rails new’ regression (bundle install exits)
  • Fixed OpenSSL gem bootstrapping problem
  • Fixed Google App Engine bootstrapping problem
  • A few missing 1.9+ Pathname features added

Github Issues resolved for 1.7.7

  • #1214 - Support for ISO-8859-16
  • #1213 - Remove README.md notes on junit.jar
  • #1201 - Pathname#delete alias missing / not working
  • #1199 - Softlink jruby to jruby.bash instead of hard copy.
  • #1182 - incorrect RubyHash multithreaded behaviour when marshalling
  • #1180 - Move the guard before the use of metaclass.
  • #1176 - Array(array) returns a copy instead of array itself
  • #1171 - Rails new failed with JRuby on Windows 7
  • #1170 - `rindex` performance improvement
  • #1167 - "print" called with no arguments prints "nil"
  • #1165 - Bug 1092 fix
  • #1163 - File.expand_path should fail if ENV['HOME'] isn't an absolute path
  • #1157 - Fix compatibility wiht Bouncy Castle 1.49.
  • #1154 - Pathname.new(Dir.new('dir_name')) raises a TypeError
  • #1153 - Dir[*[]] behaves differently in jruby 1.7.6 the in MRI 1.9.3p448
  • #1151 - Too many files in JRuby 1.7.6
  • #1150 - rails 3.2.x with jruby-openssl in Gemfile gives uninitialized constant OpenSSL::Digest::OPENSSL_VERSION_NUMBER
  • #1148 - Commit c7c7c7 broke AppEngine
  • #1139 - ClassCastException when reading non String value from Java System.properties
  • #1136 - JRuby 1.7.5 doesn't compile valid class files
  • #1117 - #name method on java classes strips the outer class

JRuby 1.7.6 Released

Tuesday, October 22 2013

The JRuby community is pleased to announce the release of JRuby 1.7.6 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.6 is our sixth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. This release was a quick followup release to 1.7.5. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks... Changes of note: - 14 issues fixed for 1.7.6 - Restored some missing .bat files for Windows - Fibers no longer throwing uncatchable errors - Removal of already initialized warnings from OpenSSL ### Issues resolved for 1.7.6
  • #1145 - Process.respond_to?(:fork) returns true when profiling is enabled
  • #1142 - Threading fixes
  • #1141 - Error Messages Seem Different Compared to YARV
  • #1138 - Files missing from JRuby 1.7.5
  • #1135 - Round method not consistent with jruby 1.7.5 compared to 1.7.3
  • #1133 - Tempfile no longer unlinks created files upon garbage collection
  • #1128 - strformat corrupt cyrillic symbols
  • #1121 - Bigdeciment 1.9+: to_s sometimes has extra trailing zeroes
  • #1118 - Arrays duplicated by splats (e.g. a_dup = [*a]) share structure, but shouldn't
  • #1116 - Ignore AccessControlException while setting network stack system property
  • #1106 - Java exceptions raised in fibers cause the fiber to die without notifying parent
  • #1088 - JZlibRubyGzipWriter doesn't handle nil arguments gracefully
  • #1071 - Lots of already initialized errors from jruby-openssl
  • #1044 - Allow whitespace between -> and () in lambdas in 2.0

JRuby 1.7.6 Released

Tuesday, October 22 2013

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

JRuby 1.7.6 is our sixth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

This release was a quick followup release to 1.7.5. Our main priority is working on our next major version of JRuby, but we want to maintain a partial focus on continuing to fix bugs for JRuby 1.7.x. A faster release cycle for JRuby 1.7.x will help motivate us to keep fixing bugs on our maintenance branch. Expect a new release about every 3 weeks…

Changes of note:

  • 14 issues fixed for 1.7.6
  • Restored some missing .bat files for Windows
  • Fibers no longer throwing uncatchable errors
  • Removal of already initialized warnings from OpenSSL

Issues resolved for 1.7.6

  • #1145 - Process.respond_to?(:fork) returns true when profiling is enabled
  • #1142 - Threading fixes
  • #1141 - Error Messages Seem Different Compared to YARV
  • #1138 - Files missing from JRuby 1.7.5
  • #1135 - Round method not consistent with jruby 1.7.5 compared to 1.7.3
  • #1133 - Tempfile no longer unlinks created files upon garbage collection
  • #1128 - strformat corrupt cyrillic symbols
  • #1121 - Bigdeciment 1.9+: to_s sometimes has extra trailing zeroes
  • #1118 - Arrays duplicated by splats (e.g. a_dup = [*a]) share structure, but shouldn't
  • #1116 - Ignore AccessControlException while setting network stack system property
  • #1106 - Java exceptions raised in fibers cause the fiber to die without notifying parent
  • #1088 - JZlibRubyGzipWriter doesn't handle nil arguments gracefully
  • #1071 - Lots of already initialized errors from jruby-openssl
  • #1044 - Allow whitespace between -> and () in lambdas in 2.0

JRuby 1.7.5 Released

Monday, October 07 2013

The JRuby community is pleased to announce the release of JRuby 1.7.5 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.5 is our fifth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. This release is a special point release in that it is the last point release before we move JRuby 1.7.x onto a maintenance branch. At this point we will put out more releases of 1.7.x based on bug reports, but a bulk of our effort will change to work on the next major version: JRuby 9000. We fixed a number of issues with JRuby's support for invokedynamic, but due to increased memory requirements and some lingering issues we have opted to leave it disabled until Java 8 (due in March). Users willing to bump up memory use (PermGen, specifically) can still enable invokedynamic via -Xcompile.invokedynamic=true. We also encourage users to try their apps on early access builds of Java 8. This summer, the JRuby team and our community members mentored ten students on a wide range of projects as part of Google's Summer of Code 2013.. We would like to thank Asakawa Ryu, Benoit Daloze, Chamila Wijayarathna, Devwrat More, Eric West, Faraaz Ismail, Kumar Sukhani, Maximilian Konzack, Matthew Getch, and Tobias Pfeiffer for participating and congratulate them on their excellent work. From this point forward, all users should report issues on our https://github.com/jruby/jruby project site. You can also just go to http://bugs.jruby.org/. Changes of note: - 243 issues fixed for 1.7.5 - Compatibility - Many many encoding/M17n issues resolved. - Improved transcoding support - Fiber fixes - Ripper support - Performance - Faster pathname implementation - Faster date/time implementations - Improved call performance for magic globals ($~ and $_) - Block/proc creation and dispatch performance improvements - Moved build to Maven from Ant. See BUILDING.md. - Updated RubyGems to version 2.1.5 - Moved several standard libraries out as default gems ### Jira Issues resolved for 1.7.5
  • JRUBY-7101 - BigDecimal / <float between 0 and 1> => Infinity
  • JRUBY-6409 - Open3.popen3(...) is broken in 1.9 mode
  • JRUBY-6874 - Successive writes to SSLSocket are not read
  • JRUBY-7190 - Incorrect encoding on result string read from File introduced in JRuby 1.7.4
  • JRUBY-7151 - Array#drop fails for arrays containing floats in 1.8 mode
  • JRUBY-6996 - jirb tab completion not working in Windows
  • JRUBY-7095 - Time overflowing since 1.7
  • JRUBY-7173 - IO#stat from IO.pipe didn't work
  • JRUBY-7148 - Division with BigDecimal not working
  • JRUBY-7167 - Regexp match not thread safe when called in a lambda
  • JRUBY-7176 - "org.jruby.RubyNil cannot be cast to org.jruby.RubyMatchData" in multithreaded program
  • JRUBY-6763 - Incorrect handling of arguments by method object
  • JRUBY-7149 - Socket information is wrong with IPv6
  • JRUBY-7185 - IllegalArgumentException when converting to utf-16
  • JRUBY-7007 - Inconsistent String#encode behavior for binary to UTF-8 conversion
  • JRUBY-7142 - failed to load valid utf-8 yaml file
  • JRUBY-6994 - exec() in chdir block doesn't inherit cwd
  • JRUBY-5290 - Thread#priority= resets negative values to 1
  • JRUBY-7056 - Thread#backtrace sometimes reports backtrace for wrong thread
  • JRUBY-7188 - Nested Fibers in 1.7.4 incorrectly raises error - resuming fiber from different thread
  • JRUBY-7054 - NullPointerException in Thread#backtrace for adopted(?) Java threads
  • JRUBY-7195 - REXML gives 1 character strings BINARY text encoding
  • JRUBY-7172 - Java::JavaLang::NullPointerException when calling super in method in duped module included in subclass
  • JRUBY-7166 - invalid multibyte char (UTF-8) caused by '\’'
  • JRUBY-7189 - invalid byte sequence in US-ASCII
  • JRUBY-7013 - JDK8 CHM incompatibility
### Github Issues resolved for 1.7.5
  • #1078 - Delegate does not pass block through when object does not implement method
  • #1076 - Enumerator lifecycle needs a test
  • #1075 - Fiber finalizer fix
  • #1072 - Latest 1.7.5 snapshot breaks DateTime + method
  • #1071 - Lots of already initialized errors from jruby-openssl
  • #1065 - Valid DateTime treated as invalid
  • #1054 - Fixes for keyword argument handling
  • #1053 - Remove the special invokedynamic default case for IBM J9
  • #1049 - [2.0] Incorrect arity checking for methods with kw arguments
  • #1047 - Passing nil as the value of a keyword argument causes JRuby to act as if there were no such keyword argument
  • #1046 - profile output in json
  • #1041 - JRuby inlining causes bugged behavior (Regexp globals)
  • #1038 - jruby-jars missing from http://ci.jruby.org/snapshots/master/
  • #1034 - Disable invokedynamic for Java 7
  • #1029 - Fix italics syntax in BUILDING.md
  • #1022 - Fix string representation of an Edge object
  • #1020 - Begin fixing osgi metadata for maven build
  • #1019 - some version updates
  • #1017 - Capistrano Issue
  • #1015 - Deadlock occurs on Thread.kill
  • #1014 - memory increase needed when using jruny-head jdk7u40 +indy
  • #1012 - com.github.jnr:jnr-posix:jar:3.0.1-SNAPSHOT needs a release
  • #1009 - jruby master gem install jasmine-core does not work
  • #1008 - StringIO doesn't work with frozen strings in 1.7.5.dev
  • #1007 - NPE loading Rails console
  • #1006 - Can't require jars with leading underscores
  • #1005 - Application failure after updating to Java 7u40 with invokedynamic
  • #1004 - ArgumentError: wrong number of arguments calling `eql?` (1 for 0)
  • #1002 - Update to RubyGems 2.1.2
  • #1001 - dist artifacts must not install jruby-launcher
  • #1000 - NullPointerException bug: openssl.Digest
  • #998 - 1.7.5.dev: error for rake spec for shoes4 (bundler/setup IllegalAcceError to_path)
  • #996 - IR Event Handling
  • #995 - YAML file fails to load if JVM character set is MS932 (common on Windows)
  • #993 - Can't require in two threads at once in JRuby 1.7.5.dev
  • #992 - BigDecimal#* returns Float (should be BigDecimal)
  • #990 - Dist archive must use jruby.bash instead of native binary for bin/jruby
  • #989 - Pathname#realpath is returning a String instead of a Pathname
  • #988 - Fix failing time tests
  • #982 - Document the purpose of `localrepo`
  • #979 - Always compute Enumerable#count through enumeration for 1.9+
  • #977 - rspec refactor for ffi to use expect inspite of should to make it better
  • #972 - Package jay/yydebug should only be in jruby-core not jruby-stdlib
  • #970 - Ruby 2.0 parser doesn't intern symbol strings in literal symbol array
  • #968 - Re factor compiler specs to use 'let','match_array','expect',be_nil'
  • #966 - use expect instead of should in rspec
  • #961 - Comma in the file name results in JIT compile error
  • #960 - remove rspec should also use let for input stream
  • #959 - [jruby-jars gem] lib/jruby-jars.rb not same as source, and fails to load "jruby-jars/version"
  • #955 - Bug with RubyRegexp when pass it a block.
  • #954 - JIT-compile methods named 'none'.
  • #953 - .jrubyrc file not supporting `cext.enabled=true`
  • #950 - ThreadGroup#enclose does not guard against thread addition
  • #949 - jruby --properties generates confusing comments in .jrubyrc
  • #948 - Test failures in the MRI 1.9 suite (Time class) when TZ is set
  • #945 - In Ruby 2.0, String#lines returns an Array, rather than an Enumerator
  • #944 - Add RVM step to build instructions
  • #943 - Fix typo in testing documentation
  • #941 - Enumerator#inject() is broken
  • #939 - Marshal load loses correct encoding for string subclass
  • #937 - Strange (JIT?) behaviour causing assignment function to be called twice in Rails
  • #936 - sprintf formatting with "%+.2d"
  • #935 - incompatible character encodings: ASCII-8BIT and UTF-8
  • #934 - rubygems version with jruby does not obey 'no_proxy' ENV
  • #928 - More arg-handling improvements for Enumerables
  • #927 - super inside def self.new behaves incorrect when called via alias
  • #923 - Document --2.0 flag.
  • #922 - Enumerator#count returns nil
  • #919 - JRuby cannot decrypt a private key using the AES-256-CBC cipher
  • #917 - Scheduler for controlling the Execution of IR Passes
  • #912 - dist and jar-complete targets
  • #907 - add the latest gems version in pom file
  • #905 - IR Specs broke because use of Ruby 1.9 Hash syntax. Fixed it by using 1.8 Hash syntax
  • #904 - Custom spec helpers for IR specs related to Vertex.java
  • #902 - Time zone conversion overflow
  • #898 - More arg handling fixes for Enumerable methods
  • #897 - Convenient debug flags for IR
  • #896 - upgrade gems version in pom file
  • #894 - Fix a naming conflict jrubyc can introduce in generated java.
  • #893 - Use rspec opts for IR specs
  • #892 - Added flag for IR visualizer
  • #890 - Date library using Joda-Time (v2)
  • #889 - Don't overwrite rspec_opts. Instead of that append to it.
  • #888 - Add index/rindex to java lists (java.util.List)
  • #887 - Update site with developer, license, CI info. Update some deps and plugins.
  • #886 - String#byteslice can raise an inappropriate ArrayIndexOutOfBoundsException
  • #884 - More IR Specs related to Vertex.java
  • #883 - Upgrade RSpec to latest version
  • #882 - Date library using Joda-Time
  • #881 - String#encode with undef replace options problem
  • #880 - Fix parent hierarchies and plugins for the 'all' profile
  • #878 - Fix Unmarshaling of Date objects marshaled with MRI 1.9+
  • #877 - Issues generating checkstyle report
  • #876 - bin/ast Add of IR Debugging Features
  • #875 - Maven site can now be published to github pages
  • #874 - Add javafx as predefined package for java 8
  • #873 - script with long DATA block hangs
  • #872 - NameError is thrown by method_missing when using self
  • #869 - Customize checkstyle to make it more lenient.
  • #867 - Use <dependencyManagement> for junit. Updated other deps.
  • #866 - Separated the two comparison cases by parenthesis and added explanation
  • #865 - Use <pluginManagement> in parent pom so that all plugins (and their versions) for the project can be centrally managed.
  • #864 - Move Maven site reporting to parent pom. Fixed parent hierarchy.
  • #863 - Direct Memory Buffer Leak in File IO
  • #862 - Compilation with Maven is slow
  • #858 - Interface incompatibility in BiVariableMap on Java 8
  • #857 - Hybrid (native/ruby) pathname library
  • #856 - JRuby 1.7.x String.encode not using Unicode replacement character
  • #854 - Add Maven Site reporting
  • #852 - Fixed a bug in checking the type of edges in EdgeTypeIterator
  • #850 - Added Maven Site reports
  • #849 - Komax refactoring factor methods
  • #848 - Komax codestyle override annotations
  • #847 - Komax codereview
  • #844 - Removed comment about assert[ci skip]
  • #839 - alias_method not preserving UnboundMethod#parameters
  • #837 - Provide a convenient way to incorporate the latest tzdata
  • #835 - method(:require).parameters is [] during Minitest run
  • #834 - Strange defined? error with ::BasicObject
  • #833 - Added Specs for IR and renamed a method in Vertex.java
  • #832 - Restructure openssl artifact to separate out BC jars
  • #831 - readline, openssl jar, yecht in place, copy jlin, bouncy-caster jar into stdlib
  • #830 - RuntimeError: no local gem found for mocha
  • #827 - File::EXCL is not thread safe
  • #826 - Support foo.jar that is linked to extensionless jar files
  • #824 - fix #823
  • #823 - X509Cert.set_serial breaks for Certificate SerialNumbers with MSB=1
  • #822 - fix slice_before on empty enumerable
  • #817 - Fixed JRubyClassLoader to not require protective domain access check
  • #816 - Need to unwrap exception before checking for security exception
  • #815 - Fix enum arg handling in Enumerator Nexter
  • #814 - JRuby 1.7.4 Regression, defined? fails for ::BasicObject
  • #813 - JRuby's Ripper omits the :paren s-expression on method definition
  • #808 - jrubyc: cannot find symbol lockAndRequire
  • #807 - Fix each_with_index argument handling
  • #806 - Chatty output while running RSpec
  • #805 - "ArgumentError: wrong number of arguments calling `const_get` (2 for 1)" for java constants
  • #802 - Weird JIT behaviour causing Rails to fail serving request
  • #801 - Jruby 1.7.4 Timezone is inverted when creating a Time object
  • #800 - Tag unreliable specs unstable rather than fails
  • #798 - Named based constant cache invalidation
  • #797 - Fix for BigDecimal#/
  • #796 - Remove qualified const_get test
  • #795 - Invalidate constant cache if included module has constants
  • #794 - Fix String performance regression
  • #793 - Fix the timezone string parser so it won't choke on TZ=JST-9, etc.
  • #792 - jruby-1.7.3 Timeout is not working with long string and regexp.
  • #788 - jnr-constants update needed for JRuby 1.7.5
  • #787 - All command-line options should be configurable via JVM properties
  • #786 - Pack roundtrip through BER ( w ) yields incorrect type
  • #784 - add typecasting to RTEST macro
  • #780 - Tag intermittent spec failures
  • #775 - IPv4 stack should be preferred to IPv6
  • #773 - Resolv.getaddress fails w/ 'connect: name or service not known' on Windows
  • #772 - BigDecimal#hash returns different value for numerically equal numbers
  • #771 - Checking for size of outgoing and incoming edges of the vertex after removing a single edge
  • #768 - raise ArgumentError when IO.new/IO.open last argument is not a hash or nil
  • #766 - IO.sysopen accepts mode & permission that are nil
  • #764 - add support for options and not truncating offset for IO.write
  • #763 - binwrite should pass write only when options are not empty but don't have a "mode"
  • #760 - Remove a bad assert and untag some tests it was affecting
  • #759 - Implements #614
  • #758 - spec/regression/JRUBY-5811_case_insensitive_loaded_features_spec.rb fails on case-insensitive filesystem
  • #757 - Untag a number of passing specs
  • #756 - String#concat should preserve encoding
  • #754 - Added a missing 'y'.
  • #750 - Fix IOInputStream single-byte read
  • #749 - Fix dash_s_spec
  • #748 - Fix dash_c_spec
  • #747 - 1.7.4 Regression: Time::localtime broken
  • #746 - rake spec:compiler failing since ba4df82
  • #745 - Fix precision issues in Time by avoiding conversions to nanoseconds.
  • #744 - TypeError with Prime.each_with_index and mass assignment
  • #741 - Update OSGi classloader
  • #740 - Make Time#to_date compliant with MRI 1.9-2
  • #739 - Improve GzipReader#gets performance.
  • #738 - Added rake task for running IR specs
  • #736 - Dispatching a string through send to method_missing causes encoding to revert to ASCII
  • #735 - Synchronize profile printing.
  • #734 - Fix RubyString#byteslice on substring.
  • #732 - jline2 bundled jansi needs update after fixing security issue
  • #731 - strftime "-" flag affects more than one field at a time (inconsistent with MRI)
  • #730 - Fixing write specs
  • #727 - Fix string concatenation with a number as per rubyspec behaviour.
  • #723 - IO.copy_stream should handle objects that respond to read or write. Fixes #437
  • #722 - REFACTORING: supporting flag about receiving an offset or not.
  • #702 - Untag passing Marshal.dump specs
  • #694 - Regexp #== and #eql? is true if self does not specify /n option and other does and vise versa
  • #692 - Use hash rather than full sexp for cache key to significantly reduce mem...
  • #690 - Raise a RangeError when codepoint is invalid for the default internal encoding
  • #678 - TempFile#unlink - do not work if #close is not called right before, even if nothing has been done over the file.
  • #652 - BC Date (with ActiveSupport) regression
  • #648 - Division with BigDecimal not correct
  • #644 - Error in Division of BigDecimal
  • #641 - jruby/thread_dump fails in JRuby 1.7.2
  • #640 - Fixing hashing consistency across JVM instances.
  • #631 - About 60 RubySpecs fail if the entire suite is run.
  • #624 - Field annotations
  • #623 - Java classes with signatures should be reified
  • #614 - KindOf implementation using Class.isInstance() instead of instanceof
  • #603 - #caller returns `__send__' as one of the callers
  • #563 - Encoding error when parsing UTF-8 CSV in (1.7.3 - 1.9 mode)
  • #561 - Differences between XML string encoding in MRI and JRuby
  • #520 - New ng.exe required before release
  • #483 - Psych yaml parser can not parse uppercase ÄÖÜ but äöü can parse
  • #474 - YAML weirdness
  • #461 - String#encode hard errors without replacement for ASCII 8-bit range to multibyte
  • #460 - add multiple assignment support to java.util.Collection's Fixes #459
  • #456 - Marshal.load encoding error
  • #415 - Getting this error: "LocalJumpError: yield called out of block"
  • #406 - Gathering global thread backtraces fails often on CentOS with JRuby 1.7
  • #375 - String#encode fails with :invalid => :replace option
  • #332 - Open3.popen3 doesn't return a thread object in jruby 1.7.0-rc1
  • #302 - DRegexp creates too many transient objects
  • #264 - JRuby19mode behavior is different with CRuby. When Enumerator has mulltiple values for a block paramter.
  • #218 - rspec related out of bounds array access in multi-character string splitting
  • #168 - 1.9 mode runs "threaded reverse" bench slower than MRI

JRuby 1.7.5 Released

Monday, October 07 2013

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

JRuby 1.7.5 is our fifth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

This release is a special point release in that it is the last point release before we move JRuby 1.7.x onto a maintenance branch. At this point we will put out more releases of 1.7.x based on bug reports, but a bulk of our effort will change to work on the next major version: JRuby 9000.

We fixed a number of issues with JRuby’s support for invokedynamic, but due to increased memory requirements and some lingering issues we have opted to leave it disabled until Java 8 (due in March). Users willing to bump up memory use (PermGen, specifically) can still enable invokedynamic via -Xcompile.invokedynamic=true. We also encourage users to try their apps on early access builds of Java 8.

This summer, the JRuby team and our community members mentored ten students on a wide range of projects as part of Google’s Summer of Code 2013.. We would like to thank Asakawa Ryu, Benoit Daloze, Chamila Wijayarathna, Devwrat More, Eric West, Faraaz Ismail, Kumar Sukhani, Maximilian Konzack, Matthew Getch, and Tobias Pfeiffer for participating and congratulate them on their excellent work.

From this point forward, all users should report issues on our https://github.com/jruby/jruby project site. You can also just go to http://bugs.jruby.org/.

Changes of note:

  • 243 issues fixed for 1.7.5
  • Compatibility
    • Many many encoding/M17n issues resolved.
    • Improved transcoding support
    • Fiber fixes
    • Ripper support
  • Performance
    • Faster pathname implementation
    • Faster date/time implementations
    • Improved call performance for magic globals ($~ and $_)
    • Block/proc creation and dispatch performance improvements
  • Moved build to Maven from Ant. See BUILDING.md.
  • Updated RubyGems to version 2.1.5
  • Moved several standard libraries out as default gems

Jira Issues resolved for 1.7.5

  • JRUBY-7101 - BigDecimal / <float between 0 and 1> => Infinity
  • JRUBY-6409 - Open3.popen3(...) is broken in 1.9 mode
  • JRUBY-6874 - Successive writes to SSLSocket are not read
  • JRUBY-7190 - Incorrect encoding on result string read from File introduced in JRuby 1.7.4
  • JRUBY-7151 - Array#drop fails for arrays containing floats in 1.8 mode
  • JRUBY-6996 - jirb tab completion not working in Windows
  • JRUBY-7095 - Time overflowing since 1.7
  • JRUBY-7173 - IO#stat from IO.pipe didn't work
  • JRUBY-7148 - Division with BigDecimal not working
  • JRUBY-7167 - Regexp match not thread safe when called in a lambda
  • JRUBY-7176 - "org.jruby.RubyNil cannot be cast to org.jruby.RubyMatchData" in multithreaded program
  • JRUBY-6763 - Incorrect handling of arguments by method object
  • JRUBY-7149 - Socket information is wrong with IPv6
  • JRUBY-7185 - IllegalArgumentException when converting to utf-16
  • JRUBY-7007 - Inconsistent String#encode behavior for binary to UTF-8 conversion
  • JRUBY-7142 - failed to load valid utf-8 yaml file
  • JRUBY-6994 - exec() in chdir block doesn't inherit cwd
  • JRUBY-5290 - Thread#priority= resets negative values to 1
  • JRUBY-7056 - Thread#backtrace sometimes reports backtrace for wrong thread
  • JRUBY-7188 - Nested Fibers in 1.7.4 incorrectly raises error - resuming fiber from different thread
  • JRUBY-7054 - NullPointerException in Thread#backtrace for adopted(?) Java threads
  • JRUBY-7195 - REXML gives 1 character strings BINARY text encoding
  • JRUBY-7172 - Java::JavaLang::NullPointerException when calling super in method in duped module included in subclass
  • JRUBY-7166 - invalid multibyte char (UTF-8) caused by '\’'
  • JRUBY-7189 - invalid byte sequence in US-ASCII
  • JRUBY-7013 - JDK8 CHM incompatibility

Github Issues resolved for 1.7.5

  • #1078 - Delegate does not pass block through when object does not implement method
  • #1076 - Enumerator lifecycle needs a test
  • #1075 - Fiber finalizer fix
  • #1072 - Latest 1.7.5 snapshot breaks DateTime + method
  • #1071 - Lots of already initialized errors from jruby-openssl
  • #1065 - Valid DateTime treated as invalid
  • #1054 - Fixes for keyword argument handling
  • #1053 - Remove the special invokedynamic default case for IBM J9
  • #1049 - [2.0] Incorrect arity checking for methods with kw arguments
  • #1047 - Passing nil as the value of a keyword argument causes JRuby to act as if there were no such keyword argument
  • #1046 - profile output in json
  • #1041 - JRuby inlining causes bugged behavior (Regexp globals)
  • #1038 - jruby-jars missing from http://ci.jruby.org/snapshots/master/
  • #1034 - Disable invokedynamic for Java 7
  • #1029 - Fix italics syntax in BUILDING.md
  • #1022 - Fix string representation of an Edge object
  • #1020 - Begin fixing osgi metadata for maven build
  • #1019 - some version updates
  • #1017 - Capistrano Issue
  • #1015 - Deadlock occurs on Thread.kill
  • #1014 - memory increase needed when using jruny-head jdk7u40 +indy
  • #1012 - com.github.jnr:jnr-posix:jar:3.0.1-SNAPSHOT needs a release
  • #1009 - jruby master gem install jasmine-core does not work
  • #1008 - StringIO doesn't work with frozen strings in 1.7.5.dev
  • #1007 - NPE loading Rails console
  • #1006 - Can't require jars with leading underscores
  • #1005 - Application failure after updating to Java 7u40 with invokedynamic
  • #1004 - ArgumentError: wrong number of arguments calling `eql?` (1 for 0)
  • #1002 - Update to RubyGems 2.1.2
  • #1001 - dist artifacts must not install jruby-launcher
  • #1000 - NullPointerException bug: openssl.Digest
  • #998 - 1.7.5.dev: error for rake spec for shoes4 (bundler/setup IllegalAcceError to_path)
  • #996 - IR Event Handling
  • #995 - YAML file fails to load if JVM character set is MS932 (common on Windows)
  • #993 - Can't require in two threads at once in JRuby 1.7.5.dev
  • #992 - BigDecimal#* returns Float (should be BigDecimal)
  • #990 - Dist archive must use jruby.bash instead of native binary for bin/jruby
  • #989 - Pathname#realpath is returning a String instead of a Pathname
  • #988 - Fix failing time tests
  • #982 - Document the purpose of `localrepo`
  • #979 - Always compute Enumerable#count through enumeration for 1.9+
  • #977 - rspec refactor for ffi to use expect inspite of should to make it better
  • #972 - Package jay/yydebug should only be in jruby-core not jruby-stdlib
  • #970 - Ruby 2.0 parser doesn't intern symbol strings in literal symbol array
  • #968 - Re factor compiler specs to use 'let','match_array','expect',be_nil'
  • #966 - use expect instead of should in rspec
  • #961 - Comma in the file name results in JIT compile error
  • #960 - remove rspec should also use let for input stream
  • #959 - [jruby-jars gem] lib/jruby-jars.rb not same as source, and fails to load "jruby-jars/version"
  • #955 - Bug with RubyRegexp when pass it a block.
  • #954 - JIT-compile methods named 'none'.
  • #953 - .jrubyrc file not supporting `cext.enabled=true`
  • #950 - ThreadGroup#enclose does not guard against thread addition
  • #949 - jruby --properties generates confusing comments in .jrubyrc
  • #948 - Test failures in the MRI 1.9 suite (Time class) when TZ is set
  • #945 - In Ruby 2.0, String#lines returns an Array, rather than an Enumerator
  • #944 - Add RVM step to build instructions
  • #943 - Fix typo in testing documentation
  • #941 - Enumerator#inject() is broken
  • #939 - Marshal load loses correct encoding for string subclass
  • #937 - Strange (JIT?) behaviour causing assignment function to be called twice in Rails
  • #936 - sprintf formatting with "%+.2d"
  • #935 - incompatible character encodings: ASCII-8BIT and UTF-8
  • #934 - rubygems version with jruby does not obey 'no_proxy' ENV
  • #928 - More arg-handling improvements for Enumerables
  • #927 - super inside def self.new behaves incorrect when called via alias
  • #923 - Document --2.0 flag.
  • #922 - Enumerator#count returns nil
  • #919 - JRuby cannot decrypt a private key using the AES-256-CBC cipher
  • #917 - Scheduler for controlling the Execution of IR Passes
  • #912 - dist and jar-complete targets
  • #907 - add the latest gems version in pom file
  • #905 - IR Specs broke because use of Ruby 1.9 Hash syntax. Fixed it by using 1.8 Hash syntax
  • #904 - Custom spec helpers for IR specs related to Vertex.java
  • #902 - Time zone conversion overflow
  • #898 - More arg handling fixes for Enumerable methods
  • #897 - Convenient debug flags for IR
  • #896 - upgrade gems version in pom file
  • #894 - Fix a naming conflict jrubyc can introduce in generated java.
  • #893 - Use rspec opts for IR specs
  • #892 - Added flag for IR visualizer
  • #890 - Date library using Joda-Time (v2)
  • #889 - Don't overwrite rspec_opts. Instead of that append to it.
  • #888 - Add index/rindex to java lists (java.util.List)
  • #887 - Update site with developer, license, CI info. Update some deps and plugins.
  • #886 - String#byteslice can raise an inappropriate ArrayIndexOutOfBoundsException
  • #884 - More IR Specs related to Vertex.java
  • #883 - Upgrade RSpec to latest version
  • #882 - Date library using Joda-Time
  • #881 - String#encode with undef replace options problem
  • #880 - Fix parent hierarchies and plugins for the 'all' profile
  • #878 - Fix Unmarshaling of Date objects marshaled with MRI 1.9+
  • #877 - Issues generating checkstyle report
  • #876 - bin/ast Add of IR Debugging Features
  • #875 - Maven site can now be published to github pages
  • #874 - Add javafx as predefined package for java 8
  • #873 - script with long DATA block hangs
  • #872 - NameError is thrown by method_missing when using self
  • #869 - Customize checkstyle to make it more lenient.
  • #867 - Use <dependencyManagement> for junit. Updated other deps.
  • #866 - Separated the two comparison cases by parenthesis and added explanation
  • #865 - Use <pluginManagement> in parent pom so that all plugins (and their versions) for the project can be centrally managed.
  • #864 - Move Maven site reporting to parent pom. Fixed parent hierarchy.
  • #863 - Direct Memory Buffer Leak in File IO
  • #862 - Compilation with Maven is slow
  • #858 - Interface incompatibility in BiVariableMap on Java 8
  • #857 - Hybrid (native/ruby) pathname library
  • #856 - JRuby 1.7.x String.encode not using Unicode replacement character
  • #854 - Add Maven Site reporting
  • #852 - Fixed a bug in checking the type of edges in EdgeTypeIterator
  • #850 - Added Maven Site reports
  • #849 - Komax refactoring factor methods
  • #848 - Komax codestyle override annotations
  • #847 - Komax codereview
  • #844 - Removed comment about assert[ci skip]
  • #839 - alias_method not preserving UnboundMethod#parameters
  • #837 - Provide a convenient way to incorporate the latest tzdata
  • #835 - method(:require).parameters is [] during Minitest run
  • #834 - Strange defined? error with ::BasicObject
  • #833 - Added Specs for IR and renamed a method in Vertex.java
  • #832 - Restructure openssl artifact to separate out BC jars
  • #831 - readline, openssl jar, yecht in place, copy jlin, bouncy-caster jar into stdlib
  • #830 - RuntimeError: no local gem found for mocha
  • #827 - File::EXCL is not thread safe
  • #826 - Support foo.jar that is linked to extensionless jar files
  • #824 - fix #823
  • #823 - X509Cert.set_serial breaks for Certificate SerialNumbers with MSB=1
  • #822 - fix slice_before on empty enumerable
  • #817 - Fixed JRubyClassLoader to not require protective domain access check
  • #816 - Need to unwrap exception before checking for security exception
  • #815 - Fix enum arg handling in Enumerator Nexter
  • #814 - JRuby 1.7.4 Regression, defined? fails for ::BasicObject
  • #813 - JRuby's Ripper omits the :paren s-expression on method definition
  • #808 - jrubyc: cannot find symbol lockAndRequire
  • #807 - Fix each_with_index argument handling
  • #806 - Chatty output while running RSpec
  • #805 - "ArgumentError: wrong number of arguments calling `const_get` (2 for 1)" for java constants
  • #802 - Weird JIT behaviour causing Rails to fail serving request
  • #801 - Jruby 1.7.4 Timezone is inverted when creating a Time object
  • #800 - Tag unreliable specs unstable rather than fails
  • #798 - Named based constant cache invalidation
  • #797 - Fix for BigDecimal#/
  • #796 - Remove qualified const_get test
  • #795 - Invalidate constant cache if included module has constants
  • #794 - Fix String performance regression
  • #793 - Fix the timezone string parser so it won't choke on TZ=JST-9, etc.
  • #792 - jruby-1.7.3 Timeout is not working with long string and regexp.
  • #788 - jnr-constants update needed for JRuby 1.7.5
  • #787 - All command-line options should be configurable via JVM properties
  • #786 - Pack roundtrip through BER ( w ) yields incorrect type
  • #784 - add typecasting to RTEST macro
  • #780 - Tag intermittent spec failures
  • #775 - IPv4 stack should be preferred to IPv6
  • #773 - Resolv.getaddress fails w/ 'connect: name or service not known' on Windows
  • #772 - BigDecimal#hash returns different value for numerically equal numbers
  • #771 - Checking for size of outgoing and incoming edges of the vertex after removing a single edge
  • #768 - raise ArgumentError when IO.new/IO.open last argument is not a hash or nil
  • #766 - IO.sysopen accepts mode & permission that are nil
  • #764 - add support for options and not truncating offset for IO.write
  • #763 - binwrite should pass write only when options are not empty but don't have a "mode"
  • #760 - Remove a bad assert and untag some tests it was affecting
  • #759 - Implements #614
  • #758 - spec/regression/JRUBY-5811_case_insensitive_loaded_features_spec.rb fails on case-insensitive filesystem
  • #757 - Untag a number of passing specs
  • #756 - String#concat should preserve encoding
  • #754 - Added a missing 'y'.
  • #750 - Fix IOInputStream single-byte read
  • #749 - Fix dash_s_spec
  • #748 - Fix dash_c_spec
  • #747 - 1.7.4 Regression: Time::localtime broken
  • #746 - rake spec:compiler failing since ba4df82
  • #745 - Fix precision issues in Time by avoiding conversions to nanoseconds.
  • #744 - TypeError with Prime.each_with_index and mass assignment
  • #741 - Update OSGi classloader
  • #740 - Make Time#to_date compliant with MRI 1.9-2
  • #739 - Improve GzipReader#gets performance.
  • #738 - Added rake task for running IR specs
  • #736 - Dispatching a string through send to method_missing causes encoding to revert to ASCII
  • #735 - Synchronize profile printing.
  • #734 - Fix RubyString#byteslice on substring.
  • #732 - jline2 bundled jansi needs update after fixing security issue
  • #731 - strftime "-" flag affects more than one field at a time (inconsistent with MRI)
  • #730 - Fixing write specs
  • #727 - Fix string concatenation with a number as per rubyspec behaviour.
  • #723 - IO.copy_stream should handle objects that respond to read or write. Fixes #437
  • #722 - REFACTORING: supporting flag about receiving an offset or not.
  • #702 - Untag passing Marshal.dump specs
  • #694 - Regexp #== and #eql? is true if self does not specify /n option and other does and vise versa
  • #692 - Use hash rather than full sexp for cache key to significantly reduce mem...
  • #690 - Raise a RangeError when codepoint is invalid for the default internal encoding
  • #678 - TempFile#unlink - do not work if #close is not called right before, even if nothing has been done over the file.
  • #652 - BC Date (with ActiveSupport) regression
  • #648 - Division with BigDecimal not correct
  • #644 - Error in Division of BigDecimal
  • #641 - jruby/thread_dump fails in JRuby 1.7.2
  • #640 - Fixing hashing consistency across JVM instances.
  • #631 - About 60 RubySpecs fail if the entire suite is run.
  • #624 - Field annotations
  • #623 - Java classes with signatures should be reified
  • #614 - KindOf implementation using Class.isInstance() instead of instanceof
  • #603 - #caller returns `__send__' as one of the callers
  • #563 - Encoding error when parsing UTF-8 CSV in (1.7.3 - 1.9 mode)
  • #561 - Differences between XML string encoding in MRI and JRuby
  • #520 - New ng.exe required before release
  • #483 - Psych yaml parser can not parse uppercase ÄÖÜ but äöü can parse
  • #474 - YAML weirdness
  • #461 - String#encode hard errors without replacement for ASCII 8-bit range to multibyte
  • #460 - add multiple assignment support to java.util.Collection's Fixes #459
  • #456 - Marshal.load encoding error
  • #415 - Getting this error: "LocalJumpError: yield called out of block"
  • #406 - Gathering global thread backtraces fails often on CentOS with JRuby 1.7
  • #375 - String#encode fails with :invalid => :replace option
  • #332 - Open3.popen3 doesn't return a thread object in jruby 1.7.0-rc1
  • #302 - DRegexp creates too many transient objects
  • #264 - JRuby19mode behavior is different with CRuby. When Enumerator has mulltiple values for a block paramter.
  • #218 - rspec related out of bounds array access in multi-character string splitting
  • #168 - 1.9 mode runs "threaded reverse" bench slower than MRI

JRuby 1.7.4 Released

Thursday, May 16 2013

The JRuby community is pleased to announce the release of JRuby 1.7.4 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.4 is our fourth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - Dozens of 1.9-mode compatibility fixes - Many IO and encoding issues fixed - Transcoding support for :xml entity encoding - Proc and block dispatch perf improvements - Fiber and Enumerator#next improvements and fixes - Fixed a regression in windows java native launcher - Experimental Ruby 2.0 support (most features and stdlib included) - 90%+ complete Ripper support - OpenSSL fixes and updated to newer Bouncy Castle library - Updates and fixes to FFI subsystem (compat with C ext, AIX support, etc) - Long running regexp can be interrupted by Thread#kill and raise - 137 issues fixed for 1.7.4 Thanks to all contributors for this release: Alex Tambellini, Andrew Kiellor, Andy Lindeman, Anoop Sankar, Benoit Daloze, Bohuslav Kabrda, Charles Oliver Nutter, Daniel Noll, Dario Bertini, Gino Lucero, Hiro Asari, Iain Barnett, Isaiah Peng, Jake Goulding, James Pickering, Jeff Simpson, John Shahid, Jonathan Adams, Jose Donizetti, Kevin Menard, Mark McCraw, Martin Ott, Matt Wilson, Patrick Mahoney, Prathamesh Sonpatki, Robin Message, Ryan Blue, Sakumatti Luukkonen, Seth Wright, Subramanya Sastry, Sébastien Le Callonnec, Thomas E. Enebo, Uwe Kubosch, Vipul A M, Wayne Meissner, ryenus ### Jira Issues resolved for 1.7.4
  • JRUBY-7112 - Fiber exception handling regression in JRuby 1.7.3
  • JRUBY-7121 - String#encode(:xml => :attr) encoding differs from MRI
  • JRUBY-5742 - Fails to use UTF-8 encoded source with BOM.
  • JRUBY-7102 - Time.now == "" should return false and not nil
  • JRUBY-7117 - Dir.foreach should list entries in JAR root and in JAR directories ending in slash like "file:myjar!/test/"
  • JRUBY-7033 - yielding from fiber fails when running jruby with --debug
  • JRUBY-7127 - Ripper bug when parsing "::Object"
  • JRUBY-4820 - [windows] File.size is completely broken on Windows
  • JRUBY-6136 - Changing jnr-posix to use errno() value unconditionally has created lots of failures in windows
  • JRUBY-7122 - File.realpath does not handle classpath:/ path on Windows
  • JRUBY-7157 - IO.copy_stream broken for non-seekable source streams
  • JRUBY-7143 - FileUtils.cp, FileUtils.copy, FileUtils.copy_stream bug on windows when copying from jar files
  • JRUBY-7145 - FileUtils.mkdir_p creates extra directory named after drive letter
  • JRUBY-7161 - NPE in socket connection
  • JRUBY-7113 - Setting ssl_timeout on a Net::HTTP instance throws an exception
  • JRUBY-7130 - Missing support for Time.getlocal(utc_offset) method in JRuby
  • JRUBY-7134 - Dir.exists? sets $! when directory does not exist
### Github Issues resolved for 1.7.4
  • #737 - require_relative fails in jars
  • #733 - Inconsistency between MRI and JRuby with begin/rescue/else
  • #729 - Fixing IO.binwrite specs, parsing options.
  • #728 - Refactored directed graph specs
  • #726 - IO.binwrite doesn't truncate the file if an offset is given
  • #725 - IO.binwrite doesn't truncate the file if an offset is given
  • #724 - When offset passed return RandomAccessFile when not return FileOutputStream
  • #717 - Add fails tag to failing Kernel.spawn spec
  • #716 - Add fails tags for Process.{get,set}rlimit
  • #715 - Bignum#/ should not raise ZeroDivisionError if other is zero and is a Float
  • #714 - Some rubyspec additions
  • #712 - Complex#/ with a Numeric which responds to #real? with false should coerce the passed argument to Complex and divide the resulting elements
  • #711 - Exception#== should return true if the two exceptions inherit from Exception but have different classes
  • #709 - NullPointerException on calling java_* methods on java interface impl in Ruby
  • #708 - Fix failing rubyspecs for Encoding#compatible?
  • #707 - Kernel#singleton_methods should return a unique list of methods
  • #706 - Kernel#open should correctly handle objects that responds to to_open
  • #704 - Kernel.exec should raise an ArgumentError if the command includes a null byte
  • #703 - Kernel.abort should set the exception message to the given message
  • #701 - Untag passing Math.cbrt and Math.gamma specs
  • #700 - Numeric#div should raise ZeroDivisionError for 0
  • #699 - Range#each should raise a TypeError if the first element is a Time object
  • #698 - Range#first should raise an ArgumentError when count is negative
  • #697 - Supporting IO.ungetbyte
  • #696 - Regexp#initialize should raise a SecurityError on a Regexp literal
  • #695 - Regexp#options should include FIXEDENCODING and NOENCODING when enabled
  • #693 - using bytelist instead of a linkedlist for a better performance
  • #691 - Implement String#to_sym special cases.
  • #689 - Thread#initialize should raise a ThreadError when already initialized
  • #688 - Fixing IO.ungetc tagged specs!
  • #687 - Time methods should coerce the day, hour, minute, or second with #to_int
  • #686 - jcodings release needed for JRuby 1.7.4
  • #685 - REFACTORING: supporting a list of bytes
  • #684 - Fix some failing rubyspecs for String#encode
  • #683 - Fix unseekable stream implementation of IO.copy_stream in RubyIO.java
  • #682 - Verifying if character is corrupted, meaning that one more char is needed.
  • #681 - Untag passing float rubyspecs
  • #680 - StringIO#puts should print newline when passed nil 1 or more times
  • #679 - StringIO#set_encoding should set the encoding to default external when passed nil
  • #677 - TempFile path consistency vs the rest of the Ruby implementations
  • #676 - Fix eclipse problems
  • #675 - Fix failing rubyspecs for String#unpack
  • #674 - My stab at fixing JRUBY-7122
  • #673 - Remove required argument constraint from StringIO#readpartial
  • #672 - Fix Etc rubyspecs
  • #671 - Untag passing conditional variable rubyspecs
  • #669 - Fix BigDecimal#div rubyspecs
  • #668 - Fix float rounding issues.
  • #667 - Do not display class name for an anonymous struct.
  • #666 - LoadError#path not implemented
  • #665 - NameError for version when loading gemspec in 2.0 mode
  • #664 - GzipReader#rewind should reset the position of the stream pointer
  • #663 - Tempfile#size should return the size of self even if self is closed in 1.9
  • #662 - Add license header to anno package classes.
  • #661 - Bignum failing specs
  • #660 - Fixing IO.foreach rubyspec, set env variable $_ to nil
  • #659 - Ruby 2.0 Compatibility - NET:HTTP
  • #658 - Math.gamma should return -∞ for -0.0
  • #656 - Fix #645 by calling Java Math.cbrt directly.
  • #655 - Io foreach
  • #654 - [FFI] FFI::AutoPointer#free causes FFI::AutoPointer#autorelease? to cast NullPointerException
  • #653 - Ant integration causes exception trace on failed build
  • #651 - Kernel#__dir__ missing from 2.0 mode
  • #650 - File/IO readlines supporting new params limit, and open mode
  • #647 - Using Enumerable#cycle causes a background thread to be created but never destroyed.
  • #645 - Behavior of Jruby Math.cbrt(number) does not match MRI
  • #643 - FIXES #235 Fix for relative require from within a gem on the classpath.
  • #639 - Project files fix
  • #637 - Updated shared module dependencies.
  • #635 - remove double assignment and addition to 0
  • #634 - Implemented OpenSSL::PKCS7::write_smime
  • #630 - [FFI] Struct Arrays behave differently on JRuby vs FFI gem
  • #628 - OpenSSL::TestPKCS12 failure on OpenJDK 6
  • #627 - ant integration breaks with ant 1.9.0
  • #626 - jruby dies with fatal error on jdk8-ea-b83 on ubuntu
  • #622 - Added new option jruby.timeout.thread.pool.max to control the max number...
  • #617 - An object's ID is not copied
  • #615 - Restore $! when catching exception.
  • #613 - Ruby 2.0 caller API
  • #612 - [FFI] FFI::Struct.by_ref mapped type accepts arbitrary structs in it’s #to_native
  • #611 - Timeout worker pool size
  • #609 - Add support for Floats as the first argument in Time.at.
  • #608 - [FFI] FFI::Pointer#slice is not defined
  • #607 - [FFI] FFI::Pointer.size is not defined
  • #602 - RSpec 2.13 doesn't load in 2.0 mode
  • #601 - Ant integration DSL issue
  • #600 - Fixing RubyBasicObject#compareTo bug.
  • #599 - Recursive annotation visiting
  • #595 - Fixing build problem introduced by removing encryption jars
  • #591 - Time.new: the UTC offset is always negative
  • #590 - Consistent hash code values between JVM instances
  • #587 - AIX 6.1: stat.st_gid unsupported or native support failed to load
  • #583 - Method#parameters returning empty array for some Object methods
  • #580 - [windows][jruby-complete] Resolv.getaddress fails
  • #579 - Don't include imports from previously processed ruby files in every generated java file.
  • #578 - Update psych to edf05c9f40e0c566e391f7e04b4a30327c31a828
  • #575 - Require paths with .. in them are not normalized
  • #571 - Fix so require_relative can handle an absolute path.
  • #569 - Ruby 2.0: locations and caller APIs can take ranges now
  • #568 - [Ruby 2.0] Kernel#caller_locations
  • #566 - Ruby 2.0: Range#bsearch
  • #565 - Time.at broken in 1.7.3 when passed (Time, 0)
  • #556 - RbConfig.expand is missing
  • #554 - Fixes issue #549 (OpenSSL sockets spin indefinitely on timeout in handshake)
  • #553 - show build status from travis [ci skip]
  • #552 - Zlib::GzipWriter.wrap in 1.9 mode accepts only one argument
  • #551 - Fi JRUBY-5122_nonblocking_io_spec on Fedora 19 by raising chunk size
  • #550 - JRuby 1.7.3 breaks Sidekiq (DeadTaskErrors on startup)
  • #549 - OpenSSL sockets spin indefinitely on timeout in handshake
  • #546 - Remove unused call to `String#replaceAll()`.
  • #544 - replacing a hash with itself returns an empty hash in ruby 1.9 compatibility mode
  • #539 - Time::new should treat numeric offsets as the GMT offset in seconds.
  • #530 - JRuby is quick to show version number, slow to exit
  • #523 - Java integration failures in 1.9 mode
  • #522 - Generate new empty RubyString's with US-ASCII encoding.
  • #515 - Dir.foreach fails in jar files
  • #497 - JRuby behaves different from MRI and Rubinius when it comes to setting Module#name
  • #471 - File.directory? should handle IO's
  • #405 - jruby-1.7.0 Dir::tmpdir returns current directory if it is not world writable.
  • #189 - OpenSSL::SSL::SSLError when talking to github

JRuby 1.7.4 Released

Thursday, May 16 2013

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

JRuby 1.7.4 is our fourth update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • Dozens of 1.9-mode compatibility fixes
  • Many IO and encoding issues fixed
  • Transcoding support for :xml entity encoding
  • Proc and block dispatch perf improvements
  • Fiber and Enumerator#next improvements and fixes
  • Fixed a regression in windows java native launcher
  • Experimental Ruby 2.0 support (most features and stdlib included)
  • 90%+ complete Ripper support
  • OpenSSL fixes and updated to newer Bouncy Castle library
  • Updates and fixes to FFI subsystem (compat with C ext, AIX support, etc)
  • Long running regexp can be interrupted by Thread#kill and raise
  • 137 issues fixed for 1.7.4

Thanks to all contributors for this release:

Alex Tambellini, Andrew Kiellor, Andy Lindeman, Anoop Sankar, Benoit Daloze, Bohuslav Kabrda, Charles Oliver Nutter, Daniel Noll, Dario Bertini, Gino Lucero, Hiro Asari, Iain Barnett, Isaiah Peng, Jake Goulding, James Pickering, Jeff Simpson, John Shahid, Jonathan Adams, Jose Donizetti, Kevin Menard, Mark McCraw, Martin Ott, Matt Wilson, Patrick Mahoney, Prathamesh Sonpatki, Robin Message, Ryan Blue, Sakumatti Luukkonen, Seth Wright, Subramanya Sastry, Sébastien Le Callonnec, Thomas E. Enebo, Uwe Kubosch, Vipul A M, Wayne Meissner, ryenus

Jira Issues resolved for 1.7.4

  • JRUBY-7112 - Fiber exception handling regression in JRuby 1.7.3
  • JRUBY-7121 - String#encode(:xml => :attr) encoding differs from MRI
  • JRUBY-5742 - Fails to use UTF-8 encoded source with BOM.
  • JRUBY-7102 - Time.now == "" should return false and not nil
  • JRUBY-7117 - Dir.foreach should list entries in JAR root and in JAR directories ending in slash like "file:myjar!/test/"
  • JRUBY-7033 - yielding from fiber fails when running jruby with --debug
  • JRUBY-7127 - Ripper bug when parsing "::Object"
  • JRUBY-4820 - [windows] File.size is completely broken on Windows
  • JRUBY-6136 - Changing jnr-posix to use errno() value unconditionally has created lots of failures in windows
  • JRUBY-7122 - File.realpath does not handle classpath:/ path on Windows
  • JRUBY-7157 - IO.copy_stream broken for non-seekable source streams
  • JRUBY-7143 - FileUtils.cp, FileUtils.copy, FileUtils.copy_stream bug on windows when copying from jar files
  • JRUBY-7145 - FileUtils.mkdir_p creates extra directory named after drive letter
  • JRUBY-7161 - NPE in socket connection
  • JRUBY-7113 - Setting ssl_timeout on a Net::HTTP instance throws an exception
  • JRUBY-7130 - Missing support for Time.getlocal(utc_offset) method in JRuby
  • JRUBY-7134 - Dir.exists? sets $! when directory does not exist

Github Issues resolved for 1.7.4

  • #737 - require_relative fails in jars
  • #733 - Inconsistency between MRI and JRuby with begin/rescue/else
  • #729 - Fixing IO.binwrite specs, parsing options.
  • #728 - Refactored directed graph specs
  • #726 - IO.binwrite doesn't truncate the file if an offset is given
  • #725 - IO.binwrite doesn't truncate the file if an offset is given
  • #724 - When offset passed return RandomAccessFile when not return FileOutputStream
  • #717 - Add fails tag to failing Kernel.spawn spec
  • #716 - Add fails tags for Process.{get,set}rlimit
  • #715 - Bignum#/ should not raise ZeroDivisionError if other is zero and is a Float
  • #714 - Some rubyspec additions
  • #712 - Complex#/ with a Numeric which responds to #real? with false should coerce the passed argument to Complex and divide the resulting elements
  • #711 - Exception#== should return true if the two exceptions inherit from Exception but have different classes
  • #709 - NullPointerException on calling java_* methods on java interface impl in Ruby
  • #708 - Fix failing rubyspecs for Encoding#compatible?
  • #707 - Kernel#singleton_methods should return a unique list of methods
  • #706 - Kernel#open should correctly handle objects that responds to to_open
  • #704 - Kernel.exec should raise an ArgumentError if the command includes a null byte
  • #703 - Kernel.abort should set the exception message to the given message
  • #701 - Untag passing Math.cbrt and Math.gamma specs
  • #700 - Numeric#div should raise ZeroDivisionError for 0
  • #699 - Range#each should raise a TypeError if the first element is a Time object
  • #698 - Range#first should raise an ArgumentError when count is negative
  • #697 - Supporting IO.ungetbyte
  • #696 - Regexp#initialize should raise a SecurityError on a Regexp literal
  • #695 - Regexp#options should include FIXEDENCODING and NOENCODING when enabled
  • #693 - using bytelist instead of a linkedlist for a better performance
  • #691 - Implement String#to_sym special cases.
  • #689 - Thread#initialize should raise a ThreadError when already initialized
  • #688 - Fixing IO.ungetc tagged specs!
  • #687 - Time methods should coerce the day, hour, minute, or second with #to_int
  • #686 - jcodings release needed for JRuby 1.7.4
  • #685 - REFACTORING: supporting a list of bytes
  • #684 - Fix some failing rubyspecs for String#encode
  • #683 - Fix unseekable stream implementation of IO.copy_stream in RubyIO.java
  • #682 - Verifying if character is corrupted, meaning that one more char is needed.
  • #681 - Untag passing float rubyspecs
  • #680 - StringIO#puts should print newline when passed nil 1 or more times
  • #679 - StringIO#set_encoding should set the encoding to default external when passed nil
  • #677 - TempFile path consistency vs the rest of the Ruby implementations
  • #676 - Fix eclipse problems
  • #675 - Fix failing rubyspecs for String#unpack
  • #674 - My stab at fixing JRUBY-7122
  • #673 - Remove required argument constraint from StringIO#readpartial
  • #672 - Fix Etc rubyspecs
  • #671 - Untag passing conditional variable rubyspecs
  • #669 - Fix BigDecimal#div rubyspecs
  • #668 - Fix float rounding issues.
  • #667 - Do not display class name for an anonymous struct.
  • #666 - LoadError#path not implemented
  • #665 - NameError for version when loading gemspec in 2.0 mode
  • #664 - GzipReader#rewind should reset the position of the stream pointer
  • #663 - Tempfile#size should return the size of self even if self is closed in 1.9
  • #662 - Add license header to anno package classes.
  • #661 - Bignum failing specs
  • #660 - Fixing IO.foreach rubyspec, set env variable $_ to nil
  • #659 - Ruby 2.0 Compatibility - NET:HTTP
  • #658 - Math.gamma should return -∞ for -0.0
  • #656 - Fix #645 by calling Java Math.cbrt directly.
  • #655 - Io foreach
  • #654 - [FFI] FFI::AutoPointer#free causes FFI::AutoPointer#autorelease? to cast NullPointerException
  • #653 - Ant integration causes exception trace on failed build
  • #651 - Kernel#__dir__ missing from 2.0 mode
  • #650 - File/IO readlines supporting new params limit, and open mode
  • #647 - Using Enumerable#cycle causes a background thread to be created but never destroyed.
  • #645 - Behavior of Jruby Math.cbrt(number) does not match MRI
  • #643 - FIXES #235 Fix for relative require from within a gem on the classpath.
  • #639 - Project files fix
  • #637 - Updated shared module dependencies.
  • #635 - remove double assignment and addition to 0
  • #634 - Implemented OpenSSL::PKCS7::write_smime
  • #630 - [FFI] Struct Arrays behave differently on JRuby vs FFI gem
  • #628 - OpenSSL::TestPKCS12 failure on OpenJDK 6
  • #627 - ant integration breaks with ant 1.9.0
  • #626 - jruby dies with fatal error on jdk8-ea-b83 on ubuntu
  • #622 - Added new option jruby.timeout.thread.pool.max to control the max number...
  • #617 - An object's ID is not copied
  • #615 - Restore $! when catching exception.
  • #613 - Ruby 2.0 caller API
  • #612 - [FFI] FFI::Struct.by_ref mapped type accepts arbitrary structs in it’s #to_native
  • #611 - Timeout worker pool size
  • #609 - Add support for Floats as the first argument in Time.at.
  • #608 - [FFI] FFI::Pointer#slice is not defined
  • #607 - [FFI] FFI::Pointer.size is not defined
  • #602 - RSpec 2.13 doesn't load in 2.0 mode
  • #601 - Ant integration DSL issue
  • #600 - Fixing RubyBasicObject#compareTo bug.
  • #599 - Recursive annotation visiting
  • #595 - Fixing build problem introduced by removing encryption jars
  • #591 - Time.new: the UTC offset is always negative
  • #590 - Consistent hash code values between JVM instances
  • #587 - AIX 6.1: stat.st_gid unsupported or native support failed to load
  • #583 - Method#parameters returning empty array for some Object methods
  • #580 - [windows][jruby-complete] Resolv.getaddress fails
  • #579 - Don't include imports from previously processed ruby files in every generated java file.
  • #578 - Update psych to edf05c9f40e0c566e391f7e04b4a30327c31a828
  • #575 - Require paths with .. in them are not normalized
  • #571 - Fix so require_relative can handle an absolute path.
  • #569 - Ruby 2.0: locations and caller APIs can take ranges now
  • #568 - [Ruby 2.0] Kernel#caller_locations
  • #566 - Ruby 2.0: Range#bsearch
  • #565 - Time.at broken in 1.7.3 when passed (Time, 0)
  • #556 - RbConfig.expand is missing
  • #554 - Fixes issue #549 (OpenSSL sockets spin indefinitely on timeout in handshake)
  • #553 - show build status from travis [ci skip]
  • #552 - Zlib::GzipWriter.wrap in 1.9 mode accepts only one argument
  • #551 - Fi JRUBY-5122_nonblocking_io_spec on Fedora 19 by raising chunk size
  • #550 - JRuby 1.7.3 breaks Sidekiq (DeadTaskErrors on startup)
  • #549 - OpenSSL sockets spin indefinitely on timeout in handshake
  • #546 - Remove unused call to `String#replaceAll()`.
  • #544 - replacing a hash with itself returns an empty hash in ruby 1.9 compatibility mode
  • #539 - Time::new should treat numeric offsets as the GMT offset in seconds.
  • #530 - JRuby is quick to show version number, slow to exit
  • #523 - Java integration failures in 1.9 mode
  • #522 - Generate new empty RubyString's with US-ASCII encoding.
  • #515 - Dir.foreach fails in jar files
  • #497 - JRuby behaves different from MRI and Rubinius when it comes to setting Module#name
  • #471 - File.directory? should handle IO's
  • #405 - jruby-1.7.0 Dir::tmpdir returns current directory if it is not world writable.
  • #189 - OpenSSL::SSL::SSLError when talking to github

JRuby in Google Summer of Code 2013

Tuesday, April 16 2013

We're pleased to announce that JRuby has been accepted as a mentoring organization for [Google Summer of Code 2013](http://www.google-melange.com/gsoc/homepage/google/gsoc2013)! JRuby participated in last year's Google Summer of Code with eight excellent students. Projects ranged from serialization of our new intermediate representation to improved Android support via the Ruboto project. We're hoping to have another great batch of projects, students, and mentors this year. The [JRuby GSoC 2013 wiki page](https://github.com/jruby/jruby/wiki/Google-Summer-of-Code-2013) has all the practical details, including dates, contact information, and possible ideas. This week (until April 21) we're looking for mentors interested in helping a student over the summer. From April 22 to May 3, students can submit their proposals, and soon after that we'll get our slot allocations and select projects. If you are interested in mentoring a project, now's the time to get involved! Apply on the [JRuby GSoC organization page](https://google-melange.appspot.com/gsoc/org/google/gsoc2013/jruby). If you aren't interested in mentoring, please pass the word on to others! If you'd like to work on a project for JRuby as a student, you should start communicating with us on the [jruby-gsoc Google Group](https://groups.google.com/forum/#!forum/jruby-gsoc) today. We'll help you find a project that suits you and make sure you put together a complete proposal after April 22. You'll also apply on the [JRuby GSoC organization page](https://google-melange.appspot.com/gsoc/org/google/gsoc2013/jruby), but not until after April 21. If you're not a student or won't be able to participate...tell your friends we're looking for them! Google Summer of Code has been a really exciting and rewarding experience for the JRuby project, and we're looking forward to another excellent year.

JRuby in Google Summer of Code 2013

Tuesday, April 16 2013

We’re pleased to announce that JRuby has been accepted as a mentoring organization for Google Summer of Code 2013!

JRuby participated in last year’s Google Summer of Code with eight excellent students. Projects ranged from serialization of our new intermediate representation to improved Android support via the Ruboto project. We’re hoping to have another great batch of projects, students, and mentors this year.

The JRuby GSoC 2013 wiki page has all the practical details, including dates, contact information, and possible ideas. This week (until April 21) we’re looking for mentors interested in helping a student over the summer. From April 22 to May 3, students can submit their proposals, and soon after that we’ll get our slot allocations and select projects.

If you are interested in mentoring a project, now’s the time to get involved! Apply on the JRuby GSoC organization page. If you aren’t interested in mentoring, please pass the word on to others!

If you’d like to work on a project for JRuby as a student, you should start communicating with us on the jruby-gsoc Google Group today. We’ll help you find a project that suits you and make sure you put together a complete proposal after April 22. You’ll also apply on the JRuby GSoC organization page, but not until after April 21. If you’re not a student or won’t be able to participate…tell your friends we’re looking for them!

Google Summer of Code has been a really exciting and rewarding experience for the JRuby project, and we’re looking forward to another excellent year.

JRuby 1.7.3 Released

Thursday, February 21 2013

The JRuby community is pleased to announce the release of JRuby 1.7.3 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) **Alert** Please note the primary reason for putting out 1.7.3 was to address two security issues. Everyone should upgrade to 1.7.3 (details on security issues below). Note: This was a condensed release due to wanting to put out security fixes. If the bugs you are waiting for have not been fixed we will be fixing them for 1.7.4. JRuby 1.7.3 is our third update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests. Changes of note: - Security fix (no CVE) for DOS using entity expansion in REXML - Security fix (CVE-2013-0269) for unsafe object creation using JSON - Relicensed from CPL to EPL - Fixed one regression in windows java native launcher - A few encoding issues resolved - 42 issues fixed for 1.7.3 Note: These next two sections are write-ups by Aaron Patterson on the security issues. JRuby 1.7.3 fixes both of these issues. You only need to be aware of workarounds if it is impossible for you to update JRuby to version 1.7.3. ### Rexml DOS Fix #### Impact When reading text nodes from an XML document, the REXML parser can be coerced in to allocating extremely large string objects which can consume all of the memory on a machine, causing a denial of service. Impacted code will look something like this: document = REXML::Document.new some_xml_doc document.root.text When the `text` method is called, entities will be expanded. An attacker can send a relatively small XML document that, when the entities are resolved, will consume extreme amounts of memory on the target system. Note that this attack is similar to, but different from the Billion Laughs attack. This is also related to CVE-2013-1664. All users running an affected release should either upgrade or use one of the work arounds immediately. #### Workarounds If you cannot upgrade Ruby, use this monkey patch as a workaround: class REXML::Document @@entity_expansion_text_limit = 10_240 def self.entity_expansion_text_limit=( val ) @@entity_expansion_text_limit = val end def self.entity_expansion_text_limit @@entity_expansion_text_limit end end class REXML::Text def self.unnormalize(string, doctype=nil, filter=nil, illegal=nil) sum = 0 string.gsub( /\r\n?/, "\n" ).gsub( REFERENCE ) { s = self.expand($&, doctype, filter) if sum + s.bytesize > REXML::Document.entity_expansion_text_limit raise "entity expansion has grown too large" else sum += s.bytesize end s } end def self.expand(ref, doctype, filter) if ref[1] == ?# if ref[2] == ?x [ref[3...-1].to_i(16)].pack('U*') else [ref[2...-1].to_i].pack('U*') end elsif ref == '&' '&' elsif filter and filter.include?( ref[1...-1] ) ref elsif doctype doctype.entity( ref[1...-1] ) or ref else entity_value = DocType::DEFAULT_ENTITIES[ ref[1...-1] ] entity_value ? entity_value.value : ref end end end This monkey patch will limit the size of the entity substitutions to 10k per node. REXML already defaults to only allow 10000 entity substitutions per document, so the maximum amount of text that can be generated by entity substitution will be around 98 megabytes. ### JSON Security Fix CVE-2013-0269 #### Impact When parsing certain JSON documents, the JSON gem can be coerced in to creating Ruby symbols in a target system. Since Ruby symbols are not garbage collected, this can result in a denial of service attack. The same technique can be used to create objects in a target system that act like internal objects. These "act alike" objects can be used to bypass certain security mechanisms and can be used as a spring board for SQL injection attacks in Ruby on Rails. Impacted code looks like this: JSON.parse(user_input) Where the `user_input` variable will have a JSON document like this: {"json_class":"foo"} The JSON gem will attempt to look up the constant "foo". Looking up this constant will create a symbol. In JSON version 1.7.x, objects with arbitrary attributes can be created using JSON documents like this: {"json_class":"JSON::GenericObject","foo":"bar"} This document will result in an instance of JSON::GenericObject, with the attribute "foo" that has the value "bar". Instantiating these objects will result in arbitrary symbol creation and in some cases can be used to bypass security measures. PLEASE NOTE: this behavior *does not change* when using `JSON.load`. `JSON.load` should *never* be given input from unknown sources. If you are processing JSON from an unknown source, *always* use `JSON.parse`. All users running an affected release should either upgrade or use one of the work arounds immediately. #### Workarounds For users that cannot upgrade, please use the attached patches. If you cannot use the attached patches, change your code from this: JSON.parse(json) To this: JSON.parse(json, :create_additions => false) If you cannot change the usage of `JSON.parse` (for example you're using a gem which depends on `JSON.parse` like multi_json), then apply this monkey patch: module JSON class << self alias :old_parse :parse def parse(json, args = {}) args[:create_additions] = false old_parse(json, args) end end end ### Jira Issues resolved for 1.7.3
  • JRUBY-7058 - NPE in BiVariableMap.getLocalVarNames() after clear()
  • JRUBY-6887 - Thread.current.object_id inside an Enumerator is different from outside it
  • JRUBY-7048 - Kernel#gsub is not available when -p/-n command line option specified.
  • JRUBY-7068 - StringIO.open should accept any number of arguments
  • JRUBY-7069 - Dir.home(nil) should be my home
  • JRUBY-7079 - Uninitialized constant NameError should store a symbol and not a string
  • JRUBY-6793 - Update bouncycastle jars to the latest version. (1.47)
  • JRUBY-7081 - Thread.current does not remain consistent between Fibers
  • JRUBY-7091 - Infinity should not be roundable :)
  • JRUBY-7035 - Rails 4 master doesn't start on JRuby 1.7.1 (OpenSSL::PKCS5)
  • JRUBY-7001 - maven jruby-rake-plugin classpath goal fails on windows
  • JRUBY-7084 - Interaction between oh-my-zsh configuration and jruby shell script
### Github Issues resolved for 1.7.3
  • #537 - Add the complete text of the Eclipse Public License
  • #536 - Fix occasionally failing spec.
  • #534 - Fix Enumerable#find_each block arity
  • #533 - Default indy off for early IBM Java 7 releases #477
  • #532 - Current head switches on +indy before 1.7update14
  • #529 - Combination of Enumerable#each_slice and Array#transpose raises TypeError
  • #528 - fix samples/mvm.rb
  • #526 - Move to EPL from CPL
  • #525 - Unexpected behaviour of `Enumerator#find_index` with block (1.9 mode and HEAD)
  • #519 - nailgun missing in src package
  • #518 - Fix typos in "1.9/io/console.rb"
  • #517 - Rational/Float/Fixnum/Bignum `.to_s.encoding` is US-ASCII
  • #516 - krypt is not 1.8-compatible
  • #512 - Update json to 1.7.6
  • #511 - tty issue with drip
  • #508 - added Junit test to help fixing bug #7058
  • #506 - throw stringifies the name
  • #504 - Infinite loop (or performance issue) writing using MultiByteEncoding
  • #494 - FFI::MemoryPointer#free may cause JVM crashes
  • #492 - Add missing throw to default_internal=.
  • #485 - Resolve #482 Array#zip with infinite enum results in OOM
  • #482 - Combination of Array#zip and Array#cycle result in OOM
  • #479 - Fix write loss on concurrent ivar table growth
  • #477 - IBM J9 VM should also have INVOKEDYNAMIC_DEFAULT = false
  • #470 - Bignum#div raise ZeroDivisionError if the argument is Float zero
  • #466 - Bunch of fixes for IO.copy_stream
  • #465 - Add const_get to java package Fixes #435
  • #464 - [rfc] Support unmarshaling hashes created in MRI 1.9.1 with US-ASCII strings
  • #457 - Accept Encoding object for Encoding.compatible?
  • #435 - support for const_get() in java_package_module_template

JRuby 1.7.3 Released

Thursday, February 21 2013

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

Alert Please note the primary reason for putting out 1.7.3 was to address two security issues. Everyone should upgrade to 1.7.3 (details on security issues below).

Note: This was a condensed release due to wanting to put out security fixes. If the bugs you are waiting for have not been fixed we will be fixing them for 1.7.4.

JRuby 1.7.3 is our third update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The community participation lately has been great. Keep reporting issues and sending pull requests.

Changes of note:

  • Security fix (no CVE) for DOS using entity expansion in REXML
  • Security fix (CVE-2013-0269) for unsafe object creation using JSON
  • Relicensed from CPL to EPL
  • Fixed one regression in windows java native launcher
  • A few encoding issues resolved
  • 42 issues fixed for 1.7.3

Note: These next two sections are write-ups by Aaron Patterson on the security issues. JRuby 1.7.3 fixes both of these issues. You only need to be aware of workarounds if it is impossible for you to update JRuby to version 1.7.3.

Rexml DOS Fix

Impact

When reading text nodes from an XML document, the REXML parser can be coerced in to allocating extremely large string objects which can consume all of the memory on a machine, causing a denial of service.

Impacted code will look something like this:

document = REXML::Document.new some_xml_doc
document.root.text

When the text method is called, entities will be expanded. An attacker can send a relatively small XML document that, when the entities are resolved, will consume extreme amounts of memory on the target system.

Note that this attack is similar to, but different from the Billion Laughs attack. This is also related to CVE-2013-1664.

All users running an affected release should either upgrade or use one of the work arounds immediately.

Workarounds

If you cannot upgrade Ruby, use this monkey patch as a workaround:

class REXML::Document
  @@entity_expansion_text_limit = 10_240

  def self.entity_expansion_text_limit=( val )
    @@entity_expansion_text_limit = val
  end

  def self.entity_expansion_text_limit
    @@entity_expansion_text_limit
  end
end

class REXML::Text
  def self.unnormalize(string, doctype=nil, filter=nil, illegal=nil)
    sum = 0
    string.gsub( /\r\n?/, "\n" ).gsub( REFERENCE ) {
      s = self.expand($&, doctype, filter)
      if sum + s.bytesize > REXML::Document.entity_expansion_text_limit
        raise "entity expansion has grown too large"
      else
        sum += s.bytesize
      end
      s
    }
  end

  def self.expand(ref, doctype, filter)
    if ref[1] == ?#
      if ref[2] == ?x
        [ref[3...-1].to_i(16)].pack('U*')
      else
        [ref[2...-1].to_i].pack('U*')
      end
    elsif ref == '&amp;'
      '&'
    elsif filter and filter.include?( ref[1...-1] )
      ref
    elsif doctype
      doctype.entity( ref[1...-1] ) or ref
    else
      entity_value = DocType::DEFAULT_ENTITIES[ ref[1...-1] ]
      entity_value ? entity_value.value : ref
    end
  end
end

This monkey patch will limit the size of the entity substitutions to 10k per node. REXML already defaults to only allow 10000 entity substitutions per document, so the maximum amount of text that can be generated by entity substitution will be around 98 megabytes.

JSON Security Fix CVE-2013-0269

Impact

When parsing certain JSON documents, the JSON gem can be coerced in to creating Ruby symbols in a target system. Since Ruby symbols are not garbage collected, this can result in a denial of service attack.

The same technique can be used to create objects in a target system that act like internal objects. These “act alike” objects can be used to bypass certain security mechanisms and can be used as a spring board for SQL injection attacks in Ruby on Rails.

Impacted code looks like this:

JSON.parse(user_input)

Where the user_input variable will have a JSON document like this:

{"json_class":"foo"}

The JSON gem will attempt to look up the constant “foo”. Looking up this constant will create a symbol.

In JSON version 1.7.x, objects with arbitrary attributes can be created using JSON documents like this:

{"json_class":"JSON::GenericObject","foo":"bar"}

This document will result in an instance of JSON::GenericObject, with the attribute “foo” that has the value “bar”. Instantiating these objects will result in arbitrary symbol creation and in some cases can be used to bypass security measures.

PLEASE NOTE: this behavior does not change when using JSON.load. JSON.load should never be given input from unknown sources. If you are processing JSON from an unknown source, always use JSON.parse.

All users running an affected release should either upgrade or use one of the work arounds immediately.

Workarounds

For users that cannot upgrade, please use the attached patches. If you cannot use the attached patches, change your code from this:

JSON.parse(json)

To this:

JSON.parse(json, :create_additions => false)

If you cannot change the usage of JSON.parse (for example you’re using a gem which depends on JSON.parse like multi_json), then apply this monkey patch:

module JSON
  class << self
    alias :old_parse :parse
    def parse(json, args = {})
      args[:create_additions] = false
      old_parse(json, args)
    end
  end
end

Jira Issues resolved for 1.7.3

  • JRUBY-7058 - NPE in BiVariableMap.getLocalVarNames() after clear()
  • JRUBY-6887 - Thread.current.object_id inside an Enumerator is different from outside it
  • JRUBY-7048 - Kernel#gsub is not available when -p/-n command line option specified.
  • JRUBY-7068 - StringIO.open should accept any number of arguments
  • JRUBY-7069 - Dir.home(nil) should be my home
  • JRUBY-7079 - Uninitialized constant NameError should store a symbol and not a string
  • JRUBY-6793 - Update bouncycastle jars to the latest version. (1.47)
  • JRUBY-7081 - Thread.current does not remain consistent between Fibers
  • JRUBY-7091 - Infinity should not be roundable :)
  • JRUBY-7035 - Rails 4 master doesn't start on JRuby 1.7.1 (OpenSSL::PKCS5)
  • JRUBY-7001 - maven jruby-rake-plugin classpath goal fails on windows
  • JRUBY-7084 - Interaction between oh-my-zsh configuration and jruby shell script

Github Issues resolved for 1.7.3

  • #537 - Add the complete text of the Eclipse Public License
  • #536 - Fix occasionally failing spec.
  • #534 - Fix Enumerable#find_each block arity
  • #533 - Default indy off for early IBM Java 7 releases #477
  • #532 - Current head switches on +indy before 1.7update14
  • #529 - Combination of Enumerable#each_slice and Array#transpose raises TypeError
  • #528 - fix samples/mvm.rb
  • #526 - Move to EPL from CPL
  • #525 - Unexpected behaviour of `Enumerator#find_index` with block (1.9 mode and HEAD)
  • #519 - nailgun missing in src package
  • #518 - Fix typos in "1.9/io/console.rb"
  • #517 - Rational/Float/Fixnum/Bignum `.to_s.encoding` is US-ASCII
  • #516 - krypt is not 1.8-compatible
  • #512 - Update json to 1.7.6
  • #511 - tty issue with drip
  • #508 - added Junit test to help fixing bug #7058
  • #506 - throw stringifies the name
  • #504 - Infinite loop (or performance issue) writing using MultiByteEncoding
  • #494 - FFI::MemoryPointer#free may cause JVM crashes
  • #492 - Add missing throw to default_internal=.
  • #485 - Resolve #482 Array#zip with infinite enum results in OOM
  • #482 - Combination of Array#zip and Array#cycle result in OOM
  • #479 - Fix write loss on concurrent ivar table growth
  • #477 - IBM J9 VM should also have INVOKEDYNAMIC_DEFAULT = false
  • #470 - Bignum#div raise ZeroDivisionError if the argument is Float zero
  • #466 - Bunch of fixes for IO.copy_stream
  • #465 - Add const_get to java package Fixes #435
  • #464 - [rfc] Support unmarshaling hashes created in MRI 1.9.1 with US-ASCII strings
  • #457 - Accept Encoding object for Encoding.compatible?
  • #435 - support for const_get() in java_package_module_template

JRuby 1.7.2 Released

Friday, January 04 2013

The JRuby community is pleased to announce the release of JRuby 1.7.2 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.2 is our second update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release. Changes of note: - Reworked openssl ext to allow updating from gem - Improved performance of constants and global variables - Improved performance of Java arrays accessed from Ruby - Many miscellaneous 1.9 compatibility fixes - 32 issues fixed for 1.7.2 ### Jira Issues resolved for 1.7.2
  • JRUBY-6973 - Release jruby-openssl-0.8.0 gem
  • JRUBY-7039 - net/protocol in Ruby 1.8 mode loads Ruby 1.9 version of socket
  • JRUBY-6951 - Unable to encrypt data and then decrypt it in MRI Ruby
  • JRUBY-7017 - OpenSSL::HMAC transcodes data to iso-8895-1 before signing
  • JRUBY-7018 - sha1 library file, SHA1 top level class, and sha1 class method missing in Ruby 1.8 mode
  • JRUBY-7032 - Time#strftime %3N doesn't limit sub-seconds to 3 digits
  • JRUBY-7029 - add_parameter_annotation broken
  • JRUBY-7037 - Files containing literal '[' or ']' will not be required from LOAD_PATH
  • JRUBY-6953 - --ng-server fails if you have JRUBY_OPTS set
  • JRUBY-7046 - unable to copy files > 2GB
  • JRUBY-7043 - Test failures, again.
  • JRUBY-7016 - There's a "t" missing in the output from --profile.json
### Github Issues resolved for 1.7.2
  • #473 - File.truncate should not move write pointer
  • #467 - glib2 doesn't compile under jruby 1.9.7
  • #452 - Implement loaded feature caching to reduce load path searching.
  • #447 - Javadocs mangles some HTML in org.jruby.util.Pack
  • #445 - Requiring an empty string causes AIOOB with RubyGems active
  • #441 - jruby-7029: fix add_parameter_annotation, it was untested and broken.
  • #440 - Constant lookup falls off top scope in new compiler scoping logic
  • #439 - String#upcase and downcase fail for multibyte characters
  • #436 - Fix Readline.get_screen_size before Readline.readline
  • #434 - Update psych to tenderlove/psych@d5757ea
  • #433 - strftime does not implement %-flag in 1.8 mode.
  • #431 - Include runtime version in site dir
  • #429 - Setup .gitattributes for eol normalization
  • #428 - Directed graph library specs
  • #427 - Don't override default_exec_format method for rubygems
  • #426 - Trie impl is slower on JRuby than other Rubies
  • #425 - Fixed implicitly creating a vertex if it is absent while removing a edge or vertex
  • #360 - Non-ASCII character escape sequence in string_content results in SyntaxError
  • #215 - 10 argument variant of `Time.local` mishandles timezone.
  • #174 - [JRUBY-6668] StringScanner#scan_until spins forever on UTF-8 data

JRuby 1.7.2 Released

Friday, January 04 2013

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

JRuby 1.7.2 is our second update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release.

Changes of note:

  • Reworked openssl ext to allow updating from gem
  • Improved performance of constants and global variables
  • Improved performance of Java arrays accessed from Ruby
  • Many miscellaneous 1.9 compatibility fixes
  • 32 issues fixed for 1.7.2

Jira Issues resolved for 1.7.2

  • JRUBY-6973 - Release jruby-openssl-0.8.0 gem
  • JRUBY-7039 - net/protocol in Ruby 1.8 mode loads Ruby 1.9 version of socket
  • JRUBY-6951 - Unable to encrypt data and then decrypt it in MRI Ruby
  • JRUBY-7017 - OpenSSL::HMAC transcodes data to iso-8895-1 before signing
  • JRUBY-7018 - sha1 library file, SHA1 top level class, and sha1 class method missing in Ruby 1.8 mode
  • JRUBY-7032 - Time#strftime %3N doesn't limit sub-seconds to 3 digits
  • JRUBY-7029 - add_parameter_annotation broken
  • JRUBY-7037 - Files containing literal '[' or ']' will not be required from LOAD_PATH
  • JRUBY-6953 - --ng-server fails if you have JRUBY_OPTS set
  • JRUBY-7046 - unable to copy files > 2GB
  • JRUBY-7043 - Test failures, again.
  • JRUBY-7016 - There's a "t" missing in the output from --profile.json

Github Issues resolved for 1.7.2

  • #473 - File.truncate should not move write pointer
  • #467 - glib2 doesn't compile under jruby 1.9.7
  • #452 - Implement loaded feature caching to reduce load path searching.
  • #447 - Javadocs mangles some HTML in org.jruby.util.Pack
  • #445 - Requiring an empty string causes AIOOB with RubyGems active
  • #441 - jruby-7029: fix add_parameter_annotation, it was untested and broken.
  • #440 - Constant lookup falls off top scope in new compiler scoping logic
  • #439 - String#upcase and downcase fail for multibyte characters
  • #436 - Fix Readline.get_screen_size before Readline.readline
  • #434 - Update psych to tenderlove/psych@d5757ea
  • #433 - strftime does not implement %-flag in 1.8 mode.
  • #431 - Include runtime version in site dir
  • #429 - Setup .gitattributes for eol normalization
  • #428 - Directed graph library specs
  • #427 - Don't override default_exec_format method for rubygems
  • #426 - Trie impl is slower on JRuby than other Rubies
  • #425 - Fixed implicitly creating a vertex if it is absent while removing a edge or vertex
  • #360 - Non-ASCII character escape sequence in string_content results in SyntaxError
  • #215 - 10 argument variant of `Time.local` mishandles timezone.
  • #174 - [JRUBY-6668] StringScanner#scan_until spins forever on UTF-8 data

JRuby 1.7.1. Released

Monday, December 03 2012

The JRuby community is pleased to announce the release of JRuby 1.7.1 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) JRuby 1.7.1 is our first update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release. We also addressed security vulnerability CVE-2012-5370 and stopped using MurmurHash2 as our hashing algorithm (now using same Hashing algorithm as Perl). All users are recommended to upgrade to JRuby 1.7.1. Changes of note: - New hashing algorithm to address CVE-2012-5370 - Update standard lib to match MRI patchlevel 1.9.3p327 - Several fixes to new io/console.rb implementation - system/spawn/popen fixes and additional options hash fixes - Several SSL fixes (jruby-openssl release coming soon for 1.6.8 users) - IO.select not erroneously reporting data to be read - Psych YAML engine updated to latest - 43 issues fixed since 1.7.0 ### Jira Issues resolved since 1.7.0
  • [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
  • [JRUBY-5986] - $! is not set to nil in an ensure block where no exception is raised
  • [JRUBY-6339] - JRuby can't load from JAR files on a path with a '#' symbol (breaks Tomcat 7 Parallel Deployment)
  • [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
  • [JRUBY-6391] - undefined method `write_nonblock' for OpenSSL::SSL::SSLSocket
  • [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
  • [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
  • [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
  • [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
  • [JRUBY-6870] - IO.select says there is data but read_nonblock raises 'read would raise' using SSLSocket
  • [JRUBY-6949] - system() silently fails when options are passed
  • [JRUBY-6954] - Time.new does not respect UTC offset in the 7-argument form
  • [JRUBY-6960] - Failure to start ant from JRuby 1.7.0*
  • [JRUBY-6961] - Loading jruby-openssl gem on jruby-1.7.0 can cause "private method `verify_mode' called for #<OpenSSL::SSL::SSLContext..." error
  • [JRUBY-6962] - Unimplemented methods OpenSSL::PKCS7#type=, OpenSSL::PKCS7#add_data
  • [JRUBY-6963] - PKCS7 structures that have their content encapsulated in a sequence are not imported correctly
  • [JRUBY-6964] - DateTime#to_time creates wrong Time objects sometimes
  • [JRUBY-6978] - try/rescue should treat native Exceptions like rubys StandardError
  • [JRUBY-6983] - UNIXServer.open ignores the block arg
  • [JRUBY-6984] - OpenSSL::X509::Name.parse raises NullPointerException
  • [JRUBY-6987] - Ruboto build failures with recent master
  • [JRUBY-6994] - exec() in chdir block doesn't inherit cwd
  • [JRUBY-6995] - Raising an Exception from #each wrapped in Enumerator.new results in StopIteration
  • [JRUBY-6997] - Newline in UTF-16 (BE and LE) incorrect under windows
  • [JRUBY-6998] - IO::NULL undefined (should be === File::NULL)
  • [JRUBY-6999] - Encoding from Windows-1252 to UTF-8 results in transcoding error
  • [JRUBY-7000] - to_path should be unconditional
  • [JRUBY-7002] - File.join does not handle '\' on Unix systems properly
  • [JRUBY-7004] - Implement Etc.sysconfdir and Etc.systmpdir
  • [JRUBY-7008] - Undefined method `search_convpath' for Encoding::Converter:Class
  • [JRUBY-6935] - Update 1.9 stdlib to p286
  • [JRUBY-6976] - byte[] should have a to_s method
### Github Issues closed since 1.7.0:
  • #404 Use canonical_name instead of full_name
  • #400 Update 'json' library.
  • #398 JRuby 1.7.0 unix sockets - 100% CPU - worked in preview2
  • #390 New FFI::IO.for_fd fails on Linux (and possibly other platforms)
  • #207 JRuby 1.7 Bundles Invalid Bouncy Castle Security Provider openssl
  • #198 Inheriting from BigDecimal returns incorrect class
  • #349 Improved support for Server Name Indication (SNI)
  • #178 JRUBY-2724: I've added some tests and I tried to fix unc pathing
  • #326 JSON format profile printer (additions)
  • #313 Math.atan 0.0/0.0 core

JRuby 1.7.1. Released

Monday, December 03 2012

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

JRuby 1.7.1 is our first update release since JRuby 1.7.0. The primary goal of 1.7 point releases is to fill out any missing compatibility issues with Ruby 1.9.3. The feedback we have gotten (along with patches) has ended up being a subtantial release.

We also addressed security vulnerability CVE-2012-5370 and stopped using MurmurHash2 as our hashing algorithm (now using same Hashing algorithm as Perl). All users are recommended to upgrade to JRuby 1.7.1.

Changes of note:

  • New hashing algorithm to address CVE-2012-5370
  • Update standard lib to match MRI patchlevel 1.9.3p327
  • Several fixes to new io/console.rb implementation
  • system/spawn/popen fixes and additional options hash fixes
  • Several SSL fixes (jruby-openssl release coming soon for 1.6.8 users)
  • IO.select not erroneously reporting data to be read
  • Psych YAML engine updated to latest
  • 43 issues fixed since 1.7.0

Jira Issues resolved since 1.7.0

  • [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
  • [JRUBY-5986] - $! is not set to nil in an ensure block where no exception is raised
  • [JRUBY-6339] - JRuby can't load from JAR files on a path with a '#' symbol (breaks Tomcat 7 Parallel Deployment)
  • [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
  • [JRUBY-6391] - undefined method `write_nonblock' for OpenSSL::SSL::SSLSocket
  • [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
  • [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
  • [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
  • [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
  • [JRUBY-6870] - IO.select says there is data but read_nonblock raises 'read would raise' using SSLSocket
  • [JRUBY-6949] - system() silently fails when options are passed
  • [JRUBY-6954] - Time.new does not respect UTC offset in the 7-argument form
  • [JRUBY-6960] - Failure to start ant from JRuby 1.7.0*
  • [JRUBY-6961] - Loading jruby-openssl gem on jruby-1.7.0 can cause "private method `verify_mode' called for #<OpenSSL::SSL::SSLContext..." error
  • [JRUBY-6962] - Unimplemented methods OpenSSL::PKCS7#type=, OpenSSL::PKCS7#add_data
  • [JRUBY-6963] - PKCS7 structures that have their content encapsulated in a sequence are not imported correctly
  • [JRUBY-6964] - DateTime#to_time creates wrong Time objects sometimes
  • [JRUBY-6978] - try/rescue should treat native Exceptions like rubys StandardError
  • [JRUBY-6983] - UNIXServer.open ignores the block arg
  • [JRUBY-6984] - OpenSSL::X509::Name.parse raises NullPointerException
  • [JRUBY-6987] - Ruboto build failures with recent master
  • [JRUBY-6994] - exec() in chdir block doesn't inherit cwd
  • [JRUBY-6995] - Raising an Exception from #each wrapped in Enumerator.new results in StopIteration
  • [JRUBY-6997] - Newline in UTF-16 (BE and LE) incorrect under windows
  • [JRUBY-6998] - IO::NULL undefined (should be === File::NULL)
  • [JRUBY-6999] - Encoding from Windows-1252 to UTF-8 results in transcoding error
  • [JRUBY-7000] - to_path should be unconditional
  • [JRUBY-7002] - File.join does not handle '\' on Unix systems properly
  • [JRUBY-7004] - Implement Etc.sysconfdir and Etc.systmpdir
  • [JRUBY-7008] - Undefined method `search_convpath' for Encoding::Converter:Class
  • [JRUBY-6935] - Update 1.9 stdlib to p286
  • [JRUBY-6976] - byte[] should have a to_s method

Github Issues closed since 1.7.0:

  • #404 Use canonical_name instead of full_name
  • #400 Update 'json' library.
  • #398 JRuby 1.7.0 unix sockets - 100% CPU - worked in preview2
  • #390 New FFI::IO.for_fd fails on Linux (and possibly other platforms)
  • #207 JRuby 1.7 Bundles Invalid Bouncy Castle Security Provider openssl
  • #198 Inheriting from BigDecimal returns incorrect class
  • #349 Improved support for Server Name Indication (SNI)
  • #178 JRUBY-2724: I've added some tests and I tried to fix unc pathing
  • #326 JSON format profile printer (additions)
  • #313 Math.atan 0.0/0.0 core

JRuby 1.7.0. Released

Monday, October 22 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) After a long journey (1.5 years..oh my) we have released JRuby 1.7.0. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And JRuby now defaults to 1.9 mode, with compatibility level targeting Ruby 1.9.3. We know that there are still pieces of 1.9 support we don't have yet, like Ripper, but we are at a stable point where people can use JRuby in 1.9 mode to host production applications. At this point, we plan on putting out point releases of 1.7.x every 2-3 weeks for the foreseeable future. These point releases will be made to address any reported problems users run into; and also to fill out the few missing 1.9 libraries not yet finished. JRuby 1.7 is the first JRuby to support the new "invokedynamic" feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning - 1\.9\.3 is now our default runtime mode (--1\.8 is needed for 1\.8\.7 support) - Ruby standard library updated to 1.9.3p286 - Many 1.9.x compatibility fixes - Support for invokedynamic - Performance and concurrency improvements throughout - Java 5 support dropped (Java 6+ required) - All known 1.9 encoding issues resolved - Kernel#exec now does a true native exec on all platforms - Improvements and fixes to Java integration and embedding - Native features now better supported on Solaris, ARM Linux, and others - Update to Rubygems 1.8.24 - Update to Rake 0.9.2.2 ### Issues resolved since RC2:
  • [JRUBY-3294] - Ruby code can make JRuby fail with java.lang.ArrayIndexOutOfBoundsException, Stack trace of SystemStackError is errorneous
  • [JRUBY-6732] - FFI+InvokeDynamic and wrong number of arguments produces java backtrace
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [JRUBY-6811] - Time.at rounding errors below milliseconds
  • [JRUBY-6845] - FFI: IndexError in AbstractMemory#write_string
  • [JRUBY-6857] - Upgrade to newer Joda-time version
  • [JRUBY-6904] - IO.popen '' throws wrong exception
  • [JRUBY-6907] - Regression: ruby,java(thread),ruby exception path results in nilClass exception
  • [JRUBY-6917] - "already initialized constant ClassReader" when embedding JRuby
  • [JRUBY-6923] - UTF-8 string is not matching //i properly
  • [JRUBY-6926] - zlib corruption in 1.9 mode
  • [JRUBY-6930] - yaml escaping of non-printable characters
  • [JRUBY-6932] - ruby block without arguments for itemStateChanged in 1.9 can fail
  • [JRUBY-6933] - String#split fails after doing a regex on UTF-8 chars.
  • [JRUBY-6936] - JRuby doesn't seem to run on ARMv5-platform
  • [JRUBY-6937] - unable to use JAVA_HOME pointed to a jre in windows 7
  • [JRUBY-6946] - Object.id still exists in 1.7.0.RC2
  • [JRUBY-6947] - Call to "free" wrapped up via FFI causes JVM to exit with a malloc error.
  • [JRUBY-6952] - Time#+ gives off-by-one error with fractional microseconds
  • [JRUBY-6906] - error message for Process.kill 'EXIT' is wrong
### Jira Issues resolved for RC2:
  • [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
  • [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
  • [JRUBY-6510] - String#encode! not correctly implemented.
  • [JRUBY-6804] - Jruby cannot work with sendmail in a rails environment (or IO.popen does not function in jruby)
  • [JRUBY-6838] - Kernel#rand(Range) not supported
  • [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
  • [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
  • [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
  • [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
  • [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars
  • [JRUBY-6942] - gets returns nil very early in the process lifetime.
  • [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
  • [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.
### Jira Issues resolved for RC1:
  • [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
  • [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
  • [JRUBY-5318] - syntax error in jruby unix startup
  • [JRUBY-5583] - Profiling should not bomb out trying to find method name
  • [JRUBY-5615] - __FILE__ corrupts cyrillic characters
  • [JRUBY-5623] - Enumerable doesn't wrap objects properly
  • [JRUBY-5675] - Difference in include behaviour in --1.9 mode
  • [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
  • [JRUBY-5700] - Segmentation fault - IBM JDK
  • [JRUBY-5804] - First call of Time.now is slow and confuses benchmark result
  • [JRUBY-5848] - jruby-core maven artifact has broken dependencies
  • [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
  • [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
  • [JRUBY-6074] - Re-release jruby-win32ole with Java 5
  • [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
  • [JRUBY-6360] - invokedynamic performance degradation on a certain workload
  • [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
  • [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
  • [JRUBY-6578] - File.readlink with chdir
  • [JRUBY-6595] - segfault with win32/registry
  • [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
  • [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
  • [JRUBY-6773] - ERB parsing in JRuby 1.6.6
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
  • [JRUBY-6824] - Missing files/dirs in source tarball/zip
  • [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
  • [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
  • [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
  • [JRUBY-6831] - Enumerator combined with reduce using symbols fails
  • [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
  • [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
  • [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
  • [JRUBY-6837] - Encoding Problems in Rails 3.2
  • [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
  • [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
  • [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
  • [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
  • [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
  • [JRUBY-6852] - Setting compile mode when using ScriptingContainer
  • [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
  • [JRUBY-6855] - Signal.list missing 'KILL' on Windows
  • [JRUBY-6858] - OpenSSL::HMAC missing reset method
  • [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
  • [JRUBY-6860] - String#slice on strings with multibyte chars fails
  • [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
  • [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
  • [JRUBY-6867] - Parsing issues with long lines
  • [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
  • [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
  • [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
  • [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
  • [JRUBY-6884] - Unexpected stack trace using ARM based linux
  • [JRUBY-6885] - method_missing and private methods behave differently
  • [JRUBY-6888] - Loading a newer joda-time seems to not work
  • [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
  • [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
  • [JRUBY-6896] - nil treated as 0 in call to Thread#join
  • [JRUBY-4516] - Load a properties file for distribution-presets
  • [JRUBY-4517] - Allow property to override the binary directory
  • [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
  • [JRUBY-6275] - double locking a mutex could use a better error message, line number
  • [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only
  • [JRUBY-6835] - A way to send a block of code across processes.
  • [JRUBY-6883] - Enable subclassing of Java classes on Dalvik
### Jira Issues resolved for preview2:
  • [JRUBY-4107] - Java method selection is subject to reflection ordering
  • [JRUBY-5053] - memory leak in rubygems
  • [JRUBY-5082] - exec() would be more useful if it really exec()ed
  • [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
  • [JRUBY-5691] - gem update --system wipes out RubyGems Maven support
  • [JRUBY-5753] - Library `fcntl' can not be loaded on Solaris/Weblogic (JRuby 1.6.1) -> NullPointerException
  • [JRUBY-5785] - BUG: invoking UndefinedMethod.call
  • [JRUBY-5899] - NotImplementedError: Process::Status#exited? not implemented
  • [JRUBY-5902] - STDIN.gets under cygwin doesn't work
  • [JRUBY-5939] - [:space:] does not match unicode 0x3000: fullwidth whitespace
  • [JRUBY-6024] - Platform.getPackageName() NPE when embedded.
  • [JRUBY-6056] - High CPU Loop with parallel Etc.group iterrations
  • [JRUBY-6121] - Local variables cross eval scopes
  • [JRUBY-6124] - Yielding no values to a block gives ArrayIndexOutOfBoundsException
  • [JRUBY-6125] - Yielding a single object to a block with |a, b| arguments does not call #to_ary
  • [JRUBY-6148] - UnsatisfiedLinkError on Solaris
  • [JRUBY-6181] - SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)
  • [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
  • [JRUBY-6253] - IBM JVM rejects class/method names with #, as in our JIT recently.
  • [JRUBY-6286] - jnr-posix WindowsHelpers.isBatch Always Returns False
  • [JRUBY-6299] - Slow perf in String#split or #join on 1.9 mode
  • [JRUBY-6317] - YAML can't parse some valid unicode characters
  • [JRUBY-6330] - Performance degradation in Time.strptime with invokedynamic
  • [JRUBY-6376] - File.stat.size on Solaris: ridiculously large results
  • [JRUBY-6395] - Coerce Fixnum to Number
  • [JRUBY-6428] - Regression: Float#to_d doesn't work on 1.7 (did in 1.6)
  • [JRUBY-6459] - JRuby head causes rack response to change behaviour
  • [JRUBY-6465] - out of memory building c extensions
  • [JRUBY-6481] - AccessControl exceptions attempting to create JRuby instances in applet
  • [JRUBY-6493] - Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body
  • [JRUBY-6494] - File#directory? always returns false on Solaris
  • [JRUBY-6495] - java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException
  • [JRUBY-6514] - java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException
  • [JRUBY-6521] - With Java 7, nailgun client cannot list local gems more than once
  • [JRUBY-6525] - FFI bug with Solaris JRuby >=1.6.6
  • [JRUBY-6532] - ftp.nlst, ftp.ls doesn't work on JDK 7u3
  • [JRUBY-6548] - REXML error when reading files containing ISO-8859-1 encoded data
  • [JRUBY-6552] - File.directory? does not work under 1.9 mode on Solaris
  • [JRUBY-6553] - Application continues running after throwing out of memory exception in Thread.
  • [JRUBY-6613] - special characters like umlauts make Kramdown hang (works with MRI Rubies)
  • [JRUBY-6615] - File.open ignores specified external encoding
  • [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
  • [JRUBY-6638] - Multicast UDPSocket send does not work with host and port
  • [JRUBY-6639] - Marshal.load takes forever when deserializing Rails unicode db in WEBrick
  • [JRUBY-6658] - Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry
  • [JRUBY-6663] - `jruby -S bundle exec rails c` fails with "Bundler: command not found"
  • [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
  • [JRUBY-6666] - Open3.popen3 failing due to missing handling for [path, argv[0]] array
  • [JRUBY-6674] - Inconsistent java method/signature choosing depending on java version/platform
  • [JRUBY-6677] - open("|something", "w") does not open in write mode
  • [JRUBY-6678] - compilation fails for CC="ccache gcc"
  • [JRUBY-6679] - Encoding.default_external discrepancy between JRuby and MRI
  • [JRUBY-6682] - ' jgem search -r ak ' causes exceptions.
  • [JRUBY-6685] - Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows
  • [JRUBY-6686] - JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod
  • [JRUBY-6693] - Get the terminal width with JRuby
  • [JRUBY-6694] - Invalid byte sequence in utf-8
  • [JRUBY-6701] - Net::HTTP ignore JSE defined HTTP Proxy options
  • [JRUBY-6702] - File.utime does not check file permissions
  • [JRUBY-6703] - Remove Enumerable#join from 1.9 mode
  • [JRUBY-6705] - Error during gem loading in Rails: ActiveRecord is not missing constant Base
  • [JRUBY-6706] - Collections.shuffle works incorreclty on Ruby arrays
  • [JRUBY-6707] - JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree
  • [JRUBY-6708] - NullPointerException instead of proper exceptions output
  • [JRUBY-6709] - ffi problems on 1.7.0.preview1?
  • [JRUBY-6711] - JRuby 1.7 needs a formal release of jline
  • [JRUBY-6713] - win32/registry.rb warning
  • [JRUBY-6715] - jruby-openssl cert validation fails on windows
  • [JRUBY-6717] - jruby1.7.0preview1 doesn't work on Windows with jdk7
  • [JRUBY-6718] - crash with java.lang.invoke.WrongMethodTypeException
  • [JRUBY-6721] - probably extraneous warning message generated
  • [JRUBY-6722] - Can't instantiate ThreadGroup subclass with arguments
  • [JRUBY-6724] - NO_FILE_CLASS Profile does disables File but not FileStats that depends on File
  • [JRUBY-6725] - NameError: uninitialized constant RubyVM
  • [JRUBY-6729] - [1.9] block argument to yield method is not correctly pass to a block. -- pp's seplist method
  • [JRUBY-6731] - Can't load class files in WARs compiled by warbler using jruby 1.7.0.preview1
  • [JRUBY-6734] - Socket.new seems broken -- throws exceptions on valid params
  • [JRUBY-6735] - FileUtils.chmod broken for symlinks
  • [JRUBY-6737] - Cannot use rspec with JRuby 1.7
  • [JRUBY-6739] - Does not read UTF-16 properly
  • [JRUBY-6740] - BasicObject.respond_to? raises a "undefined method `respond_to_missing?'"
  • [JRUBY-6741] - Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux
  • [JRUBY-6742] - ant dist aborts on non-Mac hosts
  • [JRUBY-6745] - ClassCastException calling Fixnum#== with a Java Integer
  • [JRUBY-6746] - OpenSSL 'connect_nonblock' missing/broken in 1.6.7 and 1.7.0.preview1
  • [JRUBY-6748] - Race condition still in thread list
  • [JRUBY-6753] - class_eval should inherit __name__ from the caller
  • [JRUBY-6755] - Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)
  • [JRUBY-6760] - ArgumentError output
  • [JRUBY-6761] - NoMethodError: undefined method `recvfrom' for #<Socket:fd>
  • [JRUBY-6764] - Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.
  • [JRUBY-6766] - --profile slows down Array#join , which distorts profiling results
  • [JRUBY-6768] - Instance variable value is lost under certain circumstances
  • [JRUBY-6769] - Curried lambda/proc does not work correctly with Array.map
  • [JRUBY-6774] - wrong exception class thrown when opening file after Dir.chdir
  • [JRUBY-6775] - RubyRandom is not thread-safe
  • [JRUBY-6776] - Array#join(nil) should use $, as a separator for compatibility
  • [JRUBY-6778] - Possible long integer overflow bug in Integer#succ in RubyInteger.java
  • [JRUBY-6779] - Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?
  • [JRUBY-6780] - File.open creates file without permissions
  • [JRUBY-6782] - load path doesn't respect rubygems when invoked from command line
  • [JRUBY-6784] - Wrong arg passed with lambda with splat
  • [JRUBY-6785] - NoMethodError calling callMethod on instance of reopened Java class
  • [JRUBY-6786] - opening the singleton class of an exception breaks equal and inspect
  • [JRUBY-6788] - Missing prompt in rails console
  • [JRUBY-6791] - RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace
  • [JRUBY-6792] - Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet
  • [JRUBY-6801] - bundle exec no longer works
  • [JRUBY-6802] - JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)
  • [JRUBY-6803] - Reading thousands of files significantly slower with JRuby 1.7
  • [JRUBY-6808] - org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish
  • [JRUBY-6809] - Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails
  • [JRUBY-6812] - 1.7 regression handling Java exceptions
  • [JRUBY-6815] - IO.read doesn't work with pipes
  • [JRUBY-6819] - java.lang.ArrayIndexOutOfBoundsException in String#each_line
  • [JRUBY-6820] - Unexpected behavior of IO.popen when giving arguments as an array containing strings
  • [JRUBY-6821] - FFI::Pointer#write_string is missing
  • [JRUBY-6822] - Net::HTTP SSL connections fail with EAGAIN
  • [JRUBY-6853] - Range with float min max discrepancy
  • [JRUBY-6866] - YAML.parse in 1.8 and 1.9 mode cannot parse trailing tabs
  • [JRUBY-6424] - Allow java_signature to generate throws clause for methods/constructors
  • [JRUBY-6688] - Tempfile#{unlink,delete} should warn or actualy do something
  • [JRUBY-6697] - JRuby 1.7 should report 1.9 as default
  • [JRUBY-6714] - require 'java' in verbose mode causes circular dependency warning
  • [JRUBY-6813] - Implement Time#round
  • [JRUBY-6862] - JRuby.runtime doesn't exist in 1.7 preview2
  • [JRUBY-6816] - jffi 1.2 jar files for FreeBSD
  • [JRUBY-6789] - Test for embedded JRuby are not run by CI
  • [JRUBY-6762] - How to detect if a Ruby method has been defined using ScriptingContainer
### Jira Issues resolved for preview1:
  • [JRUBY-928] - Java arrays don't inherit from java.lang.Object in Rubified Java class hierarchy
  • [JRUBY-2317] - File writing is slower in JRuby than MRI
  • [JRUBY-3293] - Cannot reopen a class from an included module
  • [JRUBY-3519] - Wrong work replacement char with russian charset
  • [JRUBY-3812] - Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
  • [JRUBY-3957] - Not possible to 'rescue' exception caused by illegal argument involving a static field
  • [JRUBY-3986] - File inconsistency handles file:/// URLs pointing to things inside a JAR
  • [JRUBY-4105] - Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
  • [JRUBY-4115] - cipher.rb:24: superclass must be a Class (Module given) (TypeError)
  • [JRUBY-4220] - File.dirname(__FILE__) doesn't return correct value when a script is loaded from classpath
  • [JRUBY-4291] - UNIXServer#accept can't be interrupted by kill/raise
  • [JRUBY-4339] - Kernel.load with wrap=true does not protect the global namespace of calling program
  • [JRUBY-4484] - jruby -rtracer doesn't trace
  • [JRUBY-4605] - RubyIO#select puts connectable sockets in the read set instead of write set
  • [JRUBY-4626] - Gaps in STDIN pipe stream if backtick is used
  • [JRUBY-4717] - [1.9.2] New digest methods are missing (base64digest and base64digest!)
  • [JRUBY-4771] - InvokeDynamic's CallSite now takes only MethodHandle in constructor
  • [JRUBY-4843] - COPYING file is (partially) incorrect and outdated
  • [JRUBY-4887] - Problem with ja_JP.eucJP locale
  • [JRUBY-4995] - On Windows, Socket constants do not agree with MRI's, and BasicSocket#setsockopt fails when MRI does not.
  • [JRUBY-5090] - java class objectId() overrides .object_id
  • [JRUBY-5178] - Incorrect SSLSocket implementation loaded despire require 'jruby/openssl/gem_only' statement.
  • [JRUBY-5189] - [1.9] invalid byte sequence in UTF-8
  • [JRUBY-5201] - [1.9] uncaught timeout seems to cause silent failure
  • [JRUBY-5222] - Reopening a file descriptor on a socket doesn't work (gives "could not reopen: null (IOError)")
  • [JRUBY-5279] - assert_raise fails on native exceptions
  • [JRUBY-5317] - Objects loaded via Marshal don't get Java class applied corrected unless passed through fn taking exact type
  • [JRUBY-5320] - require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
  • [JRUBY-5348] - Process.spawn should fail if wrong args passed
  • [JRUBY-5375] - [1.9] Add "Mark" features to Psych
  • [JRUBY-5428] - redblack benchmark slower than it should be
  • [JRUBY-5435] - mkdir_p wrongfully encodes directory names when ran from a Jar
  • [JRUBY-5446] - jcodings no longer in sync with current data 1.9.2 is using
  • [JRUBY-5459] - JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
  • [JRUBY-5512] - regular expressions + regexp = incorrect results.
  • [JRUBY-5547] - add String#byteslice() method
  • [JRUBY-5560] - JRuby does not detect unix socket
  • [JRUBY-5622] - Regex string interpolation breaks unicode properties
  • [JRUBY-5630] - Java calls have lost the Java part of the trace
  • [JRUBY-5643] - [1.9] Array#map and Array#collect produce the same enumerator; should be specific to the method called
  • [JRUBY-5647] - Missing method Socket::ip_address_list
  • [JRUBY-5650] - running "ruby" inside a rake task ignores JRUBY_OPTS
  • [JRUBY-5665] - RubySpec: String#scan failures
  • [JRUBY-5678] - tmpdir cannot be delete when jruby has sudo/root rights
  • [JRUBY-5681] - jruby doesn't fork the backtick command when the command is jruby
  • [JRUBY-5708] - IO.select does not block on unix sockets
  • [JRUBY-5726] - FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
  • [JRUBY-5742] - Fails to use UTF-8 encoded source with BOM.
  • [JRUBY-5745] - MethodFactory impls do not set NativeCall
  • [JRUBY-5762] - Proc#=== is not same as Proc#call in 1.9 mode.
  • [JRUBY-5774] - [ruboto] unsupported Java version: 0.9
  • [JRUBY-5775] - [ruboto] Dir[] gives empty array when listing files below the root of the apk
  • [JRUBY-5779] - $LOADED_FEATURES is updated before loading finished
  • [JRUBY-5792] - Eval error for hashes containing symbols ending with an equals sign
  • [JRUBY-5811] - jruby 1.9 fails to load irb
  • [JRUBY-5813] - FFI::AutoPointer occasionally calls releaser proc when GC'd, even if autorelease is set to false
  • [JRUBY-5823] - jruby -x bug
  • [JRUBY-5835] - [ruboto] File#read fails with jruby-jars-1.6.2
  • [JRUBY-5842] - NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
  • [JRUBY-5852] - Can't serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
  • [JRUBY-5863] - Named captures cause crash when there is no match
  • [JRUBY-5866] - JRuby can't access nested Java class if the class is called 'id'
  • [JRUBY-5874] - Kernel#` and Kernel#system didn't correctly glob when using ruby
  • [JRUBY-5876] - Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
  • [JRUBY-5878] - Enumerator.map is not yielding all values
  • [JRUBY-5881] - Update to jnr-constants 0.8
  • [JRUBY-5943] - Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
  • [JRUBY-5953] - rvm jruby 1.6.3 freezes after issued `irb` or
  • [JRUBY-5955] - maven build of JRuby 1.6.3 fails on Linux Fedora 15
  • [JRUBY-5964] - Digest::Base#file does not handle Pathname as parameter when ran in 1.9
  • [JRUBY-5968] - Mac OSX ant dist failure w/ patch
  • [JRUBY-5973] - Failure to connect to Nailgun server produces confusing error
  • [JRUBY-5977] - test_rubyopts_rubygems_cleared_in_child test failure w/ patch
  • [JRUBY-5981] - Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
  • [JRUBY-5987] - Regression: IncludedModuleWrapper does not delegate to new Module autoload map
  • [JRUBY-5988] - Hash.inspect in --1.9 results in ASCII-8BIT encoding
  • [JRUBY-5989] - MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
  • [JRUBY-5995] - `Readline::HISTORY << str` and push should return HISTORY
  • [JRUBY-5996] - gem update --system crashes with NPE
  • [JRUBY-6031] - ActiveRecord::JDBCError in JRuby 1.6.4
  • [JRUBY-6035] - Randomly changed hash key in overriden []= method in Hash inherited class
  • [JRUBY-6037] - org.objectweb.asm.ClassReader is not found under some circumstances.
  • [JRUBY-6043] - Fix for JRUBY-5965 breaks Mirah macro compilation
  • [JRUBY-6048] - Array#repeated_permutation(n) enumerates nothing when n is greater than the length
  • [JRUBY-6058] - JRuby 1.6.4 incompatible with Google App Engine
  • [JRUBY-6062] - [ruboto][regression] Increased stack usage
  • [JRUBY-6068] - Trunk Build Failure for install_dist_gems task
  • [JRUBY-6070] - TCPSocket#new issues with local_addr and local_port
  • [JRUBY-6071] - IO.select returning arrays with nil elements
  • [JRUBY-6075] - ant dist fails on both master and jruby-1_6 branches
  • [JRUBY-6076] - Mixed-case Java package name not resolved
  • [JRUBY-6100] - NameError Exception if I try to use syck as YAML engine
  • [JRUBY-6101] - JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
  • [JRUBY-6103] - allocator undefined for NativeException
  • [JRUBY-6108] - bin/jruby script has incompatible bourne shell syntax
  • [JRUBY-6110] - Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
  • [JRUBY-6119] - Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
  • [JRUBY-6127] - Magic comment should start in column 1
  • [JRUBY-6129] - Multiple assignment with splatted LHS fails to call #to_ary on corresponding object
  • [JRUBY-6130] - hash#update calls to_hash method on frozen object (in 1.9 mode)
  • [JRUBY-6131] - Integer#round can effectively hang jruby for large negative arguments in --1.9 mode
  • [JRUBY-6137] - Small Leak in Fileno Bookkeeping For STDIO RubyIOs
  • [JRUBY-6141] - All MatchData objects resulting from an invocation of String#scan are updated with the current match
  • [JRUBY-6143] - [1.9] [RubySpec] Regexp Spec failures with /n
  • [JRUBY-6149] - Some native exceptions are wrapped too agressively
  • [JRUBY-6165] - IO.popen forcibly kills process when io is closed
  • [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-6180] - "SystemCallError: Unknown error - Connection reset by peer" should be mapped to Errno::ECONNRESET
  • [JRUBY-6199] - JRuby is hardcoded to use '-mmacos-version-min=10.4' which is not compatible with '-rpath' being used
  • [JRUBY-6202] - JIT-ed class names only use method names, causing collisions
  • [JRUBY-6204] - UTF-8 char in XML hangs in Joni
  • [JRUBY-6221] - json gem encoding/decoding is 2x slower than under MRI
  • [JRUBY-6227] - [1.9] Struct#members and Struct::members should return an Array of Symbols in 1.9
  • [JRUBY-6234] - Kernel.system doesn't work with environement parameters
  • [JRUBY-6237] - Allow the syntax `a = b = f 1`
  • [JRUBY-6239] - unable to silence warnings
  • [JRUBY-6245] - `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
  • [JRUBY-6248] - thread leak
  • [JRUBY-6250] - When executing an Ant build.xml file, the Ant executable should not be required to live on the environment's $PATH
  • [JRUBY-6251] - NailGun and 1.9 seem not to be usable at the same time ( --1.9 and --ng)
  • [JRUBY-6259] - ant test - fails in WinXP: (LoadError) no such file to load -- jruby
  • [JRUBY-6265] - Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
  • [JRUBY-6266] - Unicode encoding problem in CSV.foreach
  • [JRUBY-6269] - JRuby --1.9 cannot load YAML output from JRuby --1.8
  • [JRUBY-6277] - Dependency to compiler package from org.jruby.Ruby breaks Ruboto
  • [JRUBY-6278] - [dev only] Double require bug in the handling of concurrent requires
  • [JRUBY-6279] - Invokedynamic support is missing 'float_op_equal'
  • [JRUBY-6280] - Fails to open fifo for writing.
  • [JRUBY-6281] - [1.9] Applet does not work in the 1.9 mode
  • [JRUBY-6282] - Colon is not allowed in a file name on Windows
  • [JRUBY-6283] - Master crashes when calling an FFI-attached C library function
  • [JRUBY-6284] - Calls to Kernel#exit result in an exception printed on stderr
  • [JRUBY-6285] - JRuby 1.7 master on Java7u2 is *slower* running a benchmark than master on Java6
  • [JRUBY-6291] - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
  • [JRUBY-6292] - Massive perf degradation in pack after ByteList update
  • [JRUBY-6293] - jruby-dist-master does not build C extensions
  • [JRUBY-6295] - Dir.chdir, $HOME and $LOGDIR behavior
  • [JRUBY-6300] - TestMethodmissing testcase fails with Java 7
  • [JRUBY-6301] - scripting_lang.jruby:undefined method in test_loop_1_9.rb
  • [JRUBY-6305] - C Extension fails to build
  • [JRUBY-6307] - Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
  • [JRUBY-6313] - jruby-launcher rspecs fail on ubunutu
  • [JRUBY-6318] - Tempfile#open does not return the value of the block given to it
  • [JRUBY-6320] - "bom|utf-8" File encoding not supported in 1.9 mode
  • [JRUBY-6325] - Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
  • [JRUBY-6327] - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
  • [JRUBY-6328] - [Ruboto][regression] LoadError with master
  • [JRUBY-6341] - Regression: Enumerable#first on a Java list returns an array, not an element
  • [JRUBY-6343] - Running Webrick in 1.9 mode is causing IllegalMonitorStateException
  • [JRUBY-6344] - Embedded \r should not be treated as end of comment line
  • [JRUBY-6349] - Running 'ant clean-all' in git-free environments fails
  • [JRUBY-6371] - Mac OS X installer missing from snapshots directory
  • [JRUBY-6378] - cext fails to compile on 64-bit Ubuntu Oneirc
  • [JRUBY-6386] - time.localtime not taking any arguments
  • [JRUBY-6389] - TypeError: can't convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
  • [JRUBY-6394] - Socket.new takes symbolic protocol, etc
  • [JRUBY-6401] - Psych::SyntaxError while installing some gems in 1.9 mode
  • [JRUBY-6413] - jruby gem install chops off first character from files it extracts
  • [JRUBY-6417] - exception in rake assets:precompile in jruby-1.6.6
  • [JRUBY-6419] - GzipReader encodings still not right; breaks "gem install"
  • [JRUBY-6421] - installing jruby-launcher fails with wrong filenames (zlib error apparently)
  • [JRUBY-6438] - "TypeError: can't convert Array into String" from ffi code in 1.9 mode
  • [JRUBY-6439] - cext: Memory leak in String and Array handling
  • [JRUBY-6449] - connect_nonblock + select needs to eventually finishConnect
  • [JRUBY-6450] - jruby-win32ole fails under java7 and jruby master; can't find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
  • [JRUBY-6451] - memory leak in rb_struct_new
  • [JRUBY-6452] - rb_class_of() calls static object method instead of static long method
  • [JRUBY-6475] - md5 digest causes thread lock
  • [JRUBY-6476] - org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
  • [JRUBY-6477] - Tempfile#stat raises java.lang.NullPointerException when unlinked
  • [JRUBY-6483] - Ruby array to_java does not appear to work
  • [JRUBY-6485] - :__recursive_key__ left in threadlocals
  • [JRUBY-6489] - FileLock.release() throwing Java::JavaLang::NullPointerException
  • [JRUBY-6492] - "InvalidTransformException" on startup of large application
  • [JRUBY-6498] - Net::Http does not close socket when open_timeout is exceeded
  • [JRUBY-6501] - warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
  • [JRUBY-6502] - "Config" should be deprecated in JRuby 1.7 (1.9 mode)
  • [JRUBY-6504] - Block parameter syntax issue where the closing | comes at the beginning of the line
  • [JRUBY-6511] - Timeout doesn't work when https server not responding
  • [JRUBY-6512] - Time.now shows wrong timezone for Moscow region
  • [JRUBY-6517] - StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
  • [JRUBY-6523] - Static ThreadLocals must be weak or soft or not static
  • [JRUBY-6526] - Socket#accept no such method?
  • [JRUBY-6527] - Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
  • [JRUBY-6528] - Socket#connect_nonblock and IO::select appear to be misbehaving?
  • [JRUBY-6533] - JavaNullPointer Exception instead method_missing
  • [JRUBY-6534] - Broken block-local vars in 1.9 mode
  • [JRUBY-6538] - 'obj !~ thing' is not the same as obj.send(:!~, thing)
  • [JRUBY-6541] - DRb::DRbIdConv difference between 1.8 and 1.9
  • [JRUBY-6545] - unable to load win32/registry in 1.9 mode
  • [JRUBY-6549] - JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
  • [JRUBY-6551] - Incorrect Ruby compatibility description displayed
  • [JRUBY-6554] - \r at the end of String can cause SyntaxError
  • [JRUBY-6556] - BigDecimal divided by Rational gives nil in --1.9 mode
  • [JRUBY-6559] - ZLib buggy handling in 1.6.7
  • [JRUBY-6560] - File.expand_path for path starting with "jar:file:" fails
  • [JRUBY-6562] - Join fails on fixnum sub-array
  • [JRUBY-6567] - characters to the console aren't echoed after a background then foreground of jruby irb session
  • [JRUBY-6570] - autoload :Time, 'time' doesn't work
  • [JRUBY-6571] - StackOverflow when calling java.util.regex.Matcher#end
  • [JRUBY-6572] - File.open with 'b' options should always 'gets' string with 'ASCII-8BIT' encoding, regardless the value of 'Encoding.default_internal'
  • [JRUBY-6574] - Socket#bind does not convert nil to 0
  • [JRUBY-6582] - Encoding when using '%' inconsistent with MRI 1.9
  • [JRUBY-6583] - Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require 'haml'
  • [JRUBY-6588] - String#encode should not convert binary to mangled UTF-8
  • [JRUBY-6589] - java.lang.ClassCastException on exit from irb
  • [JRUBY-6590] - DelegateClass subclasses can't include Java interfaces
  • [JRUBY-6598] - to_yaml has garbled text if object contains Chinese or Japanese characters
  • [JRUBY-6599] - test/test_socket.rb spuriously fails
  • [JRUBY-6603] - Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
  • [JRUBY-6604] - Cannot programmatically create regular expression /[\\x80]/n
  • [JRUBY-6605] - java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
  • [JRUBY-6606] - Dir::entries does not support none ascii character
  • [JRUBY-6607] - TCPSocket connect failure inside Timeout leaves orphaned sockets
  • [JRUBY-6611] - LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
  • [JRUBY-6612] - some problems with JRuby seeming to not detect Java Long arithmetic overflows
  • [JRUBY-6618] - NPEs on CI spec run on master
  • [JRUBY-6619] - NoMethodError 'upcase' on Java string
  • [JRUBY-6621] - New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
  • [JRUBY-6623] - In IRB, backslashes are gobbled in the eval loop
  • [JRUBY-6624] - File#exists? cannot find file in JAR
  • [JRUBY-6626] - [Ruboto] ThreadContext throws NPE in finalizer
  • [JRUBY-6627] - File#open fails for file in a JAR with a "jar:" prefix in the path
  • [JRUBY-6628] - #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
  • [JRUBY-6630] - Tempfile doesn't take a hash in the constructor
  • [JRUBY-6631] - Time#nsec always returns 0
  • [JRUBY-6634] - String.new(string) does not seem to clone the input
  • [JRUBY-6637] - String encoding difference between jruby --1.9 and MRI 1.9 (force_encoding a no-op in this case?)
  • [JRUBY-6641] - Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
  • [JRUBY-6642] - RubyException.printBacktrace omits the first line
  • [JRUBY-6644] - Time#strftime doesn't respect %:z
  • [JRUBY-6647] - Comparison of a self referential struct causes a stack overflow
  • [JRUBY-6648] - Opening a file with integer flags mixed with hash options raises an exception
  • [JRUBY-6649] - Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception
  • [JRUBY-6650] - when running the build I get a java.lang.AssertionError during jruby -S maybe_install_gems hoe rdoc
  • [JRUBY-6652] - JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
  • [JRUBY-6654] - Using ruby's standard gserver library causes jruby to run out of memory
  • [JRUBY-6660] - An invalid Makefile is genereated when a 'depend' file exists.
  • [JRUBY-6661] - strftime should behave the same for datetime and time
  • [JRUBY-6668] - StringScanner#scan_until spins forever on UTF-8 data
  • [JRUBY-6669] - failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
  • [JRUBY-6670] - XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
  • [JRUBY-6671] - jruby-launcher fails to compile with GCC 4.6.3 on OSX
  • [JRUBY-6675] - shadowing outer local variable warning in ffi
  • [JRUBY-6710] - locking probleming when autoloading constant in haml
  • [JRUBY-6728] - Rails Mailer fails on
  • [JRUBY-6756] - Test suite fails, jruby-launcher can't be installed
  • [JRUBY-6387] - Should JRuby 1.7 set 1.9 compatibility as default?
  • [JRUBY-3797] - include_class should be deprecated in favor of java_import (and/or import)
  • [JRUBY-4743] - Get a working test-indy target for testing against invokdynamic
  • [JRUBY-5035] - Merge JRuby-OSSL
  • [JRUBY-5135] - jruby.launch.inproc property should default to false
  • [JRUBY-5499] - Update to rubygems 1.5.2 since 1.5.0 has severe bugs
  • [JRUBY-5767] - add .metadata to .gitignore file
  • [JRUBY-5849] - make JAVA_VM to be set from environment
  • [JRUBY-5921] - Switch all (or most) println logging to slf4j logging.
  • [JRUBY-5969] - Implemented a new commandline parser in NKF
  • [JRUBY-5993] - $CLASSPATH allows array additions
  • [JRUBY-6096] - Unable to build completely from source (rdoc missing)
  • [JRUBY-6169] - Update 1.9 Standard Library to 1.9.3p0
  • [JRUBY-6218] - Class and module names may need to be cached
  • [JRUBY-6222] - Remove rdoc data from dist in favor of rdoc-data gem
  • [JRUBY-6229] - Allow a way to activate the profiling API when embedding JRuby
  • [JRUBY-6230] - Cache jar content list to speed up file? operation
  • [JRUBY-6241] - Define a read-only global variable $-W
  • [JRUBY-6337] - poor error message on importing java class
  • [JRUBY-6464] - Use 'mvn versions:set -DnewVersion=<whatever>' instead of our Ruby rake code for updating poms
  • [JRUBY-6496] - Kernel#Hash
  • [JRUBY-6506] - Deprecate ObjectProxyCache
  • [JRUBY-6561] - Update to latest rubygems
  • [JRUBY-6584] - File.mtime() is slower than it should be
  • [JRUBY-5845] - Add slf4j logging to JRuby
  • [JRUBY-5934] - Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
  • [JRUBY-6077] - Allow loading a Ruby source file from the class path using the fully qualified name
  • [JRUBY-6243] - Add support for graph profile with HTML output
  • [JRUBY-6334] - Import multiple classes via java_import
  • [JRUBY-6393] - Implement Addrinfo class
  • [JRUBY-4236] - Please reopen JRUBY-3894
  • [JRUBY-5335] - [1.9] Random instance marshal data incompatible with CRuby 1.9
  • [JRUBY-5568] - Remove MethodFactory "can't load bytecode" logging before 1.6 final
  • [JRUBY-6017] - Undocumented windowBits feature of Zlib::Infrate/Deflate
  • [JRUBY-6078] - Introduce jzlib-based zlib implementation
  • [JRUBY-6145] - Cleanup Maven POMs So 'mvn install' Works Again
  • [JRUBY-6249] - Creating binary for jffi
  • [JRUBY-6379] - rdoc, ri, rdoc-data and 'generate-ri-cache' ant task
  • [JRUBY-2708] - JRuby should load relative path reference to AOT classes
### Github Issues resolved since RC2:
  • #316 String#gsub not matching when string read from file in 1.9 mode core
  • #317 regex fails for foreign characters when offset is last character core
### Github Issues resolved for RC2:
  • #337 Fix indentation in: e2c3728.
  • #330 mprove performance of the Equals operator in the RubyComparable class for objects of different types
  • #329 only new up kernel32 instance once per jvm
  • #324 Fix #276. For good.
  • #320 Windows Process.kill 'KILL'
  • #319 Windows signal
  • #312 Nested timeout supercedes enclosing timeout
  • #311 Fix edge case where rescued Exceptions may be nil
  • #295 Fix: Added support for the Java cacerts trust anchors
  • #292 Apply '-' behaviour to blank padded format directives.
  • #291 Add encoding annotation to test_unicode_path
  • #278 fix some error message in Struct#\[\]
  • #270 JSON format profile printer
  • #255 JRUBY-6510 fix String.encode!
### Github Issues resolved for RC1:
  • #307 Specs for DirectedGraph Library
  • #306 removed snapshot in versions
  • #304 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #303 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #301 Dynamic String/Symbol/Regexp create too much garbage
  • #300 Symbol table can't look up from ByteList directly
  • #294 no need to report memory/stack as properties
  • #293 Fix for issue #276
  • #282 call Kernel.require ruby method from autoload callback instead of calling internal require
  • #281 call Kernel.require ruby method from autoload callback instead of callin...
  • #280 Kernel require
  • #275 Remove left-over Javadoc params from Java class generator
  • #274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with --1.9)
  • #273 1.6 backport: JRUBY-6810
  • #267 Various fixes for psych
  • #266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect.
  • #265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym
  • #261 Fixnum#to_sym is not defined in Ruby 1.9
  • #259 native threads disabled with C extensions
  • #258 YAML.load_file to empty file gives false
### Github Issues resolved for preview2
  • #222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2
  • #176 Fixes JRUBY-6658
  • #174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data
  • #162 Recursive checking threadlocals in Ruby keep runtimes alive
  • #155 invokedynamic: Instance var sites do not age, do not handle dup'ed classes well
  • #145 exception in eval gets written to stderr
  • #141 ConcurrencyError in safe code

JRuby 1.7.0. Released

Monday, October 22 2012

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

After a long journey (1.5 years..oh my) we have released JRuby 1.7.0. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And JRuby now defaults to 1.9 mode, with compatibility level targeting Ruby 1.9.3.

We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we are at a stable point where people can use JRuby in 1.9 mode to host production applications. At this point, we plan on putting out point releases of 1.7.x every 2-3 weeks for the foreseeable future. These point releases will be made to address any reported problems users run into; and also to fill out the few missing 1.9 libraries not yet finished.

JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning

  • 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
  • Ruby standard library updated to 1.9.3p286
  • Many 1.9.x compatibility fixes
  • Support for invokedynamic
  • Performance and concurrency improvements throughout
  • Java 5 support dropped (Java 6+ required)
  • All known 1.9 encoding issues resolved
  • Kernel#exec now does a true native exec on all platforms
  • Improvements and fixes to Java integration and embedding
  • Native features now better supported on Solaris, ARM Linux, and others
  • Update to Rubygems 1.8.24
  • Update to Rake 0.9.2.2

Issues resolved since RC2:

  • [JRUBY-3294] - Ruby code can make JRuby fail with java.lang.ArrayIndexOutOfBoundsException, Stack trace of SystemStackError is errorneous
  • [JRUBY-6732] - FFI+InvokeDynamic and wrong number of arguments produces java backtrace
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [JRUBY-6811] - Time.at rounding errors below milliseconds
  • [JRUBY-6845] - FFI: IndexError in AbstractMemory#write_string
  • [JRUBY-6857] - Upgrade to newer Joda-time version
  • [JRUBY-6904] - IO.popen '' throws wrong exception
  • [JRUBY-6907] - Regression: ruby,java(thread),ruby exception path results in nilClass exception
  • [JRUBY-6917] - "already initialized constant ClassReader" when embedding JRuby
  • [JRUBY-6923] - UTF-8 string is not matching //i properly
  • [JRUBY-6926] - zlib corruption in 1.9 mode
  • [JRUBY-6930] - yaml escaping of non-printable characters
  • [JRUBY-6932] - ruby block without arguments for itemStateChanged in 1.9 can fail
  • [JRUBY-6933] - String#split fails after doing a regex on UTF-8 chars.
  • [JRUBY-6936] - JRuby doesn't seem to run on ARMv5-platform
  • [JRUBY-6937] - unable to use JAVA_HOME pointed to a jre in windows 7
  • [JRUBY-6946] - Object.id still exists in 1.7.0.RC2
  • [JRUBY-6947] - Call to "free" wrapped up via FFI causes JVM to exit with a malloc error.
  • [JRUBY-6952] - Time#+ gives off-by-one error with fractional microseconds
  • [JRUBY-6906] - error message for Process.kill 'EXIT' is wrong

Jira Issues resolved for RC2:

  • [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
  • [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
  • [JRUBY-6510] - String#encode! not correctly implemented.
  • [JRUBY-6804] - Jruby cannot work with sendmail in a rails environment (or IO.popen does not function in jruby)
  • [JRUBY-6838] - Kernel#rand(Range) not supported
  • [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
  • [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
  • [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
  • [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
  • [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars
  • [JRUBY-6942] - gets returns nil very early in the process lifetime.
  • [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
  • [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.

Jira Issues resolved for RC1:

  • [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
  • [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
  • [JRUBY-5318] - syntax error in jruby unix startup
  • [JRUBY-5583] - Profiling should not bomb out trying to find method name
  • [JRUBY-5615] - __FILE__ corrupts cyrillic characters
  • [JRUBY-5623] - Enumerable doesn't wrap objects properly
  • [JRUBY-5675] - Difference in include behaviour in --1.9 mode
  • [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
  • [JRUBY-5700] - Segmentation fault - IBM JDK
  • [JRUBY-5804] - First call of Time.now is slow and confuses benchmark result
  • [JRUBY-5848] - jruby-core maven artifact has broken dependencies
  • [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
  • [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
  • [JRUBY-6074] - Re-release jruby-win32ole with Java 5
  • [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
  • [JRUBY-6360] - invokedynamic performance degradation on a certain workload
  • [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
  • [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
  • [JRUBY-6578] - File.readlink with chdir
  • [JRUBY-6595] - segfault with win32/registry
  • [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
  • [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
  • [JRUBY-6773] - ERB parsing in JRuby 1.6.6
  • [JRUBY-6796] - Please provide a list of versioned dependencies (including bundled JARs)
  • [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
  • [JRUBY-6824] - Missing files/dirs in source tarball/zip
  • [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
  • [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
  • [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
  • [JRUBY-6831] - Enumerator combined with reduce using symbols fails
  • [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
  • [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
  • [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
  • [JRUBY-6837] - Encoding Problems in Rails 3.2
  • [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
  • [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
  • [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
  • [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
  • [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
  • [JRUBY-6852] - Setting compile mode when using ScriptingContainer
  • [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
  • [JRUBY-6855] - Signal.list missing 'KILL' on Windows
  • [JRUBY-6858] - OpenSSL::HMAC missing reset method
  • [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
  • [JRUBY-6860] - String#slice on strings with multibyte chars fails
  • [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
  • [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
  • [JRUBY-6867] - Parsing issues with long lines
  • [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
  • [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
  • [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
  • [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
  • [JRUBY-6884] - Unexpected stack trace using ARM based linux
  • [JRUBY-6885] - method_missing and private methods behave differently
  • [JRUBY-6888] - Loading a newer joda-time seems to not work
  • [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
  • [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
  • [JRUBY-6896] - nil treated as 0 in call to Thread#join
  • [JRUBY-4516] - Load a properties file for distribution-presets
  • [JRUBY-4517] - Allow property to override the binary directory
  • [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
  • [JRUBY-6275] - double locking a mutex could use a better error message, line number
  • [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only
  • [JRUBY-6835] - A way to send a block of code across processes.
  • [JRUBY-6883] - Enable subclassing of Java classes on Dalvik

Jira Issues resolved for preview2:

  • [JRUBY-4107] - Java method selection is subject to reflection ordering
  • [JRUBY-5053] - memory leak in rubygems
  • [JRUBY-5082] - exec() would be more useful if it really exec()ed
  • [JRUBY-5529] - [1.9] undefined method `read_nonblock' for #<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
  • [JRUBY-5691] - gem update --system wipes out RubyGems Maven support
  • [JRUBY-5753] - Library `fcntl' can not be loaded on Solaris/Weblogic (JRuby 1.6.1) -> NullPointerException
  • [JRUBY-5785] - BUG: invoking UndefinedMethod.call
  • [JRUBY-5899] - NotImplementedError: Process::Status#exited? not implemented
  • [JRUBY-5902] - STDIN.gets under cygwin doesn't work
  • [JRUBY-5939] - [:space:] does not match unicode 0x3000: fullwidth whitespace
  • [JRUBY-6024] - Platform.getPackageName() NPE when embedded.
  • [JRUBY-6056] - High CPU Loop with parallel Etc.group iterrations
  • [JRUBY-6121] - Local variables cross eval scopes
  • [JRUBY-6124] - Yielding no values to a block gives ArrayIndexOutOfBoundsException
  • [JRUBY-6125] - Yielding a single object to a block with |a, b| arguments does not call #to_ary
  • [JRUBY-6148] - UnsatisfiedLinkError on Solaris
  • [JRUBY-6181] - SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)
  • [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
  • [JRUBY-6253] - IBM JVM rejects class/method names with #, as in our JIT recently.
  • [JRUBY-6286] - jnr-posix WindowsHelpers.isBatch Always Returns False
  • [JRUBY-6299] - Slow perf in String#split or #join on 1.9 mode
  • [JRUBY-6317] - YAML can't parse some valid unicode characters
  • [JRUBY-6330] - Performance degradation in Time.strptime with invokedynamic
  • [JRUBY-6376] - File.stat.size on Solaris: ridiculously large results
  • [JRUBY-6395] - Coerce Fixnum to Number
  • [JRUBY-6428] - Regression: Float#to_d doesn't work on 1.7 (did in 1.6)
  • [JRUBY-6459] - JRuby head causes rack response to change behaviour
  • [JRUBY-6465] - out of memory building c extensions
  • [JRUBY-6481] - AccessControl exceptions attempting to create JRuby instances in applet
  • [JRUBY-6493] - Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body
  • [JRUBY-6494] - File#directory? always returns false on Solaris
  • [JRUBY-6495] - java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException
  • [JRUBY-6514] - java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException
  • [JRUBY-6521] - With Java 7, nailgun client cannot list local gems more than once
  • [JRUBY-6525] - FFI bug with Solaris JRuby >=1.6.6
  • [JRUBY-6532] - ftp.nlst, ftp.ls doesn't work on JDK 7u3
  • [JRUBY-6548] - REXML error when reading files containing ISO-8859-1 encoded data
  • [JRUBY-6552] - File.directory? does not work under 1.9 mode on Solaris
  • [JRUBY-6553] - Application continues running after throwing out of memory exception in Thread.
  • [JRUBY-6613] - special characters like umlauts make Kramdown hang (works with MRI Rubies)
  • [JRUBY-6615] - File.open ignores specified external encoding
  • [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
  • [JRUBY-6638] - Multicast UDPSocket send does not work with host and port
  • [JRUBY-6639] - Marshal.load takes forever when deserializing Rails unicode db in WEBrick
  • [JRUBY-6658] - Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry
  • [JRUBY-6663] - `jruby -S bundle exec rails c` fails with "Bundler: command not found"
  • [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
  • [JRUBY-6666] - Open3.popen3 failing due to missing handling for [path, argv[0]] array
  • [JRUBY-6674] - Inconsistent java method/signature choosing depending on java version/platform
  • [JRUBY-6677] - open("|something", "w") does not open in write mode
  • [JRUBY-6678] - compilation fails for CC="ccache gcc"
  • [JRUBY-6679] - Encoding.default_external discrepancy between JRuby and MRI
  • [JRUBY-6682] - ' jgem search -r ak ' causes exceptions.
  • [JRUBY-6685] - Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows
  • [JRUBY-6686] - JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod
  • [JRUBY-6693] - Get the terminal width with JRuby
  • [JRUBY-6694] - Invalid byte sequence in utf-8
  • [JRUBY-6701] - Net::HTTP ignore JSE defined HTTP Proxy options
  • [JRUBY-6702] - File.utime does not check file permissions
  • [JRUBY-6703] - Remove Enumerable#join from 1.9 mode
  • [JRUBY-6705] - Error during gem loading in Rails: ActiveRecord is not missing constant Base
  • [JRUBY-6706] - Collections.shuffle works incorreclty on Ruby arrays
  • [JRUBY-6707] - JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree
  • [JRUBY-6708] - NullPointerException instead of proper exceptions output
  • [JRUBY-6709] - ffi problems on 1.7.0.preview1?
  • [JRUBY-6711] - JRuby 1.7 needs a formal release of jline
  • [JRUBY-6713] - win32/registry.rb warning
  • [JRUBY-6715] - jruby-openssl cert validation fails on windows
  • [JRUBY-6717] - jruby1.7.0preview1 doesn't work on Windows with jdk7
  • [JRUBY-6718] - crash with java.lang.invoke.WrongMethodTypeException
  • [JRUBY-6721] - probably extraneous warning message generated
  • [JRUBY-6722] - Can't instantiate ThreadGroup subclass with arguments
  • [JRUBY-6724] - NO_FILE_CLASS Profile does disables File but not FileStats that depends on File
  • [JRUBY-6725] - NameError: uninitialized constant RubyVM
  • [JRUBY-6729] - [1.9] block argument to yield method is not correctly pass to a block. -- pp's seplist method
  • [JRUBY-6731] - Can't load class files in WARs compiled by warbler using jruby 1.7.0.preview1
  • [JRUBY-6734] - Socket.new seems broken -- throws exceptions on valid params
  • [JRUBY-6735] - FileUtils.chmod broken for symlinks
  • [JRUBY-6737] - Cannot use rspec with JRuby 1.7
  • [JRUBY-6739] - Does not read UTF-16 properly
  • [JRUBY-6740] - BasicObject.respond_to? raises a "undefined method `respond_to_missing?'"
  • [JRUBY-6741] - Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux
  • [JRUBY-6742] - ant dist aborts on non-Mac hosts
  • [JRUBY-6745] - ClassCastException calling Fixnum#== with a Java Integer
  • [JRUBY-6746] - OpenSSL 'connect_nonblock' missing/broken in 1.6.7 and 1.7.0.preview1
  • [JRUBY-6748] - Race condition still in thread list
  • [JRUBY-6753] - class_eval should inherit __name__ from the caller
  • [JRUBY-6755] - Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)
  • [JRUBY-6760] - ArgumentError output
  • [JRUBY-6761] - NoMethodError: undefined method `recvfrom' for #<Socket:fd>
  • [JRUBY-6764] - Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.
  • [JRUBY-6766] - --profile slows down Array#join , which distorts profiling results
  • [JRUBY-6768] - Instance variable value is lost under certain circumstances
  • [JRUBY-6769] - Curried lambda/proc does not work correctly with Array.map
  • [JRUBY-6774] - wrong exception class thrown when opening file after Dir.chdir
  • [JRUBY-6775] - RubyRandom is not thread-safe
  • [JRUBY-6776] - Array#join(nil) should use $, as a separator for compatibility
  • [JRUBY-6778] - Possible long integer overflow bug in Integer#succ in RubyInteger.java
  • [JRUBY-6779] - Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?
  • [JRUBY-6780] - File.open creates file without permissions
  • [JRUBY-6782] - load path doesn't respect rubygems when invoked from command line
  • [JRUBY-6784] - Wrong arg passed with lambda with splat
  • [JRUBY-6785] - NoMethodError calling callMethod on instance of reopened Java class
  • [JRUBY-6786] - opening the singleton class of an exception breaks equal and inspect
  • [JRUBY-6788] - Missing prompt in rails console
  • [JRUBY-6791] - RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace
  • [JRUBY-6792] - Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet
  • [JRUBY-6801] - bundle exec no longer works
  • [JRUBY-6802] - JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)
  • [JRUBY-6803] - Reading thousands of files significantly slower with JRuby 1.7
  • [JRUBY-6808] - org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish
  • [JRUBY-6809] - Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails
  • [JRUBY-6812] - 1.7 regression handling Java exceptions
  • [JRUBY-6815] - IO.read doesn't work with pipes
  • [JRUBY-6819] - java.lang.ArrayIndexOutOfBoundsException in String#each_line
  • [JRUBY-6820] - Unexpected behavior of IO.popen when giving arguments as an array containing strings
  • [JRUBY-6821] - FFI::Pointer#write_string is missing
  • [JRUBY-6822] - Net::HTTP SSL connections fail with EAGAIN
  • [JRUBY-6853] - Range with float min max discrepancy
  • [JRUBY-6866] - YAML.parse in 1.8 and 1.9 mode cannot parse trailing tabs
  • [JRUBY-6424] - Allow java_signature to generate throws clause for methods/constructors
  • [JRUBY-6688] - Tempfile#{unlink,delete} should warn or actualy do something
  • [JRUBY-6697] - JRuby 1.7 should report 1.9 as default
  • [JRUBY-6714] - require 'java' in verbose mode causes circular dependency warning
  • [JRUBY-6813] - Implement Time#round
  • [JRUBY-6862] - JRuby.runtime doesn't exist in 1.7 preview2
  • [JRUBY-6816] - jffi 1.2 jar files for FreeBSD
  • [JRUBY-6789] - Test for embedded JRuby are not run by CI
  • [JRUBY-6762] - How to detect if a Ruby method has been defined using ScriptingContainer

Jira Issues resolved for preview1:

  • [JRUBY-928] - Java arrays don't inherit from java.lang.Object in Rubified Java class hierarchy
  • [JRUBY-2317] - File writing is slower in JRuby than MRI
  • [JRUBY-3293] - Cannot reopen a class from an included module
  • [JRUBY-3519] - Wrong work replacement char with russian charset
  • [JRUBY-3812] - Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
  • [JRUBY-3957] - Not possible to 'rescue' exception caused by illegal argument involving a static field
  • [JRUBY-3986] - File inconsistency handles file:/// URLs pointing to things inside a JAR
  • [JRUBY-4105] - Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
  • [JRUBY-4115] - cipher.rb:24: superclass must be a Class (Module given) (TypeError)
  • [JRUBY-4220] - File.dirname(__FILE__) doesn't return correct value when a script is loaded from classpath
  • [JRUBY-4291] - UNIXServer#accept can't be interrupted by kill/raise
  • [JRUBY-4339] - Kernel.load with wrap=true does not protect the global namespace of calling program
  • [JRUBY-4484] - jruby -rtracer doesn't trace
  • [JRUBY-4605] - RubyIO#select puts connectable sockets in the read set instead of write set
  • [JRUBY-4626] - Gaps in STDIN pipe stream if backtick is used
  • [JRUBY-4717] - [1.9.2] New digest methods are missing (base64digest and base64digest!)
  • [JRUBY-4771] - InvokeDynamic's CallSite now takes only MethodHandle in constructor
  • [JRUBY-4843] - COPYING file is (partially) incorrect and outdated
  • [JRUBY-4887] - Problem with ja_JP.eucJP locale
  • [JRUBY-4995] - On Windows, Socket constants do not agree with MRI's, and BasicSocket#setsockopt fails when MRI does not.
  • [JRUBY-5090] - java class objectId() overrides .object_id
  • [JRUBY-5178] - Incorrect SSLSocket implementation loaded despire require 'jruby/openssl/gem_only' statement.
  • [JRUBY-5189] - [1.9] invalid byte sequence in UTF-8
  • [JRUBY-5201] - [1.9] uncaught timeout seems to cause silent failure
  • [JRUBY-5222] - Reopening a file descriptor on a socket doesn't work (gives "could not reopen: null (IOError)")
  • [JRUBY-5279] - assert_raise fails on native exceptions
  • [JRUBY-5317] - Objects loaded via Marshal don't get Java class applied corrected unless passed through fn taking exact type
  • [JRUBY-5320] - require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
  • [JRUBY-5348] - Process.spawn should fail if wrong args passed
  • [JRUBY-5375] - [1.9] Add "Mark" features to Psych
  • [JRUBY-5428] - redblack benchmark slower than it should be
  • [JRUBY-5435] - mkdir_p wrongfully encodes directory names when ran from a Jar
  • [JRUBY-5446] - jcodings no longer in sync with current data 1.9.2 is using
  • [JRUBY-5459] - JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
  • [JRUBY-5512] - regular expressions + regexp = incorrect results.
  • [JRUBY-5547] - add String#byteslice() method
  • [JRUBY-5560] - JRuby does not detect unix socket
  • [JRUBY-5622] - Regex string interpolation breaks unicode properties
  • [JRUBY-5630] - Java calls have lost the Java part of the trace
  • [JRUBY-5643] - [1.9] Array#map and Array#collect produce the same enumerator; should be specific to the method called
  • [JRUBY-5647] - Missing method Socket::ip_address_list
  • [JRUBY-5650] - running "ruby" inside a rake task ignores JRUBY_OPTS
  • [JRUBY-5665] - RubySpec: String#scan failures
  • [JRUBY-5678] - tmpdir cannot be delete when jruby has sudo/root rights
  • [JRUBY-5681] - jruby doesn't fork the backtick command when the command is jruby
  • [JRUBY-5708] - IO.select does not block on unix sockets
  • [JRUBY-5726] - FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
  • [JRUBY-5742] - Fails to use UTF-8 encoded source with BOM.
  • [JRUBY-5745] - MethodFactory impls do not set NativeCall
  • [JRUBY-5762] - Proc#=== is not same as Proc#call in 1.9 mode.
  • [JRUBY-5774] - [ruboto] unsupported Java version: 0.9
  • [JRUBY-5775] - [ruboto] Dir[] gives empty array when listing files below the root of the apk
  • [JRUBY-5779] - $LOADED_FEATURES is updated before loading finished
  • [JRUBY-5792] - Eval error for hashes containing symbols ending with an equals sign
  • [JRUBY-5811] - jruby 1.9 fails to load irb
  • [JRUBY-5813] - FFI::AutoPointer occasionally calls releaser proc when GC'd, even if autorelease is set to false
  • [JRUBY-5823] - jruby -x bug
  • [JRUBY-5835] - [ruboto] File#read fails with jruby-jars-1.6.2
  • [JRUBY-5842] - NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
  • [JRUBY-5852] - Can't serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
  • [JRUBY-5863] - Named captures cause crash when there is no match
  • [JRUBY-5866] - JRuby can't access nested Java class if the class is called 'id'
  • [JRUBY-5874] - Kernel#` and Kernel#system didn't correctly glob when using ruby
  • [JRUBY-5876] - Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
  • [JRUBY-5878] - Enumerator.map is not yielding all values
  • [JRUBY-5881] - Update to jnr-constants 0.8
  • [JRUBY-5943] - Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
  • [JRUBY-5953] - rvm jruby 1.6.3 freezes after issued `irb` or
  • [JRUBY-5955] - maven build of JRuby 1.6.3 fails on Linux Fedora 15
  • [JRUBY-5964] - Digest::Base#file does not handle Pathname as parameter when ran in 1.9
  • [JRUBY-5968] - Mac OSX ant dist failure w/ patch
  • [JRUBY-5973] - Failure to connect to Nailgun server produces confusing error
  • [JRUBY-5977] - test_rubyopts_rubygems_cleared_in_child test failure w/ patch
  • [JRUBY-5981] - Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
  • [JRUBY-5987] - Regression: IncludedModuleWrapper does not delegate to new Module autoload map
  • [JRUBY-5988] - Hash.inspect in --1.9 results in ASCII-8BIT encoding
  • [JRUBY-5989] - MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
  • [JRUBY-5995] - `Readline::HISTORY << str` and push should return HISTORY
  • [JRUBY-5996] - gem update --system crashes with NPE
  • [JRUBY-6031] - ActiveRecord::JDBCError in JRuby 1.6.4
  • [JRUBY-6035] - Randomly changed hash key in overriden []= method in Hash inherited class
  • [JRUBY-6037] - org.objectweb.asm.ClassReader is not found under some circumstances.
  • [JRUBY-6043] - Fix for JRUBY-5965 breaks Mirah macro compilation
  • [JRUBY-6048] - Array#repeated_permutation(n) enumerates nothing when n is greater than the length
  • [JRUBY-6058] - JRuby 1.6.4 incompatible with Google App Engine
  • [JRUBY-6062] - [ruboto][regression] Increased stack usage
  • [JRUBY-6068] - Trunk Build Failure for install_dist_gems task
  • [JRUBY-6070] - TCPSocket#new issues with local_addr and local_port
  • [JRUBY-6071] - IO.select returning arrays with nil elements
  • [JRUBY-6075] - ant dist fails on both master and jruby-1_6 branches
  • [JRUBY-6076] - Mixed-case Java package name not resolved
  • [JRUBY-6100] - NameError Exception if I try to use syck as YAML engine
  • [JRUBY-6101] - JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
  • [JRUBY-6103] - allocator undefined for NativeException
  • [JRUBY-6108] - bin/jruby script has incompatible bourne shell syntax
  • [JRUBY-6110] - Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
  • [JRUBY-6119] - Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
  • [JRUBY-6127] - Magic comment should start in column 1
  • [JRUBY-6129] - Multiple assignment with splatted LHS fails to call #to_ary on corresponding object
  • [JRUBY-6130] - hash#update calls to_hash method on frozen object (in 1.9 mode)
  • [JRUBY-6131] - Integer#round can effectively hang jruby for large negative arguments in --1.9 mode
  • [JRUBY-6137] - Small Leak in Fileno Bookkeeping For STDIO RubyIOs
  • [JRUBY-6141] - All MatchData objects resulting from an invocation of String#scan are updated with the current match
  • [JRUBY-6143] - [1.9] [RubySpec] Regexp Spec failures with /n
  • [JRUBY-6149] - Some native exceptions are wrapped too agressively
  • [JRUBY-6165] - IO.popen forcibly kills process when io is closed
  • [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-6180] - "SystemCallError: Unknown error - Connection reset by peer" should be mapped to Errno::ECONNRESET
  • [JRUBY-6199] - JRuby is hardcoded to use '-mmacos-version-min=10.4' which is not compatible with '-rpath' being used
  • [JRUBY-6202] - JIT-ed class names only use method names, causing collisions
  • [JRUBY-6204] - UTF-8 char in XML hangs in Joni
  • [JRUBY-6221] - json gem encoding/decoding is 2x slower than under MRI
  • [JRUBY-6227] - [1.9] Struct#members and Struct::members should return an Array of Symbols in 1.9
  • [JRUBY-6234] - Kernel.system doesn't work with environement parameters
  • [JRUBY-6237] - Allow the syntax `a = b = f 1`
  • [JRUBY-6239] - unable to silence warnings
  • [JRUBY-6245] - `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
  • [JRUBY-6248] - thread leak
  • [JRUBY-6250] - When executing an Ant build.xml file, the Ant executable should not be required to live on the environment's $PATH
  • [JRUBY-6251] - NailGun and 1.9 seem not to be usable at the same time ( --1.9 and --ng)
  • [JRUBY-6259] - ant test - fails in WinXP: (LoadError) no such file to load -- jruby
  • [JRUBY-6265] - Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
  • [JRUBY-6266] - Unicode encoding problem in CSV.foreach
  • [JRUBY-6269] - JRuby --1.9 cannot load YAML output from JRuby --1.8
  • [JRUBY-6277] - Dependency to compiler package from org.jruby.Ruby breaks Ruboto
  • [JRUBY-6278] - [dev only] Double require bug in the handling of concurrent requires
  • [JRUBY-6279] - Invokedynamic support is missing 'float_op_equal'
  • [JRUBY-6280] - Fails to open fifo for writing.
  • [JRUBY-6281] - [1.9] Applet does not work in the 1.9 mode
  • [JRUBY-6282] - Colon is not allowed in a file name on Windows
  • [JRUBY-6283] - Master crashes when calling an FFI-attached C library function
  • [JRUBY-6284] - Calls to Kernel#exit result in an exception printed on stderr
  • [JRUBY-6285] - JRuby 1.7 master on Java7u2 is *slower* running a benchmark than master on Java6
  • [JRUBY-6291] - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
  • [JRUBY-6292] - Massive perf degradation in pack after ByteList update
  • [JRUBY-6293] - jruby-dist-master does not build C extensions
  • [JRUBY-6295] - Dir.chdir, $HOME and $LOGDIR behavior
  • [JRUBY-6300] - TestMethodmissing testcase fails with Java 7
  • [JRUBY-6301] - scripting_lang.jruby:undefined method in test_loop_1_9.rb
  • [JRUBY-6305] - C Extension fails to build
  • [JRUBY-6307] - Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
  • [JRUBY-6313] - jruby-launcher rspecs fail on ubunutu
  • [JRUBY-6318] - Tempfile#open does not return the value of the block given to it
  • [JRUBY-6320] - "bom|utf-8" File encoding not supported in 1.9 mode
  • [JRUBY-6325] - Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
  • [JRUBY-6327] - java.lang.StringIndexOutOfBoundsException: String index out of range: 1
  • [JRUBY-6328] - [Ruboto][regression] LoadError with master
  • [JRUBY-6341] - Regression: Enumerable#first on a Java list returns an array, not an element
  • [JRUBY-6343] - Running Webrick in 1.9 mode is causing IllegalMonitorStateException
  • [JRUBY-6344] - Embedded \r should not be treated as end of comment line
  • [JRUBY-6349] - Running 'ant clean-all' in git-free environments fails
  • [JRUBY-6371] - Mac OS X installer missing from snapshots directory
  • [JRUBY-6378] - cext fails to compile on 64-bit Ubuntu Oneirc
  • [JRUBY-6386] - time.localtime not taking any arguments
  • [JRUBY-6389] - TypeError: can't convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
  • [JRUBY-6394] - Socket.new takes symbolic protocol, etc
  • [JRUBY-6401] - Psych::SyntaxError while installing some gems in 1.9 mode
  • [JRUBY-6413] - jruby gem install chops off first character from files it extracts
  • [JRUBY-6417] - exception in rake assets:precompile in jruby-1.6.6
  • [JRUBY-6419] - GzipReader encodings still not right; breaks "gem install"
  • [JRUBY-6421] - installing jruby-launcher fails with wrong filenames (zlib error apparently)
  • [JRUBY-6438] - "TypeError: can't convert Array into String" from ffi code in 1.9 mode
  • [JRUBY-6439] - cext: Memory leak in String and Array handling
  • [JRUBY-6449] - connect_nonblock + select needs to eventually finishConnect
  • [JRUBY-6450] - jruby-win32ole fails under java7 and jruby master; can't find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
  • [JRUBY-6451] - memory leak in rb_struct_new
  • [JRUBY-6452] - rb_class_of() calls static object method instead of static long method
  • [JRUBY-6475] - md5 digest causes thread lock
  • [JRUBY-6476] - org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
  • [JRUBY-6477] - Tempfile#stat raises java.lang.NullPointerException when unlinked
  • [JRUBY-6483] - Ruby array to_java does not appear to work
  • [JRUBY-6485] - :__recursive_key__ left in threadlocals
  • [JRUBY-6489] - FileLock.release() throwing Java::JavaLang::NullPointerException
  • [JRUBY-6492] - "InvalidTransformException" on startup of large application
  • [JRUBY-6498] - Net::Http does not close socket when open_timeout is exceeded
  • [JRUBY-6501] - warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
  • [JRUBY-6502] - "Config" should be deprecated in JRuby 1.7 (1.9 mode)
  • [JRUBY-6504] - Block parameter syntax issue where the closing | comes at the beginning of the line
  • [JRUBY-6511] - Timeout doesn't work when https server not responding
  • [JRUBY-6512] - Time.now shows wrong timezone for Moscow region
  • [JRUBY-6517] - StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
  • [JRUBY-6523] - Static ThreadLocals must be weak or soft or not static
  • [JRUBY-6526] - Socket#accept no such method?
  • [JRUBY-6527] - Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
  • [JRUBY-6528] - Socket#connect_nonblock and IO::select appear to be misbehaving?
  • [JRUBY-6533] - JavaNullPointer Exception instead method_missing
  • [JRUBY-6534] - Broken block-local vars in 1.9 mode
  • [JRUBY-6538] - 'obj !~ thing' is not the same as obj.send(:!~, thing)
  • [JRUBY-6541] - DRb::DRbIdConv difference between 1.8 and 1.9
  • [JRUBY-6545] - unable to load win32/registry in 1.9 mode
  • [JRUBY-6549] - JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
  • [JRUBY-6551] - Incorrect Ruby compatibility description displayed
  • [JRUBY-6554] - \r at the end of String can cause SyntaxError
  • [JRUBY-6556] - BigDecimal divided by Rational gives nil in --1.9 mode
  • [JRUBY-6559] - ZLib buggy handling in 1.6.7
  • [JRUBY-6560] - File.expand_path for path starting with "jar:file:" fails
  • [JRUBY-6562] - Join fails on fixnum sub-array
  • [JRUBY-6567] - characters to the console aren't echoed after a background then foreground of jruby irb session
  • [JRUBY-6570] - autoload :Time, 'time' doesn't work
  • [JRUBY-6571] - StackOverflow when calling java.util.regex.Matcher#end
  • [JRUBY-6572] - File.open with 'b' options should always 'gets' string with 'ASCII-8BIT' encoding, regardless the value of 'Encoding.default_internal'
  • [JRUBY-6574] - Socket#bind does not convert nil to 0
  • [JRUBY-6582] - Encoding when using '%' inconsistent with MRI 1.9
  • [JRUBY-6583] - Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require 'haml'
  • [JRUBY-6588] - String#encode should not convert binary to mangled UTF-8
  • [JRUBY-6589] - java.lang.ClassCastException on exit from irb
  • [JRUBY-6590] - DelegateClass subclasses can't include Java interfaces
  • [JRUBY-6598] - to_yaml has garbled text if object contains Chinese or Japanese characters
  • [JRUBY-6599] - test/test_socket.rb spuriously fails
  • [JRUBY-6603] - Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
  • [JRUBY-6604] - Cannot programmatically create regular expression /[\\x80]/n
  • [JRUBY-6605] - java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
  • [JRUBY-6606] - Dir::entries does not support none ascii character
  • [JRUBY-6607] - TCPSocket connect failure inside Timeout leaves orphaned sockets
  • [JRUBY-6611] - LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
  • [JRUBY-6612] - some problems with JRuby seeming to not detect Java Long arithmetic overflows
  • [JRUBY-6618] - NPEs on CI spec run on master
  • [JRUBY-6619] - NoMethodError 'upcase' on Java string
  • [JRUBY-6621] - New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
  • [JRUBY-6623] - In IRB, backslashes are gobbled in the eval loop
  • [JRUBY-6624] - File#exists? cannot find file in JAR
  • [JRUBY-6626] - [Ruboto] ThreadContext throws NPE in finalizer
  • [JRUBY-6627] - File#open fails for file in a JAR with a "jar:" prefix in the path
  • [JRUBY-6628] - #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
  • [JRUBY-6630] - Tempfile doesn't take a hash in the constructor
  • [JRUBY-6631] - Time#nsec always returns 0
  • [JRUBY-6634] - String.new(string) does not seem to clone the input
  • [JRUBY-6637] - String encoding difference between jruby --1.9 and MRI 1.9 (force_encoding a no-op in this case?)
  • [JRUBY-6641] - Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
  • [JRUBY-6642] - RubyException.printBacktrace omits the first line
  • [JRUBY-6644] - Time#strftime doesn't respect %:z
  • [JRUBY-6647] - Comparison of a self referential struct causes a stack overflow
  • [JRUBY-6648] - Opening a file with integer flags mixed with hash options raises an exception
  • [JRUBY-6649] - Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception
  • [JRUBY-6650] - when running the build I get a java.lang.AssertionError during jruby -S maybe_install_gems hoe rdoc
  • [JRUBY-6652] - JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
  • [JRUBY-6654] - Using ruby's standard gserver library causes jruby to run out of memory
  • [JRUBY-6660] - An invalid Makefile is genereated when a 'depend' file exists.
  • [JRUBY-6661] - strftime should behave the same for datetime and time
  • [JRUBY-6668] - StringScanner#scan_until spins forever on UTF-8 data
  • [JRUBY-6669] - failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
  • [JRUBY-6670] - XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
  • [JRUBY-6671] - jruby-launcher fails to compile with GCC 4.6.3 on OSX
  • [JRUBY-6675] - shadowing outer local variable warning in ffi
  • [JRUBY-6710] - locking probleming when autoloading constant in haml
  • [JRUBY-6728] - Rails Mailer fails on
  • [JRUBY-6756] - Test suite fails, jruby-launcher can't be installed
  • [JRUBY-6387] - Should JRuby 1.7 set 1.9 compatibility as default?
  • [JRUBY-3797] - include_class should be deprecated in favor of java_import (and/or import)
  • [JRUBY-4743] - Get a working test-indy target for testing against invokdynamic
  • [JRUBY-5035] - Merge JRuby-OSSL
  • [JRUBY-5135] - jruby.launch.inproc property should default to false
  • [JRUBY-5499] - Update to rubygems 1.5.2 since 1.5.0 has severe bugs
  • [JRUBY-5767] - add .metadata to .gitignore file
  • [JRUBY-5849] - make JAVA_VM to be set from environment
  • [JRUBY-5921] - Switch all (or most) println logging to slf4j logging.
  • [JRUBY-5969] - Implemented a new commandline parser in NKF
  • [JRUBY-5993] - $CLASSPATH allows array additions
  • [JRUBY-6096] - Unable to build completely from source (rdoc missing)
  • [JRUBY-6169] - Update 1.9 Standard Library to 1.9.3p0
  • [JRUBY-6218] - Class and module names may need to be cached
  • [JRUBY-6222] - Remove rdoc data from dist in favor of rdoc-data gem
  • [JRUBY-6229] - Allow a way to activate the profiling API when embedding JRuby
  • [JRUBY-6230] - Cache jar content list to speed up file? operation
  • [JRUBY-6241] - Define a read-only global variable $-W
  • [JRUBY-6337] - poor error message on importing java class
  • [JRUBY-6464] - Use 'mvn versions:set -DnewVersion=<whatever>' instead of our Ruby rake code for updating poms
  • [JRUBY-6496] - Kernel#Hash
  • [JRUBY-6506] - Deprecate ObjectProxyCache
  • [JRUBY-6561] - Update to latest rubygems
  • [JRUBY-6584] - File.mtime() is slower than it should be
  • [JRUBY-5845] - Add slf4j logging to JRuby
  • [JRUBY-5934] - Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
  • [JRUBY-6077] - Allow loading a Ruby source file from the class path using the fully qualified name
  • [JRUBY-6243] - Add support for graph profile with HTML output
  • [JRUBY-6334] - Import multiple classes via java_import
  • [JRUBY-6393] - Implement Addrinfo class
  • [JRUBY-4236] - Please reopen JRUBY-3894
  • [JRUBY-5335] - [1.9] Random instance marshal data incompatible with CRuby 1.9
  • [JRUBY-5568] - Remove MethodFactory "can't load bytecode" logging before 1.6 final
  • [JRUBY-6017] - Undocumented windowBits feature of Zlib::Infrate/Deflate
  • [JRUBY-6078] - Introduce jzlib-based zlib implementation
  • [JRUBY-6145] - Cleanup Maven POMs So 'mvn install' Works Again
  • [JRUBY-6249] - Creating binary for jffi
  • [JRUBY-6379] - rdoc, ri, rdoc-data and 'generate-ri-cache' ant task
  • [JRUBY-2708] - JRuby should load relative path reference to AOT classes

Github Issues resolved since RC2:

  • #316 String#gsub not matching when string read from file in 1.9 mode core
  • #317 regex fails for foreign characters when offset is last character core

Github Issues resolved for RC2:

  • #337 Fix indentation in: e2c3728.
  • #330 mprove performance of the Equals operator in the RubyComparable class for objects of different types
  • #329 only new up kernel32 instance once per jvm
  • #324 Fix #276. For good.
  • #320 Windows Process.kill 'KILL'
  • #319 Windows signal
  • #312 Nested timeout supercedes enclosing timeout
  • #311 Fix edge case where rescued Exceptions may be nil
  • #295 Fix: Added support for the Java cacerts trust anchors
  • #292 Apply '-' behaviour to blank padded format directives.
  • #291 Add encoding annotation to test_unicode_path
  • #278 fix some error message in Struct#\[\]
  • #270 JSON format profile printer
  • #255 JRUBY-6510 fix String.encode!

Github Issues resolved for RC1:

  • #307 Specs for DirectedGraph Library
  • #306 removed snapshot in versions
  • #304 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #303 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph
  • #301 Dynamic String/Symbol/Regexp create too much garbage
  • #300 Symbol table can't look up from ByteList directly
  • #294 no need to report memory/stack as properties
  • #293 Fix for issue #276
  • #282 call Kernel.require ruby method from autoload callback instead of calling internal require
  • #281 call Kernel.require ruby method from autoload callback instead of callin...
  • #280 Kernel require
  • #275 Remove left-over Javadoc params from Java class generator
  • #274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with --1.9)
  • #273 1.6 backport: JRUBY-6810
  • #267 Various fixes for psych
  • #266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect.
  • #265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym
  • #261 Fixnum#to_sym is not defined in Ruby 1.9
  • #259 native threads disabled with C extensions
  • #258 YAML.load_file to empty file gives false

Github Issues resolved for preview2

  • #222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2
  • #176 Fixes JRUBY-6658
  • #174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data
  • #162 Recursive checking threadlocals in Ruby keep runtimes alive
  • #155 invokedynamic: Instance var sites do not age, do not handle dup'ed classes well
  • #145 exception in eval gets written to stderr
  • #141 ConcurrencyError in safe code

JRuby 1.7.0.RC2 Released

Tuesday, October 09 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.RC2. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) This is the second (and likely last) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3. We know that there are still pieces of 1.9 support we don't have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC2 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9. JRuby 1.7 is the first JRuby to support the new "invokedynamic" feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning Please, please, please test your applications against 1.7.0.RC2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful. ### Issues resolved:

Bug

  • [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
  • [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
  • [JRUBY-6510] - String#encode! not correctly implemented.
  • [JRUBY-6838] - Kernel#rand(Range) not supported
  • [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
  • [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
  • [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
  • [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
  • [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars

Improvement

  • [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
  • [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.
### Github Issues resolved: - #337: Fix indentation in: e2c3728. - #330: mprove performance of the Equals operator in the RubyComparable class for objects of different types - #329: only new up kernel32 instance once per jvm - #324: Fix #276. For good. - #320: Windows Process.kill 'KILL' - #319: Windows signal - #312: Nested timeout supercedes enclosing timeout - #311: Fix edge case where rescued Exceptions may be nil - #295: Fix: Added support for the Java cacerts trust anchors - #292: Apply '-' behaviour to blank padded format directives. - #291: Add encoding annotation to test_unicode_path - #278: fix some error message in Struct#\[\] - #270: JSON format profile printer - #255: JRUBY-6510 fix String.encode!

JRuby 1.7.0.RC2 Released

Tuesday, October 09 2012

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

This is the second (and likely last) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.

We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC2 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9.

JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning

Please, please, please test your applications against 1.7.0.RC2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.

Issues resolved:

Bug

  • [JRUBY-5732] - Error with selector: java.nio.channels.ClosedChannelException
  • [JRUBY-6140] - Net::POP3 (and possibly other things) cannot verify certificate using JRE's trust anchors
  • [JRUBY-6510] - String#encode! not correctly implemented.
  • [JRUBY-6838] - Kernel#rand(Range) not supported
  • [JRUBY-6912] - __FILE__ has an extra preceding slash in windows
  • [JRUBY-6913] - with jdk 7, system commands run in windows use wrong line endings
  • [JRUBY-6914] - Rake Tasks no longer work with Bundler under JRuby 1.7.0.RC1
  • [JRUBY-6918] - Ant: "instance vars on non-persistent Java type Java::OrgApacheToolsAnt::UnknownElement"
  • [JRUBY-6922] - Regexp#match interpets pos parameter in term of bytes instead of chars

Improvement

  • [JRUBY-5451] - Unessesary late error message when subclassing a packaged class with no public constructors.
  • [JRUBY-6915] - Improve performance of the Equals operator in the RubyComparable class for objects of different types.

Github Issues resolved:

  • 337: Fix indentation in: e2c3728.

  • 330: mprove performance of the Equals operator in the RubyComparable class for objects of different types

  • 329: only new up kernel32 instance once per jvm

  • 324: Fix #276. For good.

  • 320: Windows Process.kill ‘KILL’

  • 319: Windows signal

  • 312: Nested timeout supercedes enclosing timeout

  • 311: Fix edge case where rescued Exceptions may be nil

  • 295: Fix: Added support for the Java cacerts trust anchors

  • 292: Apply ‘-’ behaviour to blank padded format directives.

  • 291: Add encoding annotation to test_unicode_path

  • 278: fix some error message in Struct#[]

  • 270: JSON format profile printer

  • 255: JRUBY-6510 fix String.encode!

JRuby 1.7.0.RC1 Released

Tuesday, September 25 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.RC1. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) This is the first (and hopefully only) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3. We know that there are still pieces of 1.9 support we don't have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC1 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9. JRuby 1.7 is the first JRuby to support the new "invokedynamic" feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning Please, please, please test your applications against 1.7.0.RC1. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful. ### Notable Changes: - 1\.9\.3 is now our default runtime mode (--1.8 is needed for 1.8.7 support) - Many 1.9.x compatibility fixes - Several IO transcoding issues - Improvements and fixes to Java integration - 113 issues resolved ### Issues resolved:

Bug

  • [JRUBY-3622] - newInstance and getDeclaredConstructor fail to respect class overridden in JRuby
  • [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
  • [JRUBY-3786] - RubyGems tests are not green; fix remaining failures/errors
  • [JRUBY-4732] - Clean up anything that calls dataGetStruct on a wrapped Java object to get the object
  • [JRUBY-4756] - Interface that has abstract methods final in Ruby hierarchy break "real class" implementation
  • [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
  • [JRUBY-5284] - Create full Exception hierarchy in Java types
  • [JRUBY-5303] - [1.9] Wrong parameters parse for method signatures with default values
  • [JRUBY-5314] - Classloader-sourced "load" will attempt to read a dir as a Ruby file
  • [JRUBY-5323] - control-c in cmd while running webrick rails app does not kill jruby.exe
  • [JRUBY-5583] - Profiling should not bomb out trying to find method name
  • [JRUBY-5675] - Difference in include behaviour in --1.9 mode
  • [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
  • [JRUBY-5700] - Segmentation fault - IBM JDK
  • [JRUBY-5848] - jruby-core maven artifact has broken dependencies
  • [JRUBY-5902] - STDIN.gets under cygwin doesn't work
  • [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
  • [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
  • [JRUBY-6074] - Re-release jruby-win32ole with Java 5
  • [JRUBY-6105] - become_java! returns nil for Ruby classes that inherit from Java classes
  • [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
  • [JRUBY-6126] - [1.9] [RubySpec] In 1.9 mode, for should yield only as many values as there are arguments
  • [JRUBY-6195] - [1.9] Process.spawn (and related methods) ignore option hash
  • [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
  • [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
  • [JRUBY-6447] - 1.9 patched oniguruma issues a number of warnings (e.g. for character classes, unknown coderanges) we omit silently
  • [JRUBY-6516] - IO.select times out with ssl connection
  • [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
  • [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
  • [JRUBY-6578] - File.readlink with chdir
  • [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
  • [JRUBY-6595] - segfault with win32/registry
  • [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
  • [JRUBY-6622] - Unable to Load encrypted Private Key pem file
  • [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
  • [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
  • [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
  • [JRUBY-6656] - JRuby subclass cannot call super with arguments if parent constructor is varargs
  • [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
  • [JRUBY-6696] - 32 bit jruby cannot run with 64 bit JVM installed
  • [JRUBY-6699] - OpenSSL::PKey::RSA.new fails on Windows
  • [JRUBY-6704] - JRuby should provide couterparts of MRI Ruby bundled Gems
  • [JRUBY-6738] - Kernel.load(..., true) --> scope problem
  • [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
  • [JRUBY-6773] - ERB parsing in JRuby 1.6.6
  • [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
  • [JRUBY-6790] - Possible long integer overflow in fixnumStep in RubyNumeric.java
  • [JRUBY-6799] - Reopening Java class fails if set with ScriptingContainer#put and Java class
  • [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
  • [JRUBY-6824] - Missing files/dirs in source tarball/zip
  • [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
  • [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
  • [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
  • [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
  • [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
  • [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
  • [JRUBY-6837] - Encoding Problems in Rails 3.2
  • [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
  • [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
  • [JRUBY-6841] - State file use in UUID gem causes severe performance degradation
  • [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
  • [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
  • [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
  • [JRUBY-6852] - Setting compile mode when using ScriptingContainer
  • [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
  • [JRUBY-6855] - Signal.list missing 'KILL' on Windows
  • [JRUBY-6858] - OpenSSL::HMAC missing reset method
  • [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
  • [JRUBY-6860] - String#slice on strings with multibyte chars fails
  • [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
  • [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
  • [JRUBY-6867] - Parsing issues with long lines
  • [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
  • [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
  • [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
  • [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
  • [JRUBY-6884] - Unexpected stack trace using ARM based linux
  • [JRUBY-6885] - method_missing and private methods behave differently
  • [JRUBY-6888] - Loading a newer joda-time seems to not work
  • [JRUBY-6891] - SSLSocket.accept forces reverse DNS lookup, not required for most SSL and sometimes causes very poor performance
  • [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
  • [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
  • [JRUBY-6896] - nil treated as 0 in call to Thread#join

Improvement

  • [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
  • [JRUBY-6275] - double locking a mutex could use a better error message, line number
  • [JRUBY-6445] - Allow a way to resolve interface methods from with Ruby proxy modules
  • [JRUBY-6500] - Compiler improvements
  • [JRUBY-6643] - jrubyc AOT Java compilation doesn't identify failure cause
  • [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only

New Feature

  • [JRUBY-4670] - Plug ruby2java java2ruby marshalling
  • [JRUBY-6835] - A way to send a block of code across processes.
  • [JRUBY-6883] - Enable subclassing of Java classes on Dalvik

Task

  • [JRUBY-6466] - externalize build_lib dependencies

Test

  • [JRUBY-6873] - jruby-1.7.0.preview2 much slower jruby-1.6.3 (192s vs.60s)

Github Issues

- #307 Specs for DirectedGraph Library - #306 removed snapshot in versions - #304 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph - #303 DirectedGraph Specs : Removing a vertex doesn't remove edges from the graph - #301 Dynamic String/Symbol/Regexp create too much garbage - #300 Symbol table can't look up from ByteList directly - #294 no need to report memory/stack as properties - #293 Fix for issue #276 - #282 call Kernel.require ruby method from autoload callback instead of calling internal require - #281 call Kernel.require ruby method from autoload callback instead of callin... - #280 Kernel require - #275 Remove left-over Javadoc params from Java class generator - #274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with --1.9) - #273 1.6 backport: JRUBY-6810 - #267 Various fixes for psych - #266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect. - #265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym - #261 Fixnum#to_sym is not defined in Ruby 1.9 - #259 native threads disabled with C extensions - #258 YAML.load_file to empty file gives false

JRuby 1.7.0.RC1 Released

Tuesday, September 25 2012

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

This is the first (and hopefully only) release candidate of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.

We know that there are still pieces of 1.9 support we don’t have yet, like Ripper, but we think we are at a stable point where people can use JRuby in 1.9 mode to host production applications. Barring any significantly serious issues, RC1 will become 1.7.0. Our plan after the release of 1.7.0 is a set of smaller point releases to address bugs and to add the few missing pieces of Ruby 1.9.

JRuby 1.7 is the first JRuby to support the new “invokedynamic” feature of the JVM. You can enable invokedynamic use on Java 7, but it is disabled normally due to JVM issues. On Java 8 builds, it is enabled by default. http://wiki.jruby.org/PerformanceTuning

Please, please, please test your applications against 1.7.0.RC1. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.

Notable Changes:

  • 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
  • Many 1.9.x compatibility fixes
  • Several IO transcoding issues
  • Improvements and fixes to Java integration
  • 113 issues resolved

Issues resolved:

Bug

  • [JRUBY-3622] - newInstance and getDeclaredConstructor fail to respect class overridden in JRuby
  • [JRUBY-3765] - DummyDynamicScope should never be used for backref storage
  • [JRUBY-3786] - RubyGems tests are not green; fix remaining failures/errors
  • [JRUBY-4732] - Clean up anything that calls dataGetStruct on a wrapped Java object to get the object
  • [JRUBY-4756] - Interface that has abstract methods final in Ruby hierarchy break "real class" implementation
  • [JRUBY-5226] - ri error while installing Rails -- Cannot create a file named '<'
  • [JRUBY-5284] - Create full Exception hierarchy in Java types
  • [JRUBY-5303] - [1.9] Wrong parameters parse for method signatures with default values
  • [JRUBY-5314] - Classloader-sourced "load" will attempt to read a dir as a Ruby file
  • [JRUBY-5323] - control-c in cmd while running webrick rails app does not kill jruby.exe
  • [JRUBY-5583] - Profiling should not bomb out trying to find method name
  • [JRUBY-5675] - Difference in include behaviour in --1.9 mode
  • [JRUBY-5697] - Kernel#rand implementation does not match mri and rbx
  • [JRUBY-5700] - Segmentation fault - IBM JDK
  • [JRUBY-5848] - jruby-core maven artifact has broken dependencies
  • [JRUBY-5902] - STDIN.gets under cygwin doesn't work
  • [JRUBY-5908] - exec regression in windows since 1.6.0 (?)
  • [JRUBY-6026] - OS X install postfligh script does not work with (t)csh
  • [JRUBY-6074] - Re-release jruby-win32ole with Java 5
  • [JRUBY-6105] - become_java! returns nil for Ruby classes that inherit from Java classes
  • [JRUBY-6106] - JRuby 1.9 coverage library reports different results than ruby 1.9
  • [JRUBY-6126] - [1.9] [RubySpec] In 1.9 mode, for should yield only as many values as there are arguments
  • [JRUBY-6195] - [1.9] Process.spawn (and related methods) ignore option hash
  • [JRUBY-6235] - IO#read_nonblock always raises Errno::EAGAIN: Resource temporarily unavailable
  • [JRUBY-6346] - Error establishing SSL connections: OpenSSL::SSL::SSLError: Socket closed
  • [JRUBY-6447] - 1.9 patched oniguruma issues a number of warnings (e.g. for character classes, unknown coderanges) we omit silently
  • [JRUBY-6516] - IO.select times out with ssl connection
  • [JRUBY-6550] - [1.9] yield yields incorrect args when splatted args passed as 2nd arg to yield
  • [JRUBY-6568] - A Proc on a symbol like (&:first) works in 1.8, but not in 1.9 mode
  • [JRUBY-6578] - File.readlink with chdir
  • [JRUBY-6581] - "yield called out of block" for Enumerators created with enum_for
  • [JRUBY-6595] - segfault with win32/registry
  • [JRUBY-6620] - On windows if JAVA_HOME ends in a '\' then native launcher bombs
  • [JRUBY-6622] - Unable to Load encrypted Private Key pem file
  • [JRUBY-6632] - BigDecimal.new fails when passed anything but string (Float, BigDecimal, Fixnum)
  • [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects
  • [JRUBY-6640] - stat.st_gid unsupported or native support failed to load org/jruby/RubyFileStat.java:432
  • [JRUBY-6656] - JRuby subclass cannot call super with arguments if parent constructor is varargs
  • [JRUBY-6665] - Multicast not working on Windows (see test_socket.rb)
  • [JRUBY-6696] - 32 bit jruby cannot run with 64 bit JVM installed
  • [JRUBY-6699] - OpenSSL::PKey::RSA.new fails on Windows
  • [JRUBY-6704] - JRuby should provide couterparts of MRI Ruby bundled Gems
  • [JRUBY-6738] - Kernel.load(..., true) --> scope problem
  • [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
  • [JRUBY-6773] - ERB parsing in JRuby 1.6.6
  • [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some long integer overflows
  • [JRUBY-6790] - Possible long integer overflow in fixnumStep in RubyNumeric.java
  • [JRUBY-6799] - Reopening Java class fails if set with ScriptingContainer#put and Java class
  • [JRUBY-6810] - YAML.load(YAML.dump(lambda{})) should raise TypeError
  • [JRUBY-6824] - Missing files/dirs in source tarball/zip
  • [JRUBY-6825] - ClassReader ClassNotFoundException in verbose mode on jruby-1.7.0-preview2
  • [JRUBY-6827] - ClassCastException with DummyDynamicScope in String#rpartition? with -X+C
  • [JRUBY-6828] - TypeError when returning non-nil from a proc called from Java by interface
  • [JRUBY-6832] - self is wrong in set_trace_func when raising NoMethodErrors
  • [JRUBY-6833] - FFI::Buffer#get_string(off, len) returns trailing NUL byte
  • [JRUBY-6836] - Strange interactions between a break statement and ensure blocks
  • [JRUBY-6837] - Encoding Problems in Rails 3.2
  • [JRUBY-6839] - issuing 'jruby -v' causes Java exception "Ruby: org.objectweb.asm.ClassReader java.lang.ClassNotFoundException: org.objectweb.asm.ClassReader"
  • [JRUBY-6840] - Java package class calls no longer working in 1.7.0-pre2
  • [JRUBY-6841] - State file use in UUID gem causes severe performance degradation
  • [JRUBY-6843] - Encoding::UndefinedConversionError when reading from IO stream given by open-uri's Kernel#open()
  • [JRUBY-6849] - pp Object.new shows 0x0000000 instead of a unique number for each object.
  • [JRUBY-6851] - IO#set_encoding doesn't work with Encoding object
  • [JRUBY-6852] - Setting compile mode when using ScriptingContainer
  • [JRUBY-6854] - EXCEPTION_ACCESS_VIOLATION
  • [JRUBY-6855] - Signal.list missing 'KILL' on Windows
  • [JRUBY-6858] - OpenSSL::HMAC missing reset method
  • [JRUBY-6859] - java.lang.ArrayIndexOutOfBoundsException when using --profile.api . MAX_PROFILE_METHODS too low?
  • [JRUBY-6860] - String#slice on strings with multibyte chars fails
  • [JRUBY-6863] - multibyte strings after String#slice get wrong result on String#index(rindex)
  • [JRUBY-6865] - JRuby allows invalid attr_accessor (MRI raises exception)
  • [JRUBY-6867] - Parsing issues with long lines
  • [JRUBY-6868] - Exceptions thrown when running with Coverage enabled
  • [JRUBY-6871] - Encoding::UndefinedConversionError when dropping a mongo database with Mongoid 3
  • [JRUBY-6872] - Behavior of Math.sqrt(Float::NAN) does not match MRI
  • [JRUBY-6875] - JRuby should load "some_path/some_file.jar.rb" if "some_path/some_file.jar" is required and "some_path/some_file.jar" does not exist.
  • [JRUBY-6884] - Unexpected stack trace using ARM based linux
  • [JRUBY-6885] - method_missing and private methods behave differently
  • [JRUBY-6888] - Loading a newer joda-time seems to not work
  • [JRUBY-6891] - SSLSocket.accept forces reverse DNS lookup, not required for most SSL and sometimes causes very poor performance
  • [JRUBY-6892] - Calling #drop on an Enumerator doesn't work properly
  • [JRUBY-6894] - In 1.8 mode, generator.rb refers to non-existent generator_internal
  • [JRUBY-6896] - nil treated as 0 in call to Thread#join

Improvement

  • [JRUBY-5380] - Use Hotspot-specific features for calculating CPU time when available
  • [JRUBY-6275] - double locking a mutex could use a better error message, line number
  • [JRUBY-6445] - Allow a way to resolve interface methods from with Ruby proxy modules
  • [JRUBY-6500] - Compiler improvements
  • [JRUBY-6643] - jrubyc AOT Java compilation doesn't identify failure cause
  • [JRUBY-6890] - Rework paths to be similar to MRI + redefinable + defined in one place only

New Feature

  • [JRUBY-4670] - Plug ruby2java java2ruby marshalling
  • [JRUBY-6835] - A way to send a block of code across processes.
  • [JRUBY-6883] - Enable subclassing of Java classes on Dalvik

Task

  • [JRUBY-6466] - externalize build_lib dependencies

Test

  • [JRUBY-6873] - jruby-1.7.0.preview2 much slower jruby-1.6.3 (192s vs.60s)

Github Issues

  • 307 Specs for DirectedGraph Library

  • 306 removed snapshot in versions

  • 304 DirectedGraph Specs : Removing a vertex doesn’t remove edges from the graph

  • 303 DirectedGraph Specs : Removing a vertex doesn’t remove edges from the graph

  • 301 Dynamic String/Symbol/Regexp create too much garbage

  • 300 Symbol table can’t look up from ByteList directly

  • 294 no need to report memory/stack as properties

  • 293 Fix for issue #276

  • 282 call Kernel.require ruby method from autoload callback instead of calling internal require

  • 281 call Kernel.require ruby method from autoload callback instead of callin…

  • 280 Kernel require

  • 275 Remove left-over Javadoc params from Java class generator

  • 274 Implicit blocks from Symbol#to_proc does surprising and wrong things (with –1.9)

  • 273 1.6 backport: JRUBY-6810

  • 267 Various fixes for psych

  • 266 When call Kernel#singleton_class. And instance variables disappeared from Kernel#inspect.

  • 265 JRuby19mode behavior is different with CRuby. Fixnum#to_sym

  • 261 Fixnum#to_sym is not defined in Ruby 1.9

  • 259 native threads disabled with C extensions

  • 258 YAML.load_file to empty file gives false

JRuby 1.6.8 Released

Tuesday, September 18 2012

The JRuby community is pleased to announce the release of JRuby 1.6.8. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.7.2 (and lower) are encouraged to upgrade to 1.6.8. This release is a somewhat special release in that JRuby community members were primarily responsible for performing the backporting of fixes. These fixes represented what current users of JRuby 1.6.x wanted in a JRuby 1.6.8. Special thanks to merge-master David Kellum for putting so much effort into make JRuby 1.6.8 a reality. ### Notable Changes: - Updated to RubyGems 1.8.24 - Fixed a resource leak in LoadService - No more accidental GC of runtime state in unusual situations - Various 1.9 compability fixes ### 1.6.8 Commits: - d991aba Fix JRUBY-6892: Calling #drop on an Enumerator doesn't work properly - f125aeb Up the dose on windows JRE - 496bf09 Bump for new version of jffi - 996fc86 Bump for upcoming release - 18d8bb1 Update to working i386 Windows jffi. - 34b46fe Revert non-proc allocator fix because it breaks tb. Work with them for different soln for 1.7.0 - 8b966d6 Make maven know about yesterdays jartravaganza - c4f70e2 Fix JRUBY-6452 - CallStaticLongMethod instead of CallStaticObjectMethod - cc93dab Update this test to match master to remove the printStacktrace (and presumably make this pass on windows) - 45af2c6 Remove spec due to asm4 upgrade (it will be alright) - 709f3a5 Fix IntelliJ setup for jruby-1_6 branch. - 6dbe84f Update Makefile so cexts can compile again on MacOS - 964717c Does this look safe to you? - 1d1ec53 Fix #162 - d96b69e Partial solution for #162. - 1bf66f8 Fix recursiveKey usage across multiple threads (JRUBY-6621) - 2f73450 Use thread-local state for all recursive checks. - 102f85a Merge pull request #283 from dekellum/1-6-backport-6865 - eec9bbe Merge pull request #284 from dekellum/1-6-backport-6860,6863 - e443d7e Merge pull request #285 from dekellum/1-6-backport-6872 - 149b646 Actually fix JRUBY-6872. - 2bcf438 Fix JRUBY-6872 and remaining math excludes. - ea52040 Fix JRUBY-6860 - ae3ee49 Fix JRUBY-6863 - 254d8e5 Fix JRUBY-6865 - 57b4637 Work around some old jffi bugs with struct-by-value params to fix JRUBY-6876 - 22c66fd Update to jnr-netdb 1.0.7 (fixes multi-threaded getservbyname() crashes on linux) - 41098eb Merge pull request #254 from dekellum/1-6-backport-gh224 - 151d0a6 Merge pull request #253 from dekellum/1-6-backport-gh245 - f9a2c6b Merge pull request #252 from dekellum/1-6-backport-6820 - 5ae7300 Merge pull request #273 from dekellum/1-6-backport-6810 - ab0fd82 Fix JRUBY-6810 - 9ded4e9 Fix JRUBY-6845 - syslog(3) should be attached as a variadic function - b493eb4 Backport FFI::DataConverter#reference_required? fixes from master - c886e01 Fix Issue #262 (ffi/ffi/#221) - 5ff7afd JRUBY-6820: Unexpected behavior of IO.popen when giving arguments as an array containing strings - 80fcc90 Implement some unimplemented Process::Status methods and change the way signals are parsed from friendly name to integer. - 1abdc0c Flip the isShared flag only after the array's values have been copied over. - ecb5c6b Merge pull request #251 from dekellum/1-6-backport-6815 - 0d8fa5c Merge pull request #250 from dekellum/1-6-backport-6819 - 03291b2 Merge pull request #249 from dekellum/1-6-backport-6658 - 944e4ba Merge pull request #248 from dekellum/1-6-backport-6792 - 581aee7 Merge pull request #247 from dekellum/1-6-backport-6813 - 0a15994 JRUBY-6815: IO.read doesn't work with pipes - 4478f83 Fix JRUBY-6819 - db3fd5e Fixes JRUBY-6658 - d25edcc Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected - 2969acd Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected - f78b088 Implement Time#round. This fixes JRUBY-6813. - c6a559a Tag some long-failing specs on jruby-1_6 branch. - 8115b8c Fix JRUBY-6514 - b8d0ca6 Fix JRUBY-6395: Coerce Fixnum to Number - 86ef07e Fix JRUBY-6731 - 7c8dba1 JRUBY-6785 Make the receiver for callMethod more consistent. Allow nil as a receiver. Allow Java objects as receivers. These will be wrapped before use. - a90bb11 JRUBY-6785 Allow ScriptingContainer#callMethod to be called on a Java object. Allow ScriptingContainer#callMethod to be called using nil as a receiver - 684ce37 Fix JRUBY-6775: RubyRandom is not thread-safe - 413edcb Fix JRUBY-6753 - 98724c3 Fix JRUBY-6722 - 400c73a Fix JRUBY-6724 - f9b745f Fix for JRUBY-6725. See jruby/ruby repo for description. - 44b8f31 Fix JRUBY-6745 - 0324c3d Fix for JRUBY-6728. This fixes Nokogiri's 1.9 test error of PrettyPrint as well as https://github.com/sparklemotion/nokogiri/issues/657. - a62f4af Errant printf removed - ddc48ae Fix JRUBY-6706 - df5b336 Fixes JRUBY-6677 - 566ae5d Remove Enumerable#join. This resolves JRUBY-6703. - c82a360 JRUBY-6708: NullPointerException instead of proper exceptions output - 5f65879 Fix JRUBY-6248 - 280e435 Fix JRUBY-6517 - 9a122ed Fix JRUBY-6642. - 82a2f2d JRUBY-6464: Use "mvn versions:set -DnewVersion=<whatever>" instead of our Ruby rake code for updating poms - 7153b89 Remove -mimpure-text from CFLAGS. Fixes JRUBY-6633. - 8623090 Check if all throwables are Java exceptions in interpreted mode (JRUBY-6641) - 0fe664a JRUBY-6611: Fix resource leak in LoadServiceResource - 2ce65e1 Regression spec for JRUBY-6634. - b8e182d JRUBY-6626 Ensure thread is set on finalize - defb411 JRUBY-6624 Strip jar: prefix when searching for files in a JAR - 2e6d4c8 Add copyright notice for Yecht. This resolves JRUBY-4843. - 4b462fd Add spec for JRUBY-6571 - cbbbf38 Mitigation for JRUBY-6576 - 22a52eb Regression test for JRUBY-5863. - fc17ab4 Fix JRUBY-6570: autoload :Time, 'time' doesn't work - c591134 Fix JRUBY-5863: Named captures cause crash when there is no match - fd9ca2e Fix JRUBY-6571: StackOverflow when calling java.util.regex.Matcher#end - 7b370c2 JRUBY-6559: GzipReader#rewind crashes when the input stream is serially-multiplexed like RubyGems - 61f2cf0 Implement Kernel#Hash. Fixes JRUBY-6496. - 358883f JRUBY-6560 Fix File.expand_path for jar:file:/ paths - 1ef14f1 Fix JRUBY-6538: 'obj !~ thing' is not the same as obj.send(:!~, thing) - 202a45c Fix JRUBY-6489 - 40e87d7 Add rdoc to gems we install for dist, since hoe appears to depend on it now. - 5837b58 Correctly check the already-loaded file cache - 6f398e8 Tweaks to match master fix for JRUBY-6607, JRUBY-6498. - ef59f99 Fix JRUBY-6619: NoMethodError 'upcase' on Java string - 734662f Add spec for JRUBY-6661, which is already fixed by the previous commit. - 6bc0674 Fix JRUBY-6661: strftime should behave the same for datetime and time - 13bccdd Fix JRUBY-6633: gcc 4.7 compilation fails - aab80da Allow primitive boxes to pass for primitive toJava targets. - 26e08ba Don't forget Evan - dedcfc2 Hmmm...my cherry-pick missed a lot - 3d756d1 Bump for 1.6.7.2 - 0804bcb Hmmm, perhaps I should have reversed this...full steam ahead - 9a44218 Update Eclipse classpath setting - 57cf31a Update to RubyGems 1.8.24. - 94f07cf Add missing SSL cert. - 7762e4c Update to RubyGems 1.8.23 - d078fee Update for security release 1.6.7.1 - 904fd37 Update to RubyGems 1.8.21. - 985cae8 Spec for JRUBY-6612 - b8364a6 Fix JRUBY-6612. Detect special case where Long.MIN_VALUE == -1\*Long.MIN_VALUE in Java, and guard accordingly. It is a bit hack-ish, but it will do for now. Spec to be added later. - 4a8ed93 Update to RubyGems 1.8.21. - 465bc21 JRUBY-6580: Fix performance drop with threadsafe autoload - 03c14ba Prevents "cygpath: can't convert empty path" on cygwin when no other jars besides jruby.jar are present in $JRUBY_HOME/lib (as is the case with a fresh install). - 95cc9cc No plans for 1.6.8.dev, but we definitely hsould not keep it as 1.6.7 - 08cf4a4 JRUBY-4502: Wrong gzip data crashes JRuby (collab w/ nahi...thanks nahi!) - 515bc51 Fix JRUBY-6544: CR at the end of String can cause SyntaxError - 65e3fb4 Spec for JRUBY-6344 - 9002961 Allow cexts to build under OpenJDK on OS X, where os.arch == 'amd64' - 045bb05 No email notifications from travis. - a9958df Make rake+ant specs more robust when no JAVA_HOME env is set. - ff1c6ba Remove formatting, external class from time-to-date JI test. - 26ea1a5 Add travis build for 1.6 branch. - 9f4ebdb Fix JRUBY-6541 - f3b846a Fix JRUBY-6522 - c3df4da JRUBY-6518: Array#combination returns unexpected value when argument number too big - 86cb0ba Fix JRUBY-6497

JRuby 1.6.8 Released

Tuesday, September 18 2012

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

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.7.2 (and lower) are encouraged to upgrade to 1.6.8.

This release is a somewhat special release in that JRuby community members were primarily responsible for performing the backporting of fixes. These fixes represented what current users of JRuby 1.6.x wanted in a JRuby 1.6.8. Special thanks to merge-master David Kellum for putting so much effort into make JRuby 1.6.8 a reality.

Notable Changes:

  • Updated to RubyGems 1.8.24
  • Fixed a resource leak in LoadService
  • No more accidental GC of runtime state in unusual situations
  • Various 1.9 compability fixes

1.6.8 Commits:

  • d991aba Fix JRUBY-6892: Calling #drop on an Enumerator doesn’t work properly
  • f125aeb Up the dose on windows JRE
  • 496bf09 Bump for new version of jffi
  • 996fc86 Bump for upcoming release
  • 18d8bb1 Update to working i386 Windows jffi.
  • 34b46fe Revert non-proc allocator fix because it breaks tb. Work with them for different soln for 1.7.0
  • 8b966d6 Make maven know about yesterdays jartravaganza
  • c4f70e2 Fix JRUBY-6452 - CallStaticLongMethod instead of CallStaticObjectMethod
  • cc93dab Update this test to match master to remove the printStacktrace (and presumably make this pass on windows)
  • 45af2c6 Remove spec due to asm4 upgrade (it will be alright)
  • 709f3a5 Fix IntelliJ setup for jruby-1_6 branch.
  • 6dbe84f Update Makefile so cexts can compile again on MacOS
  • 964717c Does this look safe to you?
  • 1d1ec53 Fix #162
  • d96b69e Partial solution for #162.
  • 1bf66f8 Fix recursiveKey usage across multiple threads (JRUBY-6621)
  • 2f73450 Use thread-local state for all recursive checks.
  • 102f85a Merge pull request #283 from dekellum/1-6-backport-6865
  • eec9bbe Merge pull request #284 from dekellum/1-6-backport-6860,6863
  • e443d7e Merge pull request #285 from dekellum/1-6-backport-6872
  • 149b646 Actually fix JRUBY-6872.
  • 2bcf438 Fix JRUBY-6872 and remaining math excludes.
  • ea52040 Fix JRUBY-6860
  • ae3ee49 Fix JRUBY-6863
  • 254d8e5 Fix JRUBY-6865
  • 57b4637 Work around some old jffi bugs with struct-by-value params to fix JRUBY-6876
  • 22c66fd Update to jnr-netdb 1.0.7 (fixes multi-threaded getservbyname() crashes on linux)
  • 41098eb Merge pull request #254 from dekellum/1-6-backport-gh224
  • 151d0a6 Merge pull request #253 from dekellum/1-6-backport-gh245
  • f9a2c6b Merge pull request #252 from dekellum/1-6-backport-6820
  • 5ae7300 Merge pull request #273 from dekellum/1-6-backport-6810
  • ab0fd82 Fix JRUBY-6810
  • 9ded4e9 Fix JRUBY-6845 - syslog(3) should be attached as a variadic function
  • b493eb4 Backport FFI::DataConverter#reference_required? fixes from master
  • c886e01 Fix Issue #262 (ffi/ffi/#221)
  • 5ff7afd JRUBY-6820: Unexpected behavior of IO.popen when giving arguments as an array containing strings
  • 80fcc90 Implement some unimplemented Process::Status methods and change the way signals are parsed from friendly name to integer.
  • 1abdc0c Flip the isShared flag only after the array’s values have been copied over.
  • ecb5c6b Merge pull request #251 from dekellum/1-6-backport-6815
  • 0d8fa5c Merge pull request #250 from dekellum/1-6-backport-6819
  • 03291b2 Merge pull request #249 from dekellum/1-6-backport-6658
  • 944e4ba Merge pull request #248 from dekellum/1-6-backport-6792
  • 581aee7 Merge pull request #247 from dekellum/1-6-backport-6813
  • 0a15994 JRUBY-6815: IO.read doesn’t work with pipes
  • 4478f83 Fix JRUBY-6819
  • db3fd5e Fixes JRUBY-6658
  • d25edcc Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected
  • 2969acd Fix for JRUBY-6792: Keep a hard reference to the current ThreadContext to avoid it being collected
  • f78b088 Implement Time#round. This fixes JRUBY-6813.
  • c6a559a Tag some long-failing specs on jruby-1_6 branch.
  • 8115b8c Fix JRUBY-6514
  • b8d0ca6 Fix JRUBY-6395: Coerce Fixnum to Number
  • 86ef07e Fix JRUBY-6731
  • 7c8dba1 JRUBY-6785 Make the receiver for callMethod more consistent. Allow nil as a receiver. Allow Java objects as receivers. These will be wrapped before use.
  • a90bb11 JRUBY-6785 Allow ScriptingContainer#callMethod to be called on a Java object. Allow ScriptingContainer#callMethod to be called using nil as a receiver
  • 684ce37 Fix JRUBY-6775: RubyRandom is not thread-safe
  • 413edcb Fix JRUBY-6753
  • 98724c3 Fix JRUBY-6722
  • 400c73a Fix JRUBY-6724
  • f9b745f Fix for JRUBY-6725. See jruby/ruby repo for description.
  • 44b8f31 Fix JRUBY-6745
  • 0324c3d Fix for JRUBY-6728. This fixes Nokogiri’s 1.9 test error of PrettyPrint as well as https://github.com/sparklemotion/nokogiri/issues/657.
  • a62f4af Errant printf removed
  • ddc48ae Fix JRUBY-6706
  • df5b336 Fixes JRUBY-6677
  • 566ae5d Remove Enumerable#join. This resolves JRUBY-6703.
  • c82a360 JRUBY-6708: NullPointerException instead of proper exceptions output
  • 5f65879 Fix JRUBY-6248
  • 280e435 Fix JRUBY-6517
  • 9a122ed Fix JRUBY-6642.
  • 82a2f2d JRUBY-6464: Use “mvn versions:set -DnewVersion=<whatever>” instead of our Ruby rake code for updating poms
  • 7153b89 Remove -mimpure-text from CFLAGS. Fixes JRUBY-6633.
  • 8623090 Check if all throwables are Java exceptions in interpreted mode (JRUBY-6641)
  • 0fe664a JRUBY-6611: Fix resource leak in LoadServiceResource
  • 2ce65e1 Regression spec for JRUBY-6634.
  • b8e182d JRUBY-6626 Ensure thread is set on finalize
  • defb411 JRUBY-6624 Strip jar: prefix when searching for files in a JAR
  • 2e6d4c8 Add copyright notice for Yecht. This resolves JRUBY-4843.
  • 4b462fd Add spec for JRUBY-6571
  • cbbbf38 Mitigation for JRUBY-6576
  • 22a52eb Regression test for JRUBY-5863.
  • fc17ab4 Fix JRUBY-6570: autoload :Time, ‘time’ doesn’t work
  • c591134 Fix JRUBY-5863: Named captures cause crash when there is no match
  • fd9ca2e Fix JRUBY-6571: StackOverflow when calling java.util.regex.Matcher#end
  • 7b370c2 JRUBY-6559: GzipReader#rewind crashes when the input stream is serially-multiplexed like RubyGems
  • 61f2cf0 Implement Kernel#Hash. Fixes JRUBY-6496.
  • 358883f JRUBY-6560 Fix File.expand_path for jar:file:/ paths
  • 1ef14f1 Fix JRUBY-6538: ‘obj !~ thing’ is not the same as obj.send(:!~, thing)
  • 202a45c Fix JRUBY-6489
  • 40e87d7 Add rdoc to gems we install for dist, since hoe appears to depend on it now.
  • 5837b58 Correctly check the already-loaded file cache
  • 6f398e8 Tweaks to match master fix for JRUBY-6607, JRUBY-6498.
  • ef59f99 Fix JRUBY-6619: NoMethodError ‘upcase’ on Java string
  • 734662f Add spec for JRUBY-6661, which is already fixed by the previous commit.
  • 6bc0674 Fix JRUBY-6661: strftime should behave the same for datetime and time
  • 13bccdd Fix JRUBY-6633: gcc 4.7 compilation fails
  • aab80da Allow primitive boxes to pass for primitive toJava targets.
  • 26e08ba Don’t forget Evan
  • dedcfc2 Hmmm…my cherry-pick missed a lot
  • 3d756d1 Bump for 1.6.7.2
  • 0804bcb Hmmm, perhaps I should have reversed this…full steam ahead
  • 9a44218 Update Eclipse classpath setting
  • 57cf31a Update to RubyGems 1.8.24.
  • 94f07cf Add missing SSL cert.
  • 7762e4c Update to RubyGems 1.8.23
  • d078fee Update for security release 1.6.7.1
  • 904fd37 Update to RubyGems 1.8.21.
  • 985cae8 Spec for JRUBY-6612
  • b8364a6 Fix JRUBY-6612. Detect special case where Long.MIN_VALUE == -1*Long.MIN_VALUE in Java, and guard accordingly. It is a bit hack-ish, but it will do for now. Spec to be added later.
  • 4a8ed93 Update to RubyGems 1.8.21.
  • 465bc21 JRUBY-6580: Fix performance drop with threadsafe autoload
  • 03c14ba Prevents “cygpath: can’t convert empty path” on cygwin when no other jars besides jruby.jar are present in $JRUBY_HOME/lib (as is the case with a fresh install).
  • 95cc9cc No plans for 1.6.8.dev, but we definitely hsould not keep it as 1.6.7
  • 08cf4a4 JRUBY-4502: Wrong gzip data crashes JRuby (collab w/ nahi…thanks nahi!)
  • 515bc51 Fix JRUBY-6544: CR at the end of String can cause SyntaxError
  • 65e3fb4 Spec for JRUBY-6344
  • 9002961 Allow cexts to build under OpenJDK on OS X, where os.arch == ‘amd64’
  • 045bb05 No email notifications from travis.
  • a9958df Make rake+ant specs more robust when no JAVA_HOME env is set.
  • ff1c6ba Remove formatting, external class from time-to-date JI test.
  • 26ea1a5 Add travis build for 1.6 branch.
  • 9f4ebdb Fix JRUBY-6541
  • f3b846a Fix JRUBY-6522
  • c3df4da JRUBY-6518: Array#combination returns unexpected value when argument number too big
  • 86cb0ba Fix JRUBY-6497

JRuby 1.7.0.preview2 Released

Tuesday, August 07 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.preview2. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) This is the second preview release of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3. We have opted for another preview cycle due to the amount of reports about improperly working transcoding support. We have greatly improved transcoding of IO and users should be much happier with 1.7.0.preview2. Due to some issues with Java 7's invokedynamic support we decided to disable the support by default. It will be turned back on when Java 7 fixes those issues. See http://wiki.jruby.org/PerformanceTuning Please, please, please test your applications against 1.7.0.preview2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful. ### Notable Changes: - 1\.9\.3 is now our default runtime mode (--1.8 is needed for 1.8.7 support) - Many 1.9.x compatibility fixes - invokedynamic has been disabled for now on Java 7 (still on by default on Java 8) - Performance and concurrency improvements - Java 5 support dropped (Java 6+ required) - Several IO transcoding issues - YAML now encodes scalars properly instead of using Java locale - Kernel#exec now does a true native exec on all platforms - Improvements and fixes to Java integration and embedding - Fix several native support issues on Solaris - 122 issues resolved ### Issues resolved: - JRUBY-5053 memory leak in rubygems - JRUBY-5785 BUG: invoking UndefinedMethod.call - JRUBY-5899 NotImplementedError: Process::Status#exited? not implemented - JRUBY-5939 \[:space:\] does not match unicode 0x3000: fullwidth whitespace - JRUBY-6056 High CPU Loop with parallel Etc.group iterrations - JRUBY-6121 Local variables cross eval scopes - JRUBY-6124 Yielding no values to a block gives ArrayIndexOutOfBoundsException - JRUBY-6125 Yielding a single object to a block with \|a, b\| arguments does not call \#to_ary - JRUBY-6181 SSH Agent forwarding does not work with jRuby \(which lets capistrano ssh-deployments fail\) - JRUBY-6253 IBM JVM rejects class/method names with \#, as in our JIT recently. - JRUBY-6286 jnr-posix WindowsHelpers.isBatch Always Returns False - JRUBY-6299 Slow perf in String#split or #join on 1.9 mode - JRUBY-6317 YAML can't parse some valid unicode characters - JRUBY-6330 Performance degradation in Time.strptime with invokedynamic - JRUBY-6376 File.stat.size on Solaris: ridiculously large results - JRUBY-6395 Coerce Fixnum to Number - JRUBY-6424 Allow java_signature to generate throws clause for methods/constructors - JRUBY-6428 Regression: Float#to_d doesn't work on 1.7 (did in 1.6) - JRUBY-6459 JRuby head causes rack response to change behaviour - JRUBY-6465 out of memory building c extensions - JRUBY-6481 AccessControl exceptions attempting to create JRuby instances in applet - JRUBY-6493 Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body - JRUBY-6494 File#directory? always returns false on Solaris - JRUBY-6495 java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException - JRUBY-6514 java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException - JRUBY-6521 With Java 7, nailgun client cannot list local gems more than once - JRUBY-6525 FFI bug with Solaris JRuby >=1.6.6 - JRUBY-6532 ftp.nlst, ftp.ls doesn't work on JDK 7u3 - JRUBY-6548 REXML error when reading files containing ISO-8859-1 encoded data - JRUBY-6552 File.directory? does not work under 1.9 mode on Solaris - JRUBY-6553 Application continues running after throwing out of memory exception in Thread. - JRUBY-6613 special characters like umlauts make Kramdown hang (works with MRI Rubies) - JRUBY-6615 File.open ignores specified external encoding - JRUBY-6638 Multicast UDPSocket send does not work with host and port - JRUBY-6639 Marshal.load takes forever when deserializing Rails unicode db in WEBrick - JRUBY-6658 Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry - JRUBY-6663 \`jruby -S bundle exec rails c\` fails with "Bundler: command not found" - JRUBY-6666 Open3.popen3 failing due to missing handling for \[path, argv\[0\]\] array - JRUBY-6674 Inconsistent java method/signature choosing depending on java version/platform - JRUBY-6677 open\("\|something", "w"\) does not open in write mode - JRUBY-6678 compilation fails for CC="ccache gcc" - JRUBY-6679 Encoding.default_external discrepancy between JRuby and MRI - JRUBY-6682 ' jgem search -r ak ' causes exceptions. - JRUBY-6685 Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows - JRUBY-6686 JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod - JRUBY-6688 Tempfile#{unlink,delete} should warn or actualy do something - JRUBY-6693 Get the terminal width with JRuby - JRUBY-6694 Invalid byte sequence in utf-8 - JRUBY-6697 JRuby 1.7 should report 1.9 as default - JRUBY-6701 Net::HTTP ignore JSE defined HTTP Proxy options - JRUBY-6702 File.utime does not check file permissions - JRUBY-6703 Remove Enumerable#join from 1.9 mode - JRUBY-6705 Error during gem loading in Rails: ActiveRecord is not missing constant Base - JRUBY-6706 Collections.shuffle works incorreclty on Ruby arrays - JRUBY-6707 JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree - JRUBY-6708 NullPointerException instead of proper exceptions output - JRUBY-6709 ffi problems on 1.7.0.preview1? - JRUBY-6711 JRuby 1.7 needs a formal release of jline - JRUBY-6713 win32/registry.rb warning - JRUBY-6714 require 'java' in verbose mode causes circular dependency warning - JRUBY-6715 jruby-openssl cert validation fails on windows - JRUBY-6717 jruby1.7.0preview1 doesn't work on Windows with jdk7 - JRUBY-6718 crash with java.lang.invoke.WrongMethodTypeException - JRUBY-6721 probably extraneous warning message generated - JRUBY-6722 Can't instantiate ThreadGroup subclass with arguments - JRUBY-6724 NO_FILE_CLASS Profile does disables File but not FileStats that depends on File - JRUBY-6725 NameError: uninitialized constant RubyVM - JRUBY-6729 1.9: block argument to yield method is not correctly pass to a block. \-\- pp's seplist method - JRUBY-6731 Can't load class files in WARs compiled by warbler using jruby 1.7.0.preview1 - JRUBY-6734 Socket.new seems broken \-\- throws exceptions on valid params - JRUBY-6735 FileUtils.chmod broken for symlinks - JRUBY-6737 Cannot use rspec with JRuby 1.7 - JRUBY-6739 Does not read UTF-16 properly - JRUBY-6740 BasicObject.respond_to? raises a "undefined method \`respond_to_missing?\'" - JRUBY-6741 Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux - JRUBY-6742 ant dist aborts on non-Mac hosts - JRUBY-6745 ClassCastException calling Fixnum\#== with a Java Integer - JRUBY-6746 OpenSSL 'connect_nonblock' missing/broken in 1.6.7 and 1.7.0.preview1 - JRUBY-6748 Race condition still in thread list - JRUBY-6753 class_eval should inherit \_\_name\_\_ from the caller - JRUBY-6755 Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4) - JRUBY-6760 ArgumentError output - JRUBY-6761 NoMethodError: undefined method \`recvfrom\' for \#<Socket:fd> - JRUBY-6762 How to detect if a Ruby method has been defined using ScriptingContainer - JRUBY-6764 Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown. - JRUBY-6766 \-\-profile slows down Array#join , which distorts profiling results - JRUBY-6768 Instance variable value is lost under certain circumstances - JRUBY-6769 Curried lambda/proc does not work correctly with Array.map - JRUBY-6773 ERB parsing in JRuby 1.6.6 - JRUBY-6774 wrong exception class thrown when opening file after Dir.chdir - JRUBY-6775 RubyRandom is not thread-safe - JRUBY-6776 Array#join(nil) should use $, as a separator for compatibility - JRUBY-6778 Possible long integer overflow bug in Integer#succ in RubyInteger.java - JRUBY-6779 Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem? - JRUBY-6780 File.open creates file without permissions - JRUBY-6782 load path doesn't respect rubygems when invoked from command line - JRUBY-6784 Wrong arg passed with lambda with splat - JRUBY-6785 NoMethodError calling callMethod on instance of reopened Java class - JRUBY-6786 opening the singleton class of an exception breaks equal and inspect - JRUBY-6788 Missing prompt in rails console - JRUBY-6789 Test for embedded JRuby are not run by CI - JRUBY-6791 RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace - JRUBY-6792 Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet - JRUBY-6801 bundle exec no longer works - JRUBY-6802 JSON generation for largish data structures v. slow under 1.7 (JDK 1.6) - JRUBY-6803 Reading thousands of files significantly slower with JRuby 1.7 - JRUBY-6808 org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish - JRUBY-6809 Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails - JRUBY-6813 Implement Time#round - JRUBY-6815 IO.read doesn't work with pipes - JRUBY-6816 jffi 1.2 jar files for FreeBSD - JRUBY-6819 java.lang.ArrayIndexOutOfBoundsException in String#each_line - JRUBY-6820 Unexpected behavior of IO.popen when giving arguments as an array containing strings - JRUBY-6821 FFI::Pointer#write_string is missing - JRUBY-6822 Net::HTTP SSL connections fail with EAGAIN - GH-222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2 - GH-176 Fixes JRUBY-6658 - GH-174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data - GH-162 Recursive checking threadlocals in Ruby keep runtimes alive - GH-155 invokedynamic: Instance var sites do not age, do not handle dup'ed classes well - GH-145 exception in eval gets written to stderr - GH-141 ConcurrencyError in safe code

JRuby 1.7.0.preview2 Released

Tuesday, August 07 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.preview2.

This is the second preview release of JRuby 1.7. The JRuby 1.7 release series represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.

We have opted for another preview cycle due to the amount of reports about improperly working transcoding support. We have greatly improved transcoding of IO and users should be much happier with 1.7.0.preview2.

Due to some issues with Java 7‘s invokedynamic support we decided to disable the support by default. It will be turned back on when Java 7 fixes those issues. See http://wiki.jruby.org/PerformanceTuning

Please, please, please test your applications against 1.7.0.preview2. We want to make 1.7.0 a rock solid release and your contribution is extremely helpful.

Notable Changes:

  • 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
  • Many 1.9.x compatibility fixes
  • invokedynamic has been disabled for now on Java 7 (still on by default on Java 8)
  • Performance and concurrency improvements
  • Java 5 support dropped (Java 6+ required)
  • Several IO transcoding issues
  • YAML now encodes scalars properly instead of using Java locale
  • Kernel#exec now does a true native exec on all platforms
  • Improvements and fixes to Java integration and embedding
  • Fix several native support issues on Solaris
  • 122 issues resolved

Issues resolved:

  • JRUBY-5053 memory leak in rubygems

  • JRUBY-5785 BUG: invoking UndefinedMethod.call

  • JRUBY-5899 NotImplementedError: Process::Status#exited? not implemented

  • JRUBY-5939 [:space:] does not match unicode 0x3000: fullwidth whitespace

  • JRUBY-6056 High CPU Loop with parallel Etc.group iterrations

  • JRUBY-6121 Local variables cross eval scopes

  • JRUBY-6124 Yielding no values to a block gives ArrayIndexOutOfBoundsException

  • JRUBY-6125 Yielding a single object to a block with |a, b| arguments does not call #to_ary

  • JRUBY-6181 SSH Agent forwarding does not work with jRuby (which lets capistrano ssh-deployments fail)

  • JRUBY-6253 IBM JVM rejects class/method names with #, as in our JIT recently.

  • JRUBY-6286 jnr-posix WindowsHelpers.isBatch Always Returns False

  • JRUBY-6299 Slow perf in String#split or #join on 1.9 mode

  • JRUBY-6317 YAML can’t parse some valid unicode characters

  • JRUBY-6330 Performance degradation in Time.strptime with invokedynamic

  • JRUBY-6376 File.stat.size on Solaris: ridiculously large results

  • JRUBY-6395 Coerce Fixnum to Number

  • JRUBY-6424 Allow java_signature to generate throws clause for methods/constructors

  • JRUBY-6428 Regression: Float#to_d doesn’t work on 1.7 (did in 1.6)

  • JRUBY-6459 JRuby head causes rack response to change behaviour

  • JRUBY-6465 out of memory building c extensions

  • JRUBY-6481 AccessControl exceptions attempting to create JRuby instances in applet

  • JRUBY-6493 Calling dynamically defined method throws Java::JavaLang::NullPointerException or returns nil without executing method body

  • JRUBY-6494 File#directory? always returns false on Solaris

  • JRUBY-6495 java.nio.ByteBuffer.wrap throws java.lang.IndexOutOfBoundsException

  • JRUBY-6514 java.lang.NullPointerException when using ScriptingCotainer from an Appletjava.lang.NullPointerException

  • JRUBY-6521 With Java 7, nailgun client cannot list local gems more than once

  • JRUBY-6525 FFI bug with Solaris JRuby >=1.6.6

  • JRUBY-6532 ftp.nlst, ftp.ls doesn’t work on JDK 7u3

  • JRUBY-6548 REXML error when reading files containing ISO-8859-1 encoded data

  • JRUBY-6552 File.directory? does not work under 1.9 mode on Solaris

  • JRUBY-6553 Application continues running after throwing out of memory exception in Thread.

  • JRUBY-6613 special characters like umlauts make Kramdown hang (works with MRI Rubies)

  • JRUBY-6615 File.open ignores specified external encoding

  • JRUBY-6638 Multicast UDPSocket send does not work with host and port

  • JRUBY-6639 Marshal.load takes forever when deserializing Rails unicode db in WEBrick

  • JRUBY-6658 Problem when setting up an autoload entry, defining a class via require, then redefining the autoload entry

  • JRUBY-6663 `jruby -S bundle exec rails c` fails with “Bundler: command not found”

  • JRUBY-6666 Open3.popen3 failing due to missing handling for [path, argv[0]] array

  • JRUBY-6674 Inconsistent java method/signature choosing depending on java version/platform

  • JRUBY-6677 open(“|something”, “w”) does not open in write mode

  • JRUBY-6678 compilation fails for CC=“ccache gcc”

  • JRUBY-6679 Encoding.default_external discrepancy between JRuby and MRI

  • JRUBY-6682 ‘ jgem search -r ak ‘ causes exceptions.

  • JRUBY-6685 Encoding problem when using JRuby 1.7.0.preview1 + Nokogiri under Windows

  • JRUBY-6686 JRuby/RSolr - BLOCKED on org.jruby.internal.runtime.methods.InvocationMethodFactory.getCompiledMethod

  • JRUBY-6688 Tempfile#{unlink,delete} should warn or actualy do something

  • JRUBY-6693 Get the terminal width with JRuby

  • JRUBY-6694 Invalid byte sequence in utf-8

  • JRUBY-6697 JRuby 1.7 should report 1.9 as default

  • JRUBY-6701 Net::HTTP ignore JSE defined HTTP Proxy options

  • JRUBY-6702 File.utime does not check file permissions

  • JRUBY-6703 Remove Enumerable#join from 1.9 mode

  • JRUBY-6705 Error during gem loading in Rails: ActiveRecord is not missing constant Base

  • JRUBY-6706 Collections.shuffle works incorreclty on Ruby arrays

  • JRUBY-6707 JRuby master (1.7) is LOT slower than jRuby 1.6.7 & MRI in generating tictactoe game tree

  • JRUBY-6708 NullPointerException instead of proper exceptions output

  • JRUBY-6709 ffi problems on 1.7.0.preview1?

  • JRUBY-6711 JRuby 1.7 needs a formal release of jline

  • JRUBY-6713 win32/registry.rb warning

  • JRUBY-6714 require ‘java’ in verbose mode causes circular dependency warning

  • JRUBY-6715 jruby-openssl cert validation fails on windows

  • JRUBY-6717 jruby1.7.0preview1 doesn’t work on Windows with jdk7

  • JRUBY-6718 crash with java.lang.invoke.WrongMethodTypeException

  • JRUBY-6721 probably extraneous warning message generated

  • JRUBY-6722 Can’t instantiate ThreadGroup subclass with arguments

  • JRUBY-6724 NO_FILE_CLASS Profile does disables File but not FileStats that depends on File

  • JRUBY-6725 NameError: uninitialized constant RubyVM

  • JRUBY-6729 1.9: block argument to yield method is not correctly pass to a block. -- pp’s seplist method

  • JRUBY-6731 Can’t load class files in WARs compiled by warbler using jruby 1.7.0.preview1

  • JRUBY-6734 Socket.new seems broken -- throws exceptions on valid params

  • JRUBY-6735 FileUtils.chmod broken for symlinks

  • JRUBY-6737 Cannot use rspec with JRuby 1.7

  • JRUBY-6739 Does not read UTF-16 properly

  • JRUBY-6740 BasicObject.respond_to? raises a “undefined method `respond_to_missing?'”

  • JRUBY-6741 Inconsistent == on java.lang.Integer between Mac and RedHat Enterprise Linux

  • JRUBY-6742 ant dist aborts on non-Mac hosts

  • JRUBY-6745 ClassCastException calling Fixnum#== with a Java Integer

  • JRUBY-6746 OpenSSL ‘connect_nonblock’ missing/broken in 1.6.7 and 1.7.0.preview1

  • JRUBY-6748 Race condition still in thread list

  • JRUBY-6753 class_eval should inherit __name__ from the caller

  • JRUBY-6755 Test suite failure: Unable to resolve dependencies: rdoc requires json (~> 1.4)

  • JRUBY-6760 ArgumentError output

  • JRUBY-6761 NoMethodError: undefined method `recvfrom' for #<Socket:fd>

  • JRUBY-6762 How to detect if a Ruby method has been defined using ScriptingContainer

  • JRUBY-6764 Ascii or UTF-8 Encoding ascii substrings that originated from binary string causes an exception to be thrown.

  • JRUBY-6766 --profile slows down Array#join , which distorts profiling results

  • JRUBY-6768 Instance variable value is lost under certain circumstances

  • JRUBY-6769 Curried lambda/proc does not work correctly with Array.map

  • JRUBY-6773 ERB parsing in JRuby 1.6.6

  • JRUBY-6774 wrong exception class thrown when opening file after Dir.chdir

  • JRUBY-6775 RubyRandom is not thread-safe

  • JRUBY-6776 Array#join(nil) should use $, as a separator for compatibility

  • JRUBY-6778 Possible long integer overflow bug in Integer#succ in RubyInteger.java

  • JRUBY-6779 Strange behaviour of some Integer Ranges with Range#each - maybe an integer overflow problem?

  • JRUBY-6780 File.open creates file without permissions

  • JRUBY-6782 load path doesn’t respect rubygems when invoked from command line

  • JRUBY-6784 Wrong arg passed with lambda with splat

  • JRUBY-6785 NoMethodError calling callMethod on instance of reopened Java class

  • JRUBY-6786 opening the singleton class of an exception breaks equal and inspect

  • JRUBY-6788 Missing prompt in rails console

  • JRUBY-6789 Test for embedded JRuby are not run by CI

  • JRUBY-6791 RuntimExceptions with a Ruby Exception as cause will not print out complete stacktrace

  • JRUBY-6792 Occasional java.lang.ArrayIndexOutOfBoundsException calling ScriptingContainer#runScriptlet

  • JRUBY-6801 bundle exec no longer works

  • JRUBY-6802 JSON generation for largish data structures v. slow under 1.7 (JDK 1.6)

  • JRUBY-6803 Reading thousands of files significantly slower with JRuby 1.7

  • JRUBY-6808 org.jruby.ext.ffi.Platform does not determineCPU or determineOS properly on Turkish

  • JRUBY-6809 Time::utc sub-millisecond inaccuracy, causes incorrect date in Rails

  • JRUBY-6813 Implement Time#round

  • JRUBY-6815 IO.read doesn’t work with pipes

  • JRUBY-6816 jffi 1.2 jar files for FreeBSD

  • JRUBY-6819 java.lang.ArrayIndexOutOfBoundsException in String#each_line

  • JRUBY-6820 Unexpected behavior of IO.popen when giving arguments as an array containing strings

  • JRUBY-6821 FFI::Pointer#write_string is missing

  • JRUBY-6822 Net::HTTP SSL connections fail with EAGAIN

  • GH-222 MatchData.begin(n) always returns 0 in jruby-1.6.7.2

  • GH-176 Fixes JRUBY-6658

  • GH-174 JRUBY-6668: StringScanner#scan_until spins forever on UTF-8 data

  • GH-162 Recursive checking threadlocals in Ruby keep runtimes alive

  • GH-155 invokedynamic: Instance var sites do not age, do not handle dup’ed classes well

  • GH-145 exception in eval gets written to stderr

  • GH-141 ConcurrencyError in safe code

JRuby 1.7.0.preview1 Released

Monday, May 21 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.preview1. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) This is the first preview release of JRuby 1.7. This release represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users on Java 7 should start to see gains from invokedynamic, the JVM's new support for dynamic languages. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3. We have opted for a preview cycle this time due to the significance of changes in this release and our desire to give users more time to test JRuby before releasing 1.7 final. When in doubt, file a bug...we'll sort it out. We want to know issues users have with JRuby 1.7 sooner rather than later. ### Notable Changes: - 1\.9\.3 is now our default runtime mode (--1.8 is needed for 1.8.7 support) - Many 1.9.x compatibility fixes - Support for Java 7's invokedynamic\* - Performance and concurrency improvements - Java 5 support dropped (Java 6+ required) - Update to Rubygems 1.8.24 - Update to Rake 0.9.2.2 - 259 issues resolved \*Note on invokedynamic performance: Invokedynamic is still a new feature for the JVM, so we recommend running as recent a build of Java 7 as possible. Builds of OpenJDK/Oracle JDK prior to "update 2" will show poor performance. Invokedynamic support can be disabled with -Xcompile.invokedynamic=false (passed to JRuby) for investigating perf issues or bugs. ### Issues resolved: - JRUBY-928 Java arrays don't inherit from java.lang.Object in Rubified Java class hierarchy - JRUBY-2317 File writing is slower in JRuby than MRI - JRUBY-2708 JRuby should load relative path reference to AOT classes - JRUBY-3293 Cannot reopen a class from an included module - JRUBY-3519 Wrong work replacement char with russian charset - JRUBY-3797 include_class should be deprecated in favor of java_import (and/or import) - JRUBY-3812 Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received - JRUBY-3986 File inconsistency handles file:/// URLs pointing to things inside a JAR - JRUBY-4105 Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib - JRUBY-4115 cipher.rb:24: superclass must be a Class (Module given) (TypeError) - JRUBY-4220 File.dirname(\_\_FILE\_\_) doesn't return correct value when a script is loaded from classpath - JRUBY-4236 Please reopen JRUBY-3894 - JRUBY-4291 UNIXServer#accept can't be interrupted by kill/raise - JRUBY-4339 Kernel.load with wrap=true does not protect the global namespace of calling program - JRUBY-4484 jruby -rtracer doesn't trace - JRUBY-4605 RubyIO#select puts connectable sockets in the read set instead of write set - JRUBY-4717 1.9: New digest methods are missing (base64digest and base64digest!) - JRUBY-4743 Get a working test-indy target for testing against invokdynamic - JRUBY-4843 COPYING file is (partially) incorrect and outdated - JRUBY-4887 Problem with ja_JP.eucJP locale - JRUBY-5035 Merge JRuby-OSSL - JRUBY-5090 java class objectId() overrides .object_id - JRUBY-5201 1.9: uncaught timeout seems to cause silent failure - JRUBY-5222 Reopening a file descriptor on a socket doesn't work (gives "could not reopen: null (IOError)") - JRUBY-5317 Objects loaded via Marshal don't get Java class applied corrected unless passed through fn taking exact type - JRUBY-5320 require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes - JRUBY-5335 1.9: Random instance marshal data incompatible with CRuby 1.9 - JRUBY-5348 Process.spawn should fail if wrong args passed - JRUBY-5375 1.9: Add "Mark" features to Psych - JRUBY-5446 jcodings no longer in sync with current data 1.9.2 is using - JRUBY-5459 JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath - JRUBY-5499 Update to rubygems 1.5.2 since 1.5.0 has severe bugs - JRUBY-5512 regular expressions + regexp = incorrect results. - JRUBY-5547 add String#byteslice() method - JRUBY-5560 JRuby does not detect unix socket - JRUBY-5568 Remove MethodFactory "can't load bytecode" logging before 1.6 final - JRUBY-5622 Regex string interpolation breaks unicode properties - JRUBY-5630 Java calls have lost the Java part of the trace - JRUBY-5643 1.9: Array#map and Array#collect produce the same enumerator; should be specific to the method called - JRUBY-5647 Missing method Socket::ip_address_list - JRUBY-5665 RubySpec: String#scan failures - JRUBY-5678 tmpdir cannot be delete when jruby has sudo/root rights - JRUBY-5708 IO.select does not block on unix sockets - JRUBY-5726 FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows - JRUBY-5762 Proc#=== is not same as Proc#call in 1.9 mode. - JRUBY-5767 add .metadata to .gitignore file - JRUBY-5774 ruboto: unsupported Java version: 0.9 - JRUBY-5775 ruboto: Dir\[\] gives empty array when listing files below the root of the apk - JRUBY-5779 $LOADED_FEATURES is updated before loading finished - JRUBY-5792 Eval error for hashes containing symbols ending with an equals sign - JRUBY-5811 jruby 1.9 fails to load irb - JRUBY-5813 FFI::AutoPointer occasionally calls releaser proc when GC'd, even if autorelease is set to false - JRUBY-5823 jruby -x bug - JRUBY-5835 ruboto: File#read fails with jruby-jars-1.6.2 - JRUBY-5842 NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber - JRUBY-5845 Add slf4j logging to JRuby - JRUBY-5849 make JAVA_VM to be set from environment - JRUBY-5852 Can't serialize RubyModule, subclass of RubyBasicObject, which extends Serializable - JRUBY-5863 Named captures cause crash when there is no match - JRUBY-5866 JRuby can't access nested Java class if the class is called 'id' - JRUBY-5874 Kernel#\` and Kernel#system didn't correctly glob when using ruby - JRUBY-5876 Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe - JRUBY-5878 Enumerator.map is not yielding all values - JRUBY-5881 Update to jnr-constants 0.8 - JRUBY-5921 Switch all (or most) println logging to slf4j logging. - JRUBY-5934 Writing ENV\[\]= changes through to the real ENV (via POSIX) should be configurable per runtime - JRUBY-5943 Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform - JRUBY-5953 rvm jruby 1.6.3 freezes after issued \`irb\` or - JRUBY-5955 maven build of JRuby 1.6.3 fails on Linux Fedora 15 - JRUBY-5964 Digest::Base#file does not handle Pathname as parameter when ran in 1.9 - JRUBY-5968 Mac OSX ant dist failure w/ patch - JRUBY-5969 Implemented a new commandline parser in NKF - JRUBY-5973 Failure to connect to Nailgun server produces confusing error - JRUBY-5977 test_rubyopts_rubygems_cleared_in_child test failure w/ patch - JRUBY-5981 Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes - JRUBY-5987 Regression: IncludedModuleWrapper does not delegate to new Module autoload map - JRUBY-5988 Hash.inspect in --1.9 results in ASCII-8BIT encoding - JRUBY-5989 MacOSX Installer Build Task Unzip Overwrite Issue w/ patch - JRUBY-5993 $CLASSPATH allows array additions - JRUBY-5995 \`Readline::HISTORY << str\` and push should return HISTORY - JRUBY-5996 gem update --system crashes with NPE - JRUBY-6017 Undocumented windowBits feature of Zlib::Infrate/Deflate - JRUBY-6031 ActiveRecord::JDBCError in JRuby 1.6.4 - JRUBY-6035 Randomly changed hash key in overriden \[\]= method in Hash inherited class - JRUBY-6037 org.objectweb.asm.ClassReader is not found under some circumstances. - JRUBY-6043 Fix for JRUBY-5965 breaks Mirah macro compilation - JRUBY-6048 Array#repeated_permutation(n) enumerates nothing when n is greater than the length - JRUBY-6058 JRuby 1.6.4 incompatible with Google App Engine - JRUBY-6062 ruboto: regression: Increased stack usage - JRUBY-6068 Trunk Build Failure for install_dist_gems task - 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-6076 Mixed-case Java package name not resolved - JRUBY-6077 Allow loading a Ruby source file from the class path using the fully qualified name - JRUBY-6078 Introduce jzlib-based zlib implementation - JRUBY-6096 Unable to build completely from source (rdoc missing) - JRUBY-6100 NameError Exception if I try to use syck as YAML engine - JRUBY-6101 JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message - JRUBY-6103 allocator undefined for NativeException - JRUBY-6108 bin/jruby script has incompatible bourne shell syntax - JRUBY-6119 Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails - JRUBY-6127 Magic comment should start in column 1 - JRUBY-6129 Multiple assignment with splatted LHS fails to call #to_ary on corresponding objec - JRUBY-6130 hash#update calls to_hash method on frozen object (in 1.9 mode) - JRUBY-6131 Integer#round can effectively hang jruby for large negative arguments in --1.9 mode - JRUBY-6137 Small Leak in Fileno Bookkeeping For STDIO RubyIOs - JRUBY-6141 All MatchData objects resulting from an invocation of String#scan are updated with the current match - JRUBY-6143 1.9: RubySpec: Regexp Spec failures with /n - JRUBY-6145 Cleanup Maven POMs So 'mvn install' Works Again - JRUBY-6149 Some native exceptions are wrapped too agressively - JRUBY-6165 IO.popen forcibly kills process when io is closed - JRUBY-6169 Update 1.9 Standard Library to 1.9.3p0 - 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-6180 "SystemCallError: Unknown error - Connection reset by peer" should be mapped to Errno::ECONNRESET - JRUBY-6199 JRuby is hardcoded to use '-mmacos-version-min=10.4' which is not compatible with '-rpath' being used - JRUBY-6202 JIT-ed class names only use method names, causing collisions - JRUBY-6204 UTF-8 char in XML hangs in Joni - JRUBY-6221 json gem encoding/decoding is 2x slower than under MRI - JRUBY-6222 Remove rdoc data from dist in favor of rdoc-data gem - JRUBY-6227 1.9: Struct#members and Struct::members should return an Array of Symbols in 1.9 - JRUBY-6229 Allow a way to activate the profiling API when embedding JRuby - JRUBY-6230 Cache jar content list to speed up file? operation - JRUBY-6234 Kernel.system doesn't work with environement parameters - JRUBY-6237 Allow the syntax \`a = b = f 1\` - JRUBY-6239 unable to silence warnings - JRUBY-6241 Define a read-only global variable $-W - JRUBY-6243 Add support for graph profile with HTML output - JRUBY-6245 \`ant test\` errors on Windows with test_dir_with_jar_without_dir_entry.rb - JRUBY-6248 thread leak - JRUBY-6249 Creating binary for jffi - JRUBY-6250 When executing an Ant build.xml file, the Ant executable should not be required to live on the environment's $PATH - JRUBY-6251 NailGun and 1.9 seem not to be usable at the same time ( --1.9 and --ng) - JRUBY-6259 ant test - fails in WinXP: (LoadError) no such file to load -- jruby - JRUBY-6265 Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work - JRUBY-6266 Unicode encoding problem in CSV.foreach - JRUBY-6269 JRuby --1.9 cannot load YAML output from JRuby --1.8 - JRUBY-6277 Dependency to compiler package from org.jruby.Ruby breaks Ruboto - JRUBY-6278 Double require bug in the handling of concurrent requires - JRUBY-6279 Invokedynamic support is missing 'float_op_equal' - JRUBY-6280 Fails to open fifo for writing. - JRUBY-6281 Applet does not work in the 1.9 mode - JRUBY-6282 Colon is not allowed in a file name on Windows - JRUBY-6283 Master crashes when calling an FFI-attached C library function - JRUBY-6284 Calls to Kernel#exit result in an exception printed on stderr - JRUBY-6285 JRuby 1.7 master on Java7u2 is *slower* running a benchmark than master on Java6 - JRUBY-6291 Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams - JRUBY-6292 Massive perf degradation in pack after ByteList update - JRUBY-6293 jruby-dist-master does not build C extensions - JRUBY-6295 Dir.chdir, $HOME and $LOGDIR behavior - JRUBY-6300 TestMethodmissing testcase fails with Java 7 - JRUBY-6301 scripting_lang.jruby:undefined method in test_loop_1_9.rb - JRUBY-6305 C Extension fails to build - JRUBY-6307 Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode. - JRUBY-6313 jruby-launcher rspecs fail on ubunutu - JRUBY-6318 Tempfile#open does not return the value of the block given to it - JRUBY-6325 Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed - JRUBY-6327 java.lang.StringIndexOutOfBoundsException: String index out of range: 1 - JRUBY-6328 Ruboto: regression: LoadError with master - JRUBY-6334 Import multiple classes via java_import - JRUBY-6337 poor error message on importing java class - JRUBY-6341 Regression: Enumerable#first on a Java list returns an array, not an element - JRUBY-6343 Running Webrick in 1.9 mode is causing IllegalMonitorStateException - JRUBY-6344 Embedded \r should not be treated as end of comment line - JRUBY-6349 Running 'ant clean-all' in git-free environments fails - JRUBY-6371 Mac OS X installer missing from snapshots directory - JRUBY-6378 cext fails to compile on 64-bit Ubuntu Oneirc - JRUBY-6379 rdoc, ri, rdoc-data and 'generate-ri-cache' ant task - JRUBY-6386 time.localtime not taking any arguments - JRUBY-6387 Should JRuby 1.7 set 1.9 compatibility as default? - JRUBY-6389 TypeError: can't convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI - JRUBY-6393 Implement Addrinfo class - JRUBY-6394 Socket.new takes symbolic protocol, etc - JRUBY-6401 Psych::SyntaxError while installing some gems in 1.9 mode - JRUBY-6413 jruby gem install chops off first character from files it extracts - JRUBY-6417 exception in rake assets:precompile in jruby-1.6.6 - JRUBY-6419 GzipReader encodings still not right; breaks "gem install" - JRUBY-6421 installing jruby-launcher fails with wrong filenames (zlib error apparently) - JRUBY-6438 "TypeError: can't convert Array into String" from ffi code in 1.9 mode - JRUBY-6439 cext: Memory leak in String and Array handling - JRUBY-6449 connect_nonblock + select needs to eventually finishConnect - JRUBY-6450 jruby-win32ole fails under java7 and jruby master; can't find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int - JRUBY-6464 Use 'mvn versions:set -DnewVersion=<whatever>' instead of our Ruby rake code for updating poms - JRUBY-6475 md5 digest causes thread lock - JRUBY-6476 org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks - JRUBY-6477 Tempfile#stat raises java.lang.NullPointerException when unlinked - JRUBY-6483 Ruby array to_java does not appear to work - JRUBY-6485 :\_\_recursive_key\_\_ left in threadlocals - JRUBY-6492 "InvalidTransformException" on startup of large application - JRUBY-6496 Kernel#Hash - JRUBY-6498 Net::Http does not close socket when open_timeout is exceeded - JRUBY-6501 warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode) - JRUBY-6502 "Config" should be deprecated in JRuby 1.7 (1.9 mode) - JRUBY-6504 Block parameter syntax issue where the closing | comes at the beginning of the line - JRUBY-6511 Timeout doesn't work when https server not responding - JRUBY-6512 Time.now shows wrong timezone for Moscow region - JRUBY-6517 StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode - JRUBY-6523 Static ThreadLocals must be weak or soft or not static - JRUBY-6526 Socket#accept no such method? - JRUBY-6527 Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable - JRUBY-6528 Socket#connect_nonblock and IO::select appear to be misbehaving? - JRUBY-6533 JavaNullPointer Exception instead method_missing - JRUBY-6534 Broken block-local vars in 1.9 mode - JRUBY-6538 'obj !~ thing' is not the same as obj.send(:!~, thing) - JRUBY-6541 DRb::DRbIdConv difference between 1.8 and 1.9 - JRUBY-6545 unable to load win32/registry in 1.9 mode - JRUBY-6549 JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228 - JRUBY-6551 Incorrect Ruby compatibility description displayed - JRUBY-6554 \r at the end of String can cause SyntaxError - JRUBY-6556 BigDecimal divided by Rational gives nil in --1.9 mode - JRUBY-6559 ZLib buggy handling in 1.6.7 - JRUBY-6560 File.expand_path for path starting with "jar:file:" fails - JRUBY-6561 Update to latest rubygems - JRUBY-6567 characters to the console aren't echoed after a background then foreground of jruby irb session - JRUBY-6570 autoload :Time, 'time' doesn't work - JRUBY-6571 StackOverflow when calling java.util.regex.Matcher#end - JRUBY-6572 File.open with 'b' options should always 'gets' string with 'ASCII-8BIT' encoding, regardless the value of 'Encoding.default_internal' - JRUBY-6574 Socket#bind does not convert nil to 0 - JRUBY-6582 Encoding when using '%' inconsistent with MRI 1.9 - JRUBY-6583 Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require 'haml' - JRUBY-6584 File.mtime() is slower than it should be - JRUBY-6588 String#encode should not convert binary to mangled UTF-8 - JRUBY-6589 java.lang.ClassCastException on exit from irb - JRUBY-6590 DelegateClass subclasses can't include Java interfaces - JRUBY-6598 to_yaml has garbled text if object contains Chinese or Japanese characters - JRUBY-6599 test/test_socket.rb spuriously fails - JRUBY-6603 Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv - JRUBY-6604 Cannot programmatically create regular expression /\[\\x80\]/n - JRUBY-6605 java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String - JRUBY-6606 Dir::entries does not support none ascii character - JRUBY-6607 TCPSocket connect failure inside Timeout leaves orphaned sockets - JRUBY-6611 LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL - JRUBY-6612 some problems with JRuby seeming to not detect Java Long arithmetic overflows - JRUBY-6618 NPEs on CI spec run on master - JRUBY-6619 NoMethodError 'upcase' on Java string - JRUBY-6621 New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads - JRUBY-6623 In IRB, backslashes are gobbled in the eval loop - JRUBY-6624 File#exists? cannot find file in JAR - JRUBY-6626 Ruboto: ThreadContext throws NPE in finalizer - JRUBY-6627 File#open fails for file in a JAR with a "jar:" prefix in the path - JRUBY-6628 #to_date fails on Rails request param with ArrayIndexOutOfBoundsException - JRUBY-6630 Tempfile doesn't take a hash in the constructor - JRUBY-6631 Time#nsec always returns 0 - JRUBY-6634 String.new(string) does not seem to clone the input - JRUBY-6637 String encoding difference between jruby --1.9 and MRI 1.9 (force_encoding a no-op in this case?) - JRUBY-6641 Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode - JRUBY-6642 RubyException.printBacktrace omits the first line - JRUBY-6644 Time#strftime doesn't respect %:z - JRUBY-6647 Comparison of a self referential struct causes a stack overflow - JRUBY-6648 Opening a file with integer flags mixed with hash options raises an exception - JRUBY-6649 Opening a file with a hash as options will raise an \`ArgumentError: invalid access mode 4610\` exception JRUBY-6652 JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray - JRUBY-6654 Using ruby's standard gserver library causes jruby to run out of memory - JRUBY-6660 An invalid Makefile is genereated when a 'depend' file exists. - JRUBY-6661 strftime should behave the same for datetime and time - JRUBY-6668 StringScanner#scan_until spins forever on UTF-8 data - JRUBY-6669 failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case - JRUBY-6670 XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode - JRUBY-6671 jruby-launcher fails to compile with GCC 4.6.3 on OSX - JRUBY-6675 shadowing outer local variable warning in ffi

JRuby 1.7.0.preview1 Released

Monday, May 21 2012

The JRuby community is pleased to announce the release of JRuby 1.7.0.preview1.

This is the first preview release of JRuby 1.7. This release represents a tremendous amount of work by dozens of contributors, and there are improvements in every subsystem. Users on Java 7 should start to see gains from invokedynamic, the JVM’s new support for dynamic languages. Users of highly-concurrent applications will see improvements in throughput and raw parallelism. And we have upped our compatibility level to match Ruby 1.9.3.

We have opted for a preview cycle this time due to the significance of changes in this release and our desire to give users more time to test JRuby before releasing 1.7 final. When in doubt, file a bug…we’ll sort it out. We want to know issues users have with JRuby 1.7 sooner rather than later.

Notable Changes:

  • 1.9.3 is now our default runtime mode (–1.8 is needed for 1.8.7 support)
  • Many 1.9.x compatibility fixes
  • Support for Java 7‘s invokedynamic*
  • Performance and concurrency improvements
  • Java 5 support dropped (Java 6+ required)
  • Update to Rubygems 1.8.24
  • Update to Rake 0.9.2.2
  • 259 issues resolved

*Note on invokedynamic performance:

Invokedynamic is still a new feature for the JVM, so we recommend running as recent a build of Java 7 as possible. Builds of OpenJDK/Oracle JDK prior to “update 2” will show poor performance.

Invokedynamic support can be disabled with -Xcompile.invokedynamic=false (passed to JRuby) for investigating perf issues or bugs.

Issues resolved:

  • JRUBY-928 Java arrays don’t inherit from java.lang.Object in Rubified Java class hierarchy
  • JRUBY-2317 File writing is slower in JRuby than MRI
  • JRUBY-2708 JRuby should load relative path reference to AOT classes
  • JRUBY-3293 Cannot reopen a class from an included module
  • JRUBY-3519 Wrong work replacement char with russian charset
  • JRUBY-3797 include_class should be deprecated in favor of java_import (and/or import)
  • JRUBY-3812 Socket::gethostbyname does reverse DNS lookup for IP address and is slow if no DNS reverse lookup reply is received
  • JRUBY-3986 File inconsistency handles file:/// URLs pointing to things inside a JAR
  • JRUBY-4105 Rubyspec: SimpleDelegator send spec fails due to bug in 1.8.7 stdlib
  • JRUBY-4115 cipher.rb:24: superclass must be a Class (Module given) (TypeError)
  • JRUBY-4220 File.dirname(__FILE__) doesn’t return correct value when a script is loaded from classpath
  • JRUBY-4236 Please reopen JRUBY-3894
  • JRUBY-4291 UNIXServer#accept can’t be interrupted by kill/raise
  • JRUBY-4339 Kernel.load with wrap=true does not protect the global namespace of calling program
  • JRUBY-4484 jruby -rtracer doesn’t trace
  • JRUBY-4605 RubyIO#select puts connectable sockets in the read set instead of write set
  • JRUBY-4717 1.9: New digest methods are missing (base64digest and base64digest!)
  • JRUBY-4743 Get a working test-indy target for testing against invokdynamic
  • JRUBY-4843 COPYING file is (partially) incorrect and outdated
  • JRUBY-4887 Problem with ja_JP.eucJP locale
  • JRUBY-5035 Merge JRuby-OSSL
  • JRUBY-5090 java class objectId() overrides .object_id
  • JRUBY-5201 1.9: uncaught timeout seems to cause silent failure
  • JRUBY-5222 Reopening a file descriptor on a socket doesn’t work (gives “could not reopen: null (IOError)”)
  • JRUBY-5317 Objects loaded via Marshal don’t get Java class applied corrected unless passed through fn taking exact type
  • JRUBY-5320 require needs to treat case-insensitive file paths in LOADED_FEATURES as case-insensitive for searching purposes
  • JRUBY-5335 1.9: Random instance marshal data incompatible with CRuby 1.9
  • JRUBY-5348 Process.spawn should fail if wrong args passed
  • JRUBY-5375 1.9: Add “Mark” features to Psych
  • JRUBY-5446 jcodings no longer in sync with current data 1.9.2 is using
  • JRUBY-5459 JRuby launcher does not observe VERIFY_JRUBY env var to skip boot classpath
  • JRUBY-5499 Update to rubygems 1.5.2 since 1.5.0 has severe bugs
  • JRUBY-5512 regular expressions + regexp = incorrect results.
  • JRUBY-5547 add String#byteslice() method
  • JRUBY-5560 JRuby does not detect unix socket
  • JRUBY-5568 Remove MethodFactory “can’t load bytecode” logging before 1.6 final
  • JRUBY-5622 Regex string interpolation breaks unicode properties
  • JRUBY-5630 Java calls have lost the Java part of the trace
  • JRUBY-5643 1.9: Array#map and Array#collect produce the same enumerator; should be specific to the method called
  • JRUBY-5647 Missing method Socket::ip_address_list
  • JRUBY-5665 RubySpec: String#scan failures
  • JRUBY-5678 tmpdir cannot be delete when jruby has sudo/root rights
  • JRUBY-5708 IO.select does not block on unix sockets
  • JRUBY-5726 FileUtils#cp (ultimately FileStat.identical? implementations) breaky on Windows
  • JRUBY-5762 Proc#=== is not same as Proc#call in 1.9 mode.
  • JRUBY-5767 add .metadata to .gitignore file
  • JRUBY-5774 ruboto: unsupported Java version: 0.9
  • JRUBY-5775 ruboto: Dir[] gives empty array when listing files below the root of the apk
  • JRUBY-5779 $LOADED_FEATURES is updated before loading finished
  • JRUBY-5792 Eval error for hashes containing symbols ending with an equals sign
  • JRUBY-5811 jruby 1.9 fails to load irb
  • JRUBY-5813 FFI::AutoPointer occasionally calls releaser proc when GC’d, even if autorelease is set to false
  • JRUBY-5823 jruby -x bug
  • JRUBY-5835 ruboto: File#read fails with jruby-jars-1.6.2
  • JRUBY-5842 NullPointerException when calling any method on Fiber.current if not explicitly in a created Fiber
  • JRUBY-5845 Add slf4j logging to JRuby
  • JRUBY-5849 make JAVA_VM to be set from environment
  • JRUBY-5852 Can’t serialize RubyModule, subclass of RubyBasicObject, which extends Serializable
  • JRUBY-5863 Named captures cause crash when there is no match
  • JRUBY-5866 JRuby can’t access nested Java class if the class is called ‘id’
  • JRUBY-5874 Kernel#` and Kernel#system didn’t correctly glob when using ruby
  • JRUBY-5876 Socket#syswrite (the non-buffered one) raises SystemCallError on broken pipe
  • JRUBY-5878 Enumerator.map is not yielding all values
  • JRUBY-5881 Update to jnr-constants 0.8
  • JRUBY-5921 Switch all (or most) println logging to slf4j logging.
  • JRUBY-5934 Writing ENV[]= changes through to the real ENV (via POSIX) should be configurable per runtime
  • JRUBY-5943 Platform.IS_OPENVMS is unknown in jorg.jruby.ext.posix.util.Platform
  • JRUBY-5953 rvm jruby 1.6.3 freezes after issued `irb` or
  • JRUBY-5955 maven build of JRuby 1.6.3 fails on Linux Fedora 15
  • JRUBY-5964 Digest::Base#file does not handle Pathname as parameter when ran in 1.9
  • JRUBY-5968 Mac OSX ant dist failure w/ patch
  • JRUBY-5969 Implemented a new commandline parser in NKF
  • JRUBY-5973 Failure to connect to Nailgun server produces confusing error
  • JRUBY-5977 test_rubyopts_rubygems_cleared_in_child test failure w/ patch
  • JRUBY-5981 Regression: thread-local UTF8_CODER truncates decoded strings to 1024 bytes
  • JRUBY-5987 Regression: IncludedModuleWrapper does not delegate to new Module autoload map
  • JRUBY-5988 Hash.inspect in –1.9 results in ASCII-8BIT encoding
  • JRUBY-5989 MacOSX Installer Build Task Unzip Overwrite Issue w/ patch
  • JRUBY-5993 $CLASSPATH allows array additions
  • JRUBY-5995 `Readline::HISTORY << str` and push should return HISTORY
  • JRUBY-5996 gem update –system crashes with NPE
  • JRUBY-6017 Undocumented windowBits feature of Zlib::Infrate/Deflate
  • JRUBY-6031 ActiveRecord::JDBCError in JRuby 1.6.4
  • JRUBY-6035 Randomly changed hash key in overriden []= method in Hash inherited class
  • JRUBY-6037 org.objectweb.asm.ClassReader is not found under some circumstances.
  • JRUBY-6043 Fix for JRUBY-5965 breaks Mirah macro compilation
  • JRUBY-6048 Array#repeated_permutation(n) enumerates nothing when n is greater than the length
  • JRUBY-6058 JRuby 1.6.4 incompatible with Google App Engine
  • JRUBY-6062 ruboto: regression: Increased stack usage
  • JRUBY-6068 Trunk Build Failure for install_dist_gems task
  • 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-6076 Mixed-case Java package name not resolved
  • JRUBY-6077 Allow loading a Ruby source file from the class path using the fully qualified name
  • JRUBY-6078 Introduce jzlib-based zlib implementation
  • JRUBY-6096 Unable to build completely from source (rdoc missing)
  • JRUBY-6100 NameError Exception if I try to use syck as YAML engine
  • JRUBY-6101 JSR 223 code execution breaks with JRuby 1.6.4/1.6.3 with no error message
  • JRUBY-6103 allocator undefined for NativeException
  • JRUBY-6108 bin/jruby script has incompatible bourne shell syntax
  • JRUBY-6119 Loading a Ruby source file from a subdirectory of a JAR without a directory entry fails
  • JRUBY-6127 Magic comment should start in column 1
  • JRUBY-6129 Multiple assignment with splatted LHS fails to call #to_ary on corresponding objec
  • JRUBY-6130 hash#update calls to_hash method on frozen object (in 1.9 mode)
  • JRUBY-6131 Integer#round can effectively hang jruby for large negative arguments in –1.9 mode
  • JRUBY-6137 Small Leak in Fileno Bookkeeping For STDIO RubyIOs
  • JRUBY-6141 All MatchData objects resulting from an invocation of String#scan are updated with the current match
  • JRUBY-6143 1.9: RubySpec: Regexp Spec failures with /n
  • JRUBY-6145 Cleanup Maven POMs So ‘mvn install’ Works Again
  • JRUBY-6149 Some native exceptions are wrapped too agressively
  • JRUBY-6165 IO.popen forcibly kills process when io is closed
  • JRUBY-6169 Update 1.9 Standard Library to 1.9.3p0
  • 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-6180 “SystemCallError: Unknown error - Connection reset by peer” should be mapped to Errno::ECONNRESET
  • JRUBY-6199 JRuby is hardcoded to use ‘-mmacos-version-min=10.4’ which is not compatible with ‘-rpath’ being used
  • JRUBY-6202 JIT-ed class names only use method names, causing collisions
  • JRUBY-6204 UTF-8 char in XML hangs in Joni
  • JRUBY-6221 json gem encoding/decoding is 2x slower than under MRI
  • JRUBY-6222 Remove rdoc data from dist in favor of rdoc-data gem
  • JRUBY-6227 1.9: Struct#members and Struct::members should return an Array of Symbols in 1.9
  • JRUBY-6229 Allow a way to activate the profiling API when embedding JRuby
  • JRUBY-6230 Cache jar content list to speed up file? operation
  • JRUBY-6234 Kernel.system doesn’t work with environement parameters
  • JRUBY-6237 Allow the syntax `a = b = f 1`
  • JRUBY-6239 unable to silence warnings
  • JRUBY-6241 Define a read-only global variable $-W
  • JRUBY-6243 Add support for graph profile with HTML output
  • JRUBY-6245 `ant test` errors on Windows with test_dir_with_jar_without_dir_entry.rb
  • JRUBY-6248 thread leak
  • JRUBY-6249 Creating binary for jffi
  • JRUBY-6250 When executing an Ant build.xml file, the Ant executable should not be required to live on the environment’s $PATH
  • JRUBY-6251 NailGun and 1.9 seem not to be usable at the same time ( –1.9 and –ng)
  • JRUBY-6259 ant test - fails in WinXP: (LoadError) no such file to load – jruby
  • JRUBY-6265 Setting load path on ScriptingContainer with LocalContextScope.SINGLETON does not work
  • JRUBY-6266 Unicode encoding problem in CSV.foreach
  • JRUBY-6269 JRuby –1.9 cannot load YAML output from JRuby –1.8
  • JRUBY-6277 Dependency to compiler package from org.jruby.Ruby breaks Ruboto
  • JRUBY-6278 Double require bug in the handling of concurrent requires
  • JRUBY-6279 Invokedynamic support is missing ‘float_op_equal’
  • JRUBY-6280 Fails to open fifo for writing.
  • JRUBY-6281 Applet does not work in the 1.9 mode
  • JRUBY-6282 Colon is not allowed in a file name on Windows
  • JRUBY-6283 Master crashes when calling an FFI-attached C library function
  • JRUBY-6284 Calls to Kernel#exit result in an exception printed on stderr
  • JRUBY-6285 JRuby 1.7 master on Java7u2 is slower running a benchmark than master on Java6
  • JRUBY-6291 Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
  • JRUBY-6292 Massive perf degradation in pack after ByteList update
  • JRUBY-6293 jruby-dist-master does not build C extensions
  • JRUBY-6295 Dir.chdir, $HOME and $LOGDIR behavior
  • JRUBY-6300 TestMethodmissing testcase fails with Java 7
  • JRUBY-6301 scripting_lang.jruby:undefined method in test_loop_1_9.rb
  • JRUBY-6305 C Extension fails to build
  • JRUBY-6307 Powering operation of Integer sometimes gets a wrong calculation when 1.9 mode.
  • JRUBY-6313 jruby-launcher rspecs fail on ubunutu
  • JRUBY-6318 Tempfile#open does not return the value of the block given to it
  • JRUBY-6325 Java::OrgYamlSnakeyamlReader::ReaderException: special characters are not allowed
  • JRUBY-6327 java.lang.StringIndexOutOfBoundsException: String index out of range: 1
  • JRUBY-6328 Ruboto: regression: LoadError with master
  • JRUBY-6334 Import multiple classes via java_import
  • JRUBY-6337 poor error message on importing java class
  • JRUBY-6341 Regression: Enumerable#first on a Java list returns an array, not an element
  • JRUBY-6343 Running Webrick in 1.9 mode is causing IllegalMonitorStateException
  • JRUBY-6344 Embedded \r should not be treated as end of comment line
  • JRUBY-6349 Running ‘ant clean-all’ in git-free environments fails
  • JRUBY-6371 Mac OS X installer missing from snapshots directory
  • JRUBY-6378 cext fails to compile on 64-bit Ubuntu Oneirc
  • JRUBY-6379 rdoc, ri, rdoc-data and ‘generate-ri-cache’ ant task
  • JRUBY-6386 time.localtime not taking any arguments
  • JRUBY-6387 Should JRuby 1.7 set 1.9 compatibility as default?
  • JRUBY-6389 TypeError: can’t convert Pathname into String - JRuby in 1.9 mode not handling Pathname in $LOAD_PATH consistently with MRI
  • JRUBY-6393 Implement Addrinfo class
  • JRUBY-6394 Socket.new takes symbolic protocol, etc
  • JRUBY-6401 Psych::SyntaxError while installing some gems in 1.9 mode
  • JRUBY-6413 jruby gem install chops off first character from files it extracts
  • JRUBY-6417 exception in rake assets:precompile in jruby-1.6.6
  • JRUBY-6419 GzipReader encodings still not right; breaks “gem install”
  • JRUBY-6421 installing jruby-launcher fails with wrong filenames (zlib error apparently)
  • JRUBY-6438 “TypeError: can’t convert Array into String” from ffi code in 1.9 mode
  • JRUBY-6439 cext: Memory leak in String and Array handling
  • JRUBY-6449 connect_nonblock + select needs to eventually finishConnect
  • JRUBY-6450 jruby-win32ole fails under java7 and jruby master; can’t find org.jruby.runtime.builtin.IRubyObject.toJava(Class)int
  • JRUBY-6464 Use ‘mvn versions:set -DnewVersion=<whatever>’ instead of our Ruby rake code for updating poms
  • JRUBY-6475 md5 digest causes thread lock
  • JRUBY-6476 org.jruby.util.Sprintf.rubySprintfToBuffer causing thread locks
  • JRUBY-6477 Tempfile#stat raises java.lang.NullPointerException when unlinked
  • JRUBY-6483 Ruby array to_java does not appear to work
  • JRUBY-6485 :__recursive_key__ left in threadlocals
  • JRUBY-6492 “InvalidTransformException” on startup of large application
  • JRUBY-6496 Kernel#Hash
  • JRUBY-6498 Net::Http does not close socket when open_timeout is exceeded
  • JRUBY-6501 warning: variable $KCODE is no longer effective on github master JRuby (1.9 mode)
  • JRUBY-6502 “Config” should be deprecated in JRuby 1.7 (1.9 mode)
  • JRUBY-6504 Block parameter syntax issue where the closing | comes at the beginning of the line
  • JRUBY-6511 Timeout doesn’t work when https server not responding
  • JRUBY-6512 Time.now shows wrong timezone for Moscow region
  • JRUBY-6517 StringIO#ungetc issue on JRuby 1.6.6 and 1.6.7 in 1.8.7 mode
  • JRUBY-6523 Static ThreadLocals must be weak or soft or not static
  • JRUBY-6526 Socket#accept no such method?
  • JRUBY-6527 Socket#connect_nonblock raises Errno::EINPROGRESS, but MRI raises IO::WaitWritable
  • JRUBY-6528 Socket#connect_nonblock and IO::select appear to be misbehaving?
  • JRUBY-6533 JavaNullPointer Exception instead method_missing
  • JRUBY-6534 Broken block-local vars in 1.9 mode
  • JRUBY-6538 ‘obj !~ thing’ is not the same as obj.send(:!~, thing)
  • JRUBY-6541 DRb::DRbIdConv difference between 1.8 and 1.9
  • JRUBY-6545 unable to load win32/registry in 1.9 mode
  • JRUBY-6549 JRuby 1.7 HEAD does not properly detect platform under OpenJDK 1.7.0-u4-b228
  • JRUBY-6551 Incorrect Ruby compatibility description displayed
  • JRUBY-6554 \r at the end of String can cause SyntaxError
  • JRUBY-6556 BigDecimal divided by Rational gives nil in –1.9 mode
  • JRUBY-6559 ZLib buggy handling in 1.6.7
  • JRUBY-6560 File.expand_path for path starting with “jar:file:” fails
  • JRUBY-6561 Update to latest rubygems
  • JRUBY-6567 characters to the console aren’t echoed after a background then foreground of jruby irb session
  • JRUBY-6570 autoload :Time, ‘time’ doesn’t work
  • JRUBY-6571 StackOverflow when calling java.util.regex.Matcher#end
  • JRUBY-6572 File.open with ‘b’ options should always ‘gets’ string with ‘ASCII-8BIT’ encoding, regardless the value of ‘Encoding.default_internal’
  • JRUBY-6574 Socket#bind does not convert nil to 0
  • JRUBY-6582 Encoding when using ‘%’ inconsistent with MRI 1.9
  • JRUBY-6583 Simple jar built with warbler works in 1.6.7, breaks in 1.7 with require ‘haml’
  • JRUBY-6584 File.mtime() is slower than it should be
  • JRUBY-6588 String#encode should not convert binary to mangled UTF-8
  • JRUBY-6589 java.lang.ClassCastException on exit from irb
  • JRUBY-6590 DelegateClass subclasses can’t include Java interfaces
  • JRUBY-6598 to_yaml has garbled text if object contains Chinese or Japanese characters
  • JRUBY-6599 test/test_socket.rb spuriously fails
  • JRUBY-6603 Concurrency bug in org.jruby.util.ShellLauncher.getCurrentEnv
  • JRUBY-6604 Cannot programmatically create regular expression /[\x80]/n
  • JRUBY-6605 java.lang.ClassCastException: jline.console.history.MemoryHistory$EntryImpl cannot be cast to java.lang.String
  • JRUBY-6606 Dir::entries does not support none ascii character
  • JRUBY-6607 TCPSocket connect failure inside Timeout leaves orphaned sockets
  • JRUBY-6611 LoadServiceResource Opens But Never Closes InputStreams When Constructed With a URL
  • JRUBY-6612 some problems with JRuby seeming to not detect Java Long arithmetic overflows
  • JRUBY-6618 NPEs on CI spec run on master
  • JRUBY-6619 NoMethodError ‘upcase’ on Java string
  • JRUBY-6621 New ThreadLocal recursiveKey breaks usage of runtimes across multiple Java threads
  • JRUBY-6623 In IRB, backslashes are gobbled in the eval loop
  • JRUBY-6624 File#exists? cannot find file in JAR
  • JRUBY-6626 Ruboto: ThreadContext throws NPE in finalizer
  • JRUBY-6627 File#open fails for file in a JAR with a “jar:” prefix in the path
  • JRUBY-6628 #to_date fails on Rails request param with ArrayIndexOutOfBoundsException
  • JRUBY-6630 Tempfile doesn’t take a hash in the constructor
  • JRUBY-6631 Time#nsec always returns 0
  • JRUBY-6634 String.new(string) does not seem to clone the input
  • JRUBY-6637 String encoding difference between jruby –1.9 and MRI 1.9 (force_encoding a no-op in this case?)
  • JRUBY-6641 Java Exceptions Can Only Be Rescued if First in Exception List When Running in Interpreted Mode
  • JRUBY-6642 RubyException.printBacktrace omits the first line
  • JRUBY-6644 Time#strftime doesn’t respect %:z
  • JRUBY-6647 Comparison of a self referential struct causes a stack overflow
  • JRUBY-6648 Opening a file with integer flags mixed with hash options raises an exception
  • JRUBY-6649 Opening a file with a hash as options will raise an `ArgumentError: invalid access mode 4610` exception JRUBY-6652 JVM crash while running rails app on Torquebox from com.kenai.jffi.Foreign.getZeroTerminatedByteArray
  • JRUBY-6654 Using ruby’s standard gserver library causes jruby to run out of memory
  • JRUBY-6660 An invalid Makefile is genereated when a ‘depend’ file exists.
  • JRUBY-6661 strftime should behave the same for datetime and time
  • JRUBY-6668 StringScanner#scan_until spins forever on UTF-8 data
  • JRUBY-6669 failure at test/test_kernel.rb:588 if jruby is in a directory with mixed-case
  • JRUBY-6670 XMLRPC::XMLWriter::Simple has a Problem in 1.9 Mode
  • JRUBY-6671 jruby-launcher fails to compile with GCC 4.6.3 on OSX
  • JRUBY-6675 shadowing outer local variable warning in ffi

JRuby 1.6.7.2 Released

Tuesday, May 01 2012

The JRuby community is pleased to announce the release of JRuby 1.6.7.2. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) This is a special release of JRuby which only updates our shipped copy of RubyGems to version 1.8.24. This version of RubyGems is the first version to verify that a RubyGems server certficate is valid. This helps to prevent a "man in the middle" style of attack when someone controls a portion of the network between you and the RubyGems server (See the release notes for RubyGems 1.8.23 and 1.8.24 for more details). All users are encouraged to upgrade to JRuby 1.6.7.2. Note: You may also use the normal RubyGems upgrade mechanisms, but this will overwrite the Maven support we ship as part of JRuby. ### Notable Change: - Update to Rubygems 1.8.24

JRuby 1.6.7.2 Released

Tuesday, May 01 2012

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

This is a special release of JRuby which only updates our shipped copy of RubyGems to version 1.8.24. This version of RubyGems is the first version to verify that a RubyGems server certficate is valid. This helps to prevent a “man in the middle” style of attack when someone controls a portion of the network between you and the RubyGems server (See the release notes for RubyGems 1.8.23 and 1.8.24 for more details). All users are encouraged to upgrade to JRuby 1.6.7.2.

Note: You may also use the normal RubyGems upgrade mechanisms, but this will overwrite the Maven support we ship as part of JRuby.

Notable Change:

  • Update to Rubygems 1.8.24

JRuby 1.6.7 Released

Wednesday, February 22 2012

The JRuby community is pleased to announce the release of JRuby 1.6.7. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.6 (and lower) are encouraged to upgrade to 1.6.7. Some astute readers of our release announcements will remember this snippet: "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." After releasing 1.6.6, we got a smallish flood of simple to fix 1.9 compatibility issues. We realized our charter of reasonable 1.9 support had not quite been reached. So we decided to put out 1.6.7. As of JRuby 1.6.7, we think we are leaving the 1.6 series at a nice stopping point. Plus, 1.7.0 is less than two months away. ### Notable Changes: - Fix circular require issue in Rubygems introduced by our Maven gem support - Fix regression in popen* where streams get prematurely closed - Many 1.9-mode encoding bugs fixed in String, Regexp, StringIO, and YAML - Win32OLE now works in 1.9-mode - ffi on Win x64 now knows about basic types :size_t - Use jzlib to fix a set of issues with out zlib library - Reduced internal locking based on user reports - C extensions work on OS X again - Gems with gemspecs which contain UTF-8 multi-byte chars install in 1.9 mode ### 1.6.7 Issues Resolved: - JRUBY-3958 Caller mismatch within include/extend - JRUBY-4956 1.9: ConditionVariable#wait should return self - JRUBY-5165 non-blocking IO does not function correctly: connect_nonblock followed by an IO.select - JRUBY-5189 1.9: invalid byte sequence in UTF-8 - JRUBY-5216 WIN32OLE gem cannot be loaded in 1.9 mode - JRUBY-5437 Encoding of result string for String#gsub is not consistent - JRUBY-5761 /\z/ raises ArrayIndexOutOfBoundsException in --1.9 mode - JRUBY-5764 RegexpError when running any rake command - JRUBY-5836 soap library doesn't handle the situation where the backtrace is nil - JRUBY-5846 JRuby Internal Java NegativeArraySizeExcetpion when normalising a string - JRUBY-5903 citrus parser produces ArrayIndexOutOfBoundsException in RubyString.java - JRUBY-6104 JRuby hangs on testing string for equality with 'test/unit' testing framework - JRUBY-6110 Security issue with org.jruby.embed.class.path in unsigned JavaFX applet. - JRUBY-6193 asprintf is added to Solaris > 10 & Illumos, local asprintf.h breaks the build - JRUBY-6208 bad gem file creation using mode --1.9 - JRUBY-6238 Issues with eval - wrong arguments - JRUBY-6396 strip! fails on File.read - JRUBY-6398 java.lang.NullPointerException when executing jruby.exe under Windows 7 (v1.6.6) - JRUBY-6399 wrong number of arguments (4 for 3) when calling enum_for in 1.9 mode - JRUBY-6400 StackOverflowError in loading bundler when starting cucumber - JRUBY-6404 multiple assignment fails to deconstruct object - JRUBY-6407 StackOverflowError regarding RubyGems, require(), rubygems/defaults/jruby.rb, and jruby/util.rb - JRUBY-6414 YAML.load cause errors in particular string - JRUBY-6415 1.9: Psych::SyntaxError when trying to install will_paginate 3.0.3 - JRUBY-6416 JRuby 1.6.6(1.9-mode) freezing in Rails application without any error, when manipulating a String with special characters - JRUBY-6418 CLONE - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams - JRUBY-6420 LoadError: load error: bundler/definition -- java.lang.NoClassDefFoundError: Could not initialize class org.jruby.javasupport.JavaClass - JRUBY-6422 Regression: Variety pack of failures with bundler install via rubygems - JRUBY-6425 StringIO.readline of UTF-8 string will return a ASCII-8BIT - JRUBY-6433 DRegexp with specific encodings were getting non-strict versions in 1.9 mode - JRUBY-6434 sprintf does not support name references, like sprintf('%%<xyz>s', :xyz => 'abc') - JRUBY-6441 malloc: error for object 0x7f94d1a24650: pointer being freed was not allocated - JRUBY-6442 TCPSocket#write_nonblock blocks - JRUBY-6454 Unable to launch browsers with watir or capybara in 1.9 mode - JRUBY-6456 ThreadLocal Leak in 1.9 Mode w/ Internal Recursive Map - JRUBY-6457 class_variable_get (et al) should be public in 1.9 mode - JRUBY-6458 jruby-launcher fails to install from rvm with default 1.9 mode - JRUBY-6462 Gems build incorrectly in 1.9 mode - JRUBY-6463 File.read('foo').strip Leaves Trailing Newline Under 1.9 - JRUBY-6471 JRuby doesn't seem to forward java methods to java arrays properly - JRUBY-6474 \_\_LINE\_\_ is not reset to 1 when passing a filename to binding.eval - JRUBY-6480 Missing type intptr_t from ffi

JRuby 1.6.7 Released

Wednesday, February 22 2012

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

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.6 (and lower) are encouraged to upgrade to 1.6.7.

Some astute readers of our release announcements will remember this snippet:

“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.”

After releasing 1.6.6, we got a smallish flood of simple to fix 1.9 compatibility issues. We realized our charter of reasonable 1.9 support had not quite been reached. So we decided to put out 1.6.7. As of JRuby 1.6.7, we think we are leaving the 1.6 series at a nice stopping point. Plus, 1.7.0 is less than two months away.

Notable Changes:

  • Fix circular require issue in Rubygems introduced by our Maven gem support
  • Fix regression in popen* where streams get prematurely closed
  • Many 1.9-mode encoding bugs fixed in String, Regexp, StringIO, and YAML
  • Win32OLE now works in 1.9-mode
  • ffi on Win x64 now knows about basic types :size_t
  • Use jzlib to fix a set of issues with out zlib library
  • Reduced internal locking based on user reports
  • C extensions work on OS X again
  • Gems with gemspecs which contain UTF-8 multi-byte chars install in 1.9 mode

1.6.7 Issues Resolved:

  • JRUBY-3958 Caller mismatch within include/extend
  • JRUBY-4956 1.9: ConditionVariable#wait should return self
  • JRUBY-5165 non-blocking IO does not function correctly: connect_nonblock followed by an IO.select
  • JRUBY-5189 1.9: invalid byte sequence in UTF-8
  • JRUBY-5216 WIN32OLE gem cannot be loaded in 1.9 mode
  • JRUBY-5437 Encoding of result string for String#gsub is not consistent
  • JRUBY-5761 /\z/ raises ArrayIndexOutOfBoundsException in –1.9 mode
  • JRUBY-5764 RegexpError when running any rake command
  • JRUBY-5836 soap library doesn’t handle the situation where the backtrace is nil
  • JRUBY-5846 JRuby Internal Java NegativeArraySizeExcetpion when normalising a string
  • JRUBY-5903 citrus parser produces ArrayIndexOutOfBoundsException in RubyString.java
  • JRUBY-6104 JRuby hangs on testing string for equality with ‘test/unit’ testing framework
  • JRUBY-6110 Security issue with org.jruby.embed.class.path in unsigned JavaFX applet.
  • JRUBY-6193 asprintf is added to Solaris > 10 & Illumos, local asprintf.h breaks the build
  • JRUBY-6208 bad gem file creation using mode –1.9
  • JRUBY-6238 Issues with eval - wrong arguments
  • JRUBY-6396 strip! fails on File.read
  • JRUBY-6398 java.lang.NullPointerException when executing jruby.exe under Windows 7 (v1.6.6)
  • JRUBY-6399 wrong number of arguments (4 for 3) when calling enum_for in 1.9 mode
  • JRUBY-6400 StackOverflowError in loading bundler when starting cucumber
  • JRUBY-6404 multiple assignment fails to deconstruct object
  • JRUBY-6407 StackOverflowError regarding RubyGems, require(), rubygems/defaults/jruby.rb, and jruby/util.rb
  • JRUBY-6414 YAML.load cause errors in particular string
  • JRUBY-6415 1.9: Psych::SyntaxError when trying to install will_paginate 3.0.3
  • JRUBY-6416 JRuby 1.6.6(1.9-mode) freezing in Rails application without any error, when manipulating a String with special characters
  • JRUBY-6418 CLONE - Closing One Stream From IO.popen4 Results in Stream Closed Error When Reading Other Streams
  • JRUBY-6420 LoadError: load error: bundler/definition – java.lang.NoClassDefFoundError: Could not initialize class org.jruby.javasupport.JavaClass
  • JRUBY-6422 Regression: Variety pack of failures with bundler install via rubygems
  • JRUBY-6425 StringIO.readline of UTF-8 string will return a ASCII-8BIT
  • JRUBY-6433 DRegexp with specific encodings were getting non-strict versions in 1.9 mode
  • JRUBY-6434 sprintf does not support name references, like sprintf(‘%%<xyz>s’, :xyz => ‘abc’)
  • JRUBY-6441 malloc: error for object 0x7f94d1a24650: pointer being freed was not allocated
  • JRUBY-6442 TCPSocket#write_nonblock blocks
  • JRUBY-6454 Unable to launch browsers with watir or capybara in 1.9 mode
  • JRUBY-6456 ThreadLocal Leak in 1.9 Mode w/ Internal Recursive Map
  • JRUBY-6457 class_variable_get (et al) should be public in 1.9 mode
  • JRUBY-6458 jruby-launcher fails to install from rvm with default 1.9 mode
  • JRUBY-6462 Gems build incorrectly in 1.9 mode
  • JRUBY-6463 File.read(‘foo’).strip Leaves Trailing Newline Under 1.9
  • JRUBY-6471 JRuby doesn’t seem to forward java methods to java arrays properly
  • JRUBY-6474 __LINE__ is not reset to 1 when passing a filename to binding.eval
  • JRUBY-6480 Missing type intptr_t from ffi

JRuby 1.6.6 Released

Monday, January 30 2012

The JRuby community is pleased to announce the release of JRuby 1.6.6. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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](http://www.ocert.org/advisories/ocert-2011-003.html). 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](http://www.ocert.org/advisories/ocert-2011-003.html) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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 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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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.) - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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. - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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 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 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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.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 - Homepage: [http://www.jruby.org/](http://www.jruby.org/) - Download: [http://www.jruby.org/download](http://www.jruby.org/download) 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 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-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.](/files/downloads/1.4.1/index.html) This vulnerability fix is the only change from the [previous JRuby release (1.4.0)](/2009/11/02/jruby-1-4-0). Also note that the [JRuby 1.5.0 release](/2010/04/15/jruby-1-5-0-RC1) 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](http://cve.mitre.org), 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][utf8] 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 ?<script> KCODE: UTF8 ?