integration issues with Java classes containing inner classes
-------------------------------------------------------------
Key: JRUBY-3000
URL: http://jira.codehaus.org/browse/JRUBY-3000
Project: JRuby
Issue Type: Bug
Components: Java Integration
Affects Versions: JRuby 1.1.4, JRuby 1.1.3
Environment: JRuby 1.1.4 and 1.1.3 on Sun Java SE build 1.6.0_07-b06
running on Win2K w/SP4
Reporter: Jon
Attempting to *{{import}}* a Java class (containing either named or anonymous
inner classes) from a *{{require}}*'d JAR causes an exception.
Replicate by running the following Ruby code after downloading the
stringtemplate.jar file included in this distribution
[http://stringtemplate.org/download.html]
{code:title=jruby_st2.rb|borderStyle=solid}
begin
raise LoadError, 'missing JRuby' unless RUBY_PLATFORM == 'java'
require 'java'
require 'C:/temp/stringtemplate.jar'
rescue LoadError => e
puts "#{e.message}; exiting..."
exit -1
end
def purge(e)
puts e.message
e.backtrace.each { |i| puts i }
end
begin
# try to import class with no inner classes
import 'org.antlr.stringtemplate.AutoIndentWriter'
rescue Exception => e
purge e
end
begin
# try to import class with anonymous inner class
import 'org.antlr.stringtemplate.StringTemplateGroup'
rescue Exception => e
purge e
end
begin
# try to import class with 2 named static final classes
import 'org.antlr.stringtemplate.StringTemplate'
rescue Exception => e
purge e
end
{code}
Running the above file using *{{jruby jruby_st2.rb}}* gives the following:
{noformat:title=Exception Summary|borderColor=#FF0000}
cannot link Java class org.antlr.stringtemplate.StringTemplateGroup
(eval):1:in `binding'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:67:in
`eval'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:67:in
`include_class'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:38:in
`each'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:38:in
`include_class'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:81:in
`java_import'
jruby-st2.rb:44
cannot link Java class org.antlr.stringtemplate.StringTemplate
(eval):1:in `binding'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:67:in
`eval'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:67:in
`include_class'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:38:in
`each'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:38:in
`include_class'
E:/jruby/lib/ruby/site_ruby/1.8/builtin/javasupport/core_ext/object.rb:81:in
`java_import'
jruby-st2.rb:51
{noformat}
--
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