У вас утечка из загрузчика!
Обычно вы обнаружите, что при развертывании приложения на любом сервере приложений JavaEE (включая Glassfish) сервер приложений создаст новый загрузчик классов специально для вашего приложения. Когда ваше приложение инициализируется и запускается, этот загрузчик классов загрузит новые классы, которые будут помещены в постоянную память, называемую PermGen
region.
Когда приложение не развернуто, этот загрузчик классов должен собираться мусором, но иногда этого не происходит, потому что что-то вызывает сохранение ссылки. Когда вы повторно развертываете свое приложение, сервер приложений выполняет те же действия, что и раньше, но теперь доступно меньше памяти.
Для получения дополнительной информации об этом, посмотрите Фрэнк Киевиет сообщение в блоге под названием Утечки в Classloader и последующие инструкции по Как устранить утечки в Classloader .