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(", ")
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.