java.io.EOFException
やバックエンドへの送信中に、入出力エラーが起こりました。
というメッセージから判断するに、SQL実行中に何らかの事情でJDBC Connectionが切断されたのだと思います。そして、その切断されたConnectionを使いまわそうとして、このコネクションは既にクローズされています。
が発生しているように見えます。
なので、Connectionが切断された理由を探るのが問題解決の近道だと思うのですが、ここで気になるのは「検索開始から5分程度経過する」と述べられていることで、これは「実行するSQLがスロークエリで、完了までに5分以上かかるが、5分経過するとエラーになってしまう」ということでしょうか? であれば、TomcatやPostgreSQLなどの設定として、statement timeoutのような設定が入っていないかどうか確認できますでしょうか?
また、Javaのスタックトレースを提示していただいており、これはTomcat側のログであるという認識です。つまり、問題が発生した近辺のPostgreSQL側のログを見て、何か手がかりになりそうなものはありますでしょうか?
(すでに解決済みならご放念ください)