CLONE -Memory Leak when extending Java class with additional Ruby instance 
variable
-----------------------------------------------------------------------------------

                 Key: JRUBY-4841
                 URL: http://jira.codehaus.org/browse/JRUBY-4841
             Project: JRuby
          Issue Type: Bug
          Components: Java Integration
    Affects Versions: JRuby 1.5
         Environment: java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)

jruby 1.5.0 (ruby 1.8.7 patchlevel 249) (2010-05-12 6769999) (Java HotSpot(TM) 
64-Bit Server VM 1.6.0_20) [x86_64-java]
            Reporter: Tobias Vogele
            Assignee: Charles Oliver Nutter
            Priority: Critical
             Fix For: JRuby 1.5.1


When a Ruby class extends a Java class and has additional Ruby instance 
variables, it is not garbage collected.

Here some code to reproduce:
{code:ruby}
class RubySubClass < Java::JavaLang::Object
  attr_accessor :javaObj
end

(0..50).each do |i|
  list = Java::JavaUtil::ArrayList.new
  list.add Java::JavaUtil::ArrayList.new(10000000)
  rs = RubySubClass.new
  list.add rs
  rs.javaObj = list
  
  java.lang.System.gc
  java.lang.Thread.sleep(200)
  puts "#{i}"
end
{code}

On my machine this fails after the 4th iteration with: 
java.lang.OutOfMemoryError: Java heap space (NativeException), but the exact 
number of iterations of course depends on the heap size, 32/64 bit etc.



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to