Problema com perda de sessão

Olá galera,

Enfrentei um problema estranho hoje, foi o seguinte:
Estou desenvolvendo uma aplicação de upload de arquivos através de Servlets.
Tenho uma Servlet responsável pelo upload em sí e uma que é utilizada pela interface para saber o progresso do processo de upload.
O o upload e o progresso são feitos utilizando a ProgressListener e a ServletFileUpload ambas da lib da Apache.
Criei uma ProgressListener na primeira Servlet que simplesmente põe na Sessão uma porcentagem, e essa porcentagem é obtida pela segunda Servlet.

Para testar eu fazia o seguinte:
1.: Usava a primeira Servlet com um arquivo gigante, através de um HTML simples com um FORM no Firefox.
2.: Enquanto a primeira Servlet não respondia eu chamava a segunda para saber o status do upload, através, também, de um HTML simples com um FORM em uma aba diferente da mesma instância do Firefox.
Obs.: Usando o Firebug confirmei que o as duas abas com os dois FORM’s enviavam o mesmo código de Sessão.

O meu problema é que sempre durante a execução da segunda Servlet era obtida uma Sessão nova, e não pegava a mesma Sessão utilizada pela primeira Servlet.

Realizei várias tentativas de solucionar o problema, fazer as duas Servlets olharem para a mesma Sessão.
E apenas quando modifiquei a forma com que eu definia o Status do Response que a coisa funcionou.
No caso eu definia no processo do upload status do response como sendo 201 e estava esquecendo de redefiní-lo para 200 no final do processo de upload.
Mas não consegui entender qual é a relação de uma coisa com a outra.

Mas também não consigo entender qual outra coisa estava impedindo de as duas Servlets compartilharem a mesma Sessão.

Alguem aí sabe dizer qual era a fonte do meu problema, que foi resolvido na sorte?

Aparentemente tem haver com o fato de eu tentar fazer uma segunda requisição, que deve levar o JSession consigo, antes da primeira responder para que o browser posso “gravar” o JSession.
Não sei… estou averiguando.

Alguem tem algum palpite?