Search code examples
rubyjrubyrake-task

Rake task not running


Every time I call my rake task it say:

[2012-07-12 15:50:01] ERROR IOError: An existing connection was forcibly closed by the remote host
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/httpresponse.rb:324:in `_write_data'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/httpresponse.rb:180:in `send_header'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/httpresponse.rb:103:in `send_response'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/httpserver.rb:79:in `run'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/server.rb:162:in `start'
[2012-07-12 15:50:29] ERROR IOError: An existing connection was forcibly closed by the remote host
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/httpserver.rb:55:in `run'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
        C:/jruby-1.3.1/lib/ruby/1.8/webrick/server.rb:162:in `start'

I have tryed different options thinking that it could be the call to the rake task but apparently isn't, also I have tryed with Mongrel and WEBRick in case that it could be the server. I'm using Jruby 1.3.1

The task it's not been executed.

This is part of my code:

application_controller.rb

 def call_rake(task, options = {})
    options[:rails_env] ||= Rails.env
    args = options.map { |n, v| "#{n.to_s.upcase}='#{v}'" }
    system "C:/jruby-1.3.1/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake #{task} #{args.join(' ')} start"
  end

forbidden_file.rake

desc "Process CSV file"
task :process_file => :environment do
  forbidden_file = ForbiddenFile.find(ENV["csv"])
  forbidden_file.upload_file
end

Controller

...
call_rake :process_file, :csv => params[:files]
redirect_to forbidden_files_url
...

Solution

  • It's working now, I just removed the word start from the command.

    system "rake #{task} #{args.join(' ')}"