I guess this is because you do not start long running conversation and it lasts only for one request. Show the code of both beans for this is not enough.
I found out that the problem is caused only when the commandLink is in s:fragment which is rendered depending on an boolean variable located in the cat bean. This s:fragment is rendered by ajax request and as I suppose it may be the cause of the problem.
Any clues how to solve it ?