JRuby 1.1.4 Released

The JRuby community is pleased to announce the release of JRuby 1.1.4!

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

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


  • Massive refactoring of Java integration layer
    • 2-20x speed up of most features (calls, construction, arrays)
    • Many long-standing Ruby/Java interaction bugs fixed
    • Existing features made more consistent, reliable
    • Closures can be passed as interface to static methods, constructors
    • Java exceptions can be raised/rescued directly from Ruby
    • Massive memory efficiency improvements (a lot less GC)
  • Beginning of Ruby 1.9 support (enabled with --1.9 flag)
    • Native complex/rational
  • Additional efficiency, performance work in the interpreter
  • Memory leak under --manage repaired
  • FFI subsystem for calling C libraries
    • syslog module from Rubinius is working and included
    • win32 API support started
  • Thread pooling improved (at least one production user now)
  • Array concurrent-access improvements
  • 72 issues resolved since JRuby 1.1.3

Issues fixed:
JRUBY-231 Provide attr_reader, attr_writer, and attr_accessor for
JavaBean style getters & setters
JRUBY-1183 New closure conversion should prefer methods with
convertable args over those without
JRUBY-1300 Masquerading of native Java exceptions
JRUBY-1326 Error invoking overloaded Java constructor
JRUBY-1562 Declaration of certain method name (setJavaObject(Xxx x))
will throw an exception using BSF
JRUBY-1615 Raising java exceptions from ruby causes TypeError
JRUBY-1707 Unable to raise Java exceptions of derived types
JRUBY-1735 Java Integration wraps to much
JRUBY-1839 closure conversion fails for blocks
JRUBY-1964 Determine what test/specs are needed to be written in
order to refactor java integration post 1.1
JRUBY-1976 Working with JavaMethods doesn’t work.
JRUBY-2136 $VERBOSE = true; require ‘tmpdir’ gives non-fatal Java
JRUBY-2192 YAML parser does not appear to deserialize object types.
JRUBY-2204 Syslog module is not available for JRuby
JRUBY-2236 NPE in isDuckTypeConvertible
JRUBY-2287 Storing ruby objects in java classes instances
JRUBY-2377 Wrong line numbers for ArgumentError for Java calls
JRUBY-2429 Cannot Catch Core Java Exceptions From JRuby Internals in
Ruby Code
JRUBY-2439 Trying to subclass a Java class from a signed .jar will
crash on you.
JRUBY-2449 Implement closure convention for static java methods
JRUBY-2561 JavaField.set_value(foo, nil) breaks
JRUBY-2673 Java exceptions do not return the wrapped exception when
getStackTrace is called
JRUBY-2680 When JIT Compiler compiles the append_features in the
ruby\site_ruby\1.8\builtin\javasupport\proxy\interface.rb the compiled
code slows down by a factor of 10
JRUBY-2741 OSGify jruby.jar in the release jruby distribution
JRUBY-2749 Make RaiseException show the exception message and the
Ruby stack trace
JRUBY-2803 Bad performance calling Java classes
JRUBY-2823 Can’t reference Java’s constants that start with a lower
case character
JRUBY-2828 Rational#% differs from MRI when argument is negative
JRUBY-2843 Issues with BasicSocket#close_read
JRUBY-2847 A non-existant jar + dir on the load path causes require
to error
JRUBY-2850 In some cases, reopened Java objects cannot find methods
on Ruby objects subclassed from Java
JRUBY-2854 AST offset error for StrNode and DStrNode
JRUBY-2857 Coercion error with public member variables
JRUBY-2863 Nested Interfaces can’t find the correct method when Java
calls Ruby
JRUBY-2865 Can’t extend a class in default package
JRUBY-2867 Wrong overloaded Java method called when both int and
float signatures exist
JRUBY-2869 IO.select fails to block with nil timeout
JRUBY-2870 [REGRESSION] Converting a Ruby array to a Java array (of
Object references) broken
JRUBY-2872 JSpinner cannot accept Fixnum for it’s value
JRUBY-2873 FFI needs a way to specify call convention
JRUBY-2874 TCPSocket#new and TCPServer#new crash JRuby when the
specified port is out of range (negative or bigger than 65k)
JRUBY-2879 net/ftp library is broken if mathn is also loaded
JRUBY-2880 Regression: 17 new RubySpec failures and 3 unit tests
falirues caused by r7327 (Array changes)
JRUBY-2881 JAVA_HOME with () breaks JRuby on windows
JRUBY-2882 Incorrect subclass for constructor arg throws internal
JRuby error
JRUBY-2886 Extending a final Java class should be rescuable as a
normal Ruby exception type
JRUBY-2890 UDPSocket.recvfrom should block until something is
JRUBY-2891 UDPSocket.bind throws a Java Error when already bound on
Java 5
JRUBY-2892 JRuby releases use random copies of joni svn HEAD
JRUBY-2893 mspec runs need to pass properties through -T argument
for compilation, etc
JRUBY-2894 When spec runs fail, Ant is not terminating with a
failure message
JRUBY-2899 Using JavaEmbedUtils.rubyToJava causes problems when
passing RubyObject-derived parameters back in to Ruby code
JRUBY-2903 Allow implementing Java interfaces with underscored
method names
JRUBY-2905 NoMethodError does not give a useful message when thrown
in BSF
JRUBY-2906 IOError message is garbled when java.io.IOException
message is multi-byte character.
JRUBY-2907 method_missing invocation paths end up boxing arguments
twice, among other inefficiencies
JRUBY-2910 Object#send is not specific-arity
JRUBY-2915 Exception construction performance is poor
JRUBY-2918 jruby 1.1.3 + activescaffold 1.1.1 generating RJS error
JRUBY-2919 Time.-(Time) does not include microseconds and is off by
JRUBY-2923 Eliminate (unknown) from trace elements
JRUBY-2924 JMX support added leaks memory like crazy
JRUBY-2927 Calling interface method on specific instance from Java
doesn’t work.
JRUBY-2928 Same issue with hashCode and toString for Interfaces.
JRUBY-2929 Java Integration with regards to arrays of classes are
JRUBY-2931 Templater error causes merb-gen (0.9.4 and trunk) to fail
on JRuby 1.1.3
JRUBY-2932 Move static soft reference timezone cache to be
runtime-specific cache to remove complexity of dealing with soft
JRUBY-2938 Calling JavaUtil.convertJavaToUsableRubyObject throws
JRUBY-2943 Memory leak in closure coercion
JRUBY-2944 Java caller gets null when calling a method on a Ruby
object implementing an interface method declared to return Object[], and
the Ruby object returns an array of Ruby objects subclass of Hash
converted with #to_java
JRUBY-2946 New invokers attempt to access argument list of
non-overloaded methods with incorrect arity
JRUBY-2947 Multidimensional array conversion broke in recent Java
integration refactoring

Thomas E. wrote:

Thanks for continued kick-ass work!

James B.

www.happycamperstudios.com - Wicked Cool Coding
www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff

James B. wrote:

Thanks for continued kick-ass work!

+1. The work you guys are doing is, IMHO, the real key to Ruby’s
in the Corporate IT domain. That’s important, at least to me, because
what’ll drive real growth in paychecks_for_writing_Ruby!