rake "can't convert Class into String" when line 2421 in rake.rb calls 
Java::JavaUtilJar::JarInputStream,to_s
-------------------------------------------------------------------------------------------------------------

                 Key: JRUBY-3538
                 URL: http://jira.codehaus.org/browse/JRUBY-3538
             Project: JRuby
          Issue Type: Bug
          Components: Core Classes/Modules
    Affects Versions: JRuby 1.2, JRuby 1.3
            Reporter: Stephen Bannasch
            Priority: Critical


I've got a gem for working with jnlp resources I'm working on and I can no 
longer use hoe with it.

To even use hoe with JRuby I first need to apply this patch.

* http://gist.github.com/87670

But the problem comes in line 2421 on rake.rb when it tries to call to_s.

Also see possibly related issue [JRUBY-3486].

Here's one way to reproduce it.

{code}
# hpricot 0.6.164 is a dependency of the gem I am building
jruby -S gem install hpricot -v0.6.164
git clone g...@github.com:stepheneb/jnlp.git
cd jnlp
jruby -S rake --T --trace
{code}

On my MacOS X 10.5.6 system hat results in this:

{code}
rake aborted!
can't convert Class into String
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2425:in
 `load_imports'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2366:in
 `raw_load_rakefile'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1993:in
 `load_rakefile'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in
 `standard_exception_handling'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1992:in
 `load_rakefile'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1976:in
 `run'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in
 `standard_exception_handling'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1974:in
 `run'
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake:31
/Users/stephen/dev/ruby/src/jruby.git/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake:19:in
 `load'
/Users/stephen/dev/ruby/src/jruby.git/bin/rake:19
{code}

Here's he code in rake.rb

{code}

    # Load the pending list of imported files.
    def load_imports
      while fn = @pending_imports.shift
        next if @imported.member?(fn)
        if fn_task = lookup(fn)
          fn_task.invoke
        end
        ext = File.extname(fn)
        loader = @loaders[ext] || @default_loader
        loader.load(fn)
        @imported << fn
      end
    end
{code}

Instrumenting the code just before the exception shows that fn has a value of 
Java::JavaUtilJar::JarInputStream and indeed that particular instance won't 
respond to :to_s.



-- 
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