Recently after updating Ruby on Rails, after runnig Webrick in a development mode, it started to crush with such an error:
ERROR NoMethodError: undefined method `split' for nil:NilClass
/home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb:68:in `block in service'
/home/path/gems/rack-1.4.3/lib/rack/utils.rb:387:in `block in each'
/home/path/gems/rack-1.4.3/lib/rack/utils.rb:386:in `each'
/home/path/gems/rack-1.4.3/lib/rack/utils.rb:386:in `each'
/home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb:62:in `service'
/home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/home/path/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
I don't know why it happens but I know how to fix it ;)
To do so, you need to find 68 line in a Webric server:
# Ofc change the path to your Webrick path vim /home/path/gems/rack-1.4.3/lib/rack/handler/webrick.rb
Localize line 68 and change:
res[k] = vs.split("\n").join(", ")
to:
res[k] = vs.to_s.split("\n").join(", ")
It seams that the header value is somehow nil, that's why we cast it to empty string.