From c6b4c8d240abbca0d1e62b3544fafda77c40de0c Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Mon, 25 Dec 2006 09:01:41 +0000 Subject: [PATCH] Fix Webrick Daemon dispatching bug regarding a bad current working directory. Closes #4899 [Rick Olson] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5784 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/CHANGELOG | 2 ++ railties/lib/webrick_server.rb | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/railties/CHANGELOG b/railties/CHANGELOG index ce2f2b0611..d395067a5c 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fix Webrick Daemon dispatching bug regarding a bad current working directory. Closes #4899 [Rick Olson] + * Make config.plugins affect the load path and the dependencies system. Allows you to control plugin loading order, and keep disabled plugins off the load path. [James Adam] * Don't generate a components directory in new Rails apps. [Jeremy Kemper] diff --git a/railties/lib/webrick_server.rb b/railties/lib/webrick_server.rb index b3e28e812b..71ef275ba4 100644 --- a/railties/lib/webrick_server.rb +++ b/railties/lib/webrick_server.rb @@ -59,13 +59,15 @@ def self.dispatch(options = {}) server.mount('/', DispatchServlet, options) trap("INT") { server.shutdown } - server.start end def initialize(server, options) #:nodoc: @server_options = options @file_handler = WEBrick::HTTPServlet::FileHandler.new(server, options[:server_root]) + # Change to the RAILS_ROOT, since Webrick::Daemon.start does a Dir::cwd("/") + # OPTIONS['working_directory'] is an absolute path of the RAILS_ROOT, set in railties/lib/commands/servers/webrick.rb + Dir.chdir(OPTIONS['working_directory']) if defined?(OPTIONS) && File.directory?(OPTIONS['working_directory']) super end