[ANN] JRuby 1.7.1 Released!

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

    Homepage: 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
- 113 issues fixed since 1.7.0

Jira Issues resolved since 1.7.0

    [JRUBY-1608] - STDIN/STDOUT "not a tty" under Kernel.system
    [JRUBY-2724] - Can not create Ruby on rails application while
using UNC path folder
    [JRUBY-3622] - newInstance and getDeclaredConstructor fail to
respect class overridden in JRuby
    [JRUBY-3756] - Jirb terminates immediately if "special character"
encountered
    [JRUBY-3786] - RubyGems tests are not green; fix remaining failures/errors
    [JRUBY-3917] - Module#public does not follow method redefinition
    [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-4890] - Unicode characters are lost when embedding JRuby
even if the calling code performs no conversion to byte[]
    [JRUBY-5303] - [1.9] Wrong parameters parse for method signatures
with default values
    [JRUBY-5323] - control-c in cmd while running webrick rails app
does not kill jruby.exe
    [JRUBY-5349] - Process.spawn ignores output params
    [JRUBY-5427] - 1.9 mode slower on redblack benchmark than 1.8 mode
    [JRUBY-5529] - [1.9] undefined method `read_nonblock' for
#<OpenSSL::SSL::SSLSocket:0x246adb31> (NoMethodError)
    [JRUBY-5692] - PDFKit fails on Windows JRuby - IO.popen and Double Quotes
    [JRUBY-5798] - 'defined?' for constant should not invoke auto-load
    [JRUBY-5986] - $! is not set to nil in an ensure block where no
exception is raised
    [JRUBY-6025] - Precompiled class raises exception, but in
interpreted mode - works well.
    [JRUBY-6105] - become_java! returns nil for Ruby classes that
inherit from Java classes
    [JRUBY-6126] - [1.9] [RubySpec] In 1.9 mode, for should yield only
as many values as there are arguments
    [JRUBY-6162] - IO.popen doesn't wait until a process ends but
returns immediately
    [JRUBY-6195] - [1.9] Process.spawn (and related methods) ignore option hash
    [JRUBY-6247] - NULL handling inconsistent with Ruby
    [JRUBY-6312] - JRuby 1.7 non-indy constant lookup performance has degraded
    [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-6409] - Open3.popen3(...) is broken in 1.9 mode
    [JRUBY-6516] - IO.select times out with ssl connection
    [JRUBY-6521] - Invokedynamic leads to unusual errors in RubyGems
dependency logic
    [JRUBY-6563] - each_with_index yields invalid values when custom
Enumerable class calls Proc#call
    [JRUBY-6581] - "yield called out of block" for Enumerators created
with enum_for
    [JRUBY-6610] - JRuby 1.9 mode require does multiple requires and
extra file system searching
    [JRUBY-6622] - Unable to Load encrypted Private Key pem file
    [JRUBY-6636] - OpenSSL::X509::Certificate and OpenSSL::PKey::RSA
constructors don't accept File objects
    [JRUBY-6656] - JRuby subclass cannot call super with arguments if
parent constructor is varargs
    [JRUBY-6673] - MacOS installer is not updated via our build system
and hardcodes version numbers
    [JRUBY-6696] - 32 bit jruby cannot run with 64 bit JVM installed
    [JRUBY-6699] - OpenSSL::PKey::RSA.new fails on Windows
    [JRUBY-6738] - Kernel.load(..., true) --> scope problem
    [JRUBY-6744] - We are at p204 but 1.9.3 is only at p194
    [JRUBY-6749] - respond_to? caching disabled in 1.9 mode due to
respond_to_missing? logic
    [JRUBY-6751] - java_signature does not affect method signature at runtime
    [JRUBY-6758] - Test suite time outs:
org.jruby.test.Batch-With-Multiple-Tests:test_socket
    [JRUBY-6763] - Incorrect handling of arguments by method object
    [JRUBY-6777] - RubyFixnum.java - two methods fail to detect some
long integer overflows
    [JRUBY-6826] - OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:
    [JRUBY-6841] - State file use in UUID gem causes severe
performance degradation
    [JRUBY-6856] - Kernel#system and backquote suppress important errors
    [JRUBY-6870] - IO.select says there is data but read_nonblock
raises 'read would raise' using SSLSocket
    [JRUBY-6887] - Thread.current.object_id inside an Enumerator is
different from outside it
    [JRUBY-6891] - SSLSocket.accept forces reverse DNS lookup, not
required for most SSL and sometimes causes very poor performance
    [JRUBY-6920] - Regression: test_env precompiled with invokedynamic
    [JRUBY-6931] - console outputs in windows are wrong for UTF-8, windows
    [JRUBY-6943] - io/console extension missing in 1.9 mode (jgem push
causes JRuby to fail)
    [JRUBY-6944] - JRUBY-6891 Breaks Server Name Indication (SNI)
    [JRUBY-6945] - append_features called with non-class
    [JRUBY-6949] - system() silently fails when options are passed
    [JRUBY-6954] - Time.new does not respect UTC offset in the 7-argument form
    [JRUBY-6955] - Cannot define method <=>, get
ClassLoader.java:286:in `defineClass': java.lang.NoClassDefFoundError:
test$method__3$RUBY$\=\^=\_
    [JRUBY-6958] - Cast error inheriting from a Java class with precompile code.
    [JRUBY-6959] - Cannot meta-program java signature
    [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-6966] - Open3.popen3 does not take optional environment
hash as first argument
    [JRUBY-6970] - __FILE__ has strange 'jar:' prefix when inside a
gem in a jar.
    [JRUBY-6972] - system("...&&...") should work in windows
    [JRUBY-6973] - Release jruby-openssl-0.8.0 gem
    [JRUBY-6974] - Timeout.timeout not working using UDPSocket
    [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-4739] - Make source dist be inclusive by default so we do
not keep missing new files/folders added to our source tree
    [JRUBY-5205] - Make hashy arguments faster
    [JRUBY-5620] - Mixed perf on String#to_i versus Ruby 1.9 and Rubinius
    [JRUBY-5799] - InternalJavaProxy needs setInvocationHandler
    [JRUBY-5800] - Encapsulate @java_proxy_class computation in JavaProxy
    [JRUBY-6453] - Make String/ByteList creation facilities part of
RedBridge APIs
    [JRUBY-6491] - Pushing your changes of Rubygems to Rubygems upstream
    [JRUBY-6500] - Compiler improvements
    [JRUBY-6643] - jrubyc AOT Java compilation doesn't identify failure cause
    [JRUBY-6901] - Use Java 7 NIO.2 APIs to implement dir opening
    [JRUBY-6905] - JRuby does not warn about assigned but unused variable
    [JRUBY-6935] - Update 1.9 stdlib to p286
    [JRUBY-6976] - byte[] should have a to_s method
    [JRUBY-4670] - Plug ruby2java java2ruby marshalling
    [JRUBY-6466] - externalize build_lib dependencies
    [JRUBY-6793] - Update bouncycastle jars to the latest version. (1.47)
    [JRUBY-6873] - jruby-1.7.0.preview2 much slower jruby-1.6.3 (192s vs.60s)
    [JRUBY-6916] - Better support for 64-bit AIX (FFI)
    [JRUBY-6982] - Various issues producing an updated JRuby package for Fedora

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

···

--
blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com