Params object NULL/nil in controller - is this a bug?

Hi All

I am trying to implement a functionality where a user clicks on “Back to
Search Results” link he is taken to the back to search result screen.
For this I am storing his search criteria (params object) in session.
Below is my code, for the first time when the user performs a search,
there is no result data in session so the execution enters first
if… see below


def search

logger.debug(“params.nil?=#{params.nil?}”) # this prints
'params.nil?=false ’ <=== params is NOT nil at this point

if session[:incidentSearch].nil? or session[:incidentSearch].empty?

params.each{|k,v| logger.debug("key: #{k}, value: #{v}")} #this 

prints the key value pairs perfectly

logger.debug("params=#{params.to_s}") # this prints 

‘params.nil?=false’ <=== params is NOT nil at this point

# s=params.dup

# params=s

# logger.debug("params=#{s.to_s}")

if params[:routeNum].nil? or params[:routeNum].empty? <=== params is 

NOT nil at this point

    flash[:warning] = "Don't try stupid things....Enter some search 

criteria."

    redirect_to :back and return

elsif !params[:routeNum ].empty? and one more condition

    flash[:warning] = "Specify only one search criteria Reference# 

or Route or Date (Start and End both)"

    redirect_to :back and return

end

params.
each{|k,v| logger.debug("key: #{k}, value: #{v}")}

elsif !session[:incidentSearch].nil? and
!session[:incidentSearch].empty? # control never reaches here for the
first time the search is done

logger.debug("======> Somebody was here.......") # <== control never 

reaches here for the first time the search is done

params = session[:incidentSearch] # <== control never reaches here, 

if I comment it every thing works fine i.e. params is never nil

puts "***^*&^&^*(^%%^%&^$%$%$&%$&$&^$&^ Somebody was here......." # 

<== control never reaches here and nothing is printed

end
logger.debug(
“params.nil?=#{params.nil?}”) # this prints 'params.nil?=true ’ <===
params is NIL at this point.

#proceed with search…


This is a single user development environment. So only one request comes
in for a search… and the params is nil before I can even proceed
with search.

Can somebody please help me understand where and why is params being set
to nil???

Oh and if I do the following in my first if

s=params.dup
params=s

everything works fine

-daya