По-видимому, существует 2 метода повторного развертывания. Похоже, что они оба продолжат запускать старое приложение, пока оно не перестанет обслуживать запросы. Эти 2 метода отличаются только тем, как они удаляют приложение. Метод, который мы используем, полностью поддерживает старое приложение и использует различные загрузчики классов для загрузки нового приложения. Наше старое приложение не было развернуто. Тем не менее, если вы запускаете поток где-то, что не было явно завершено (что оказалось так), вы потенциально можете иметь 2 экземпляра одного и того же класса, загруженных через разные загрузчики классов, выполняющиеся одновременно. Запуск потоков, на которые у Weblogic нет смертельной хватки, считается плохой практикой и небезопасным. Теперь я знаю почему.