Учтите, что агент JADE в конце концов является Java-потоком, и, где бы ни возникала ошибка, он будет завершать работу агента или потока (обычно это происходит в классе AgentWrapper, если я прав).
Также имейте в виду, что при вызове JOptionPane (то есть Swing) вы затрагиваете два потока: поток агентов и поток Swing, что, возможно, вызывает проблемы параллелизма.Лучше не путать их;вместо этого используйте интерфейс агента O2A, отделив приложение / визуализацию конечного пользователя от агента.