интересная проблема substring старых JVM.
не знаю насколько это актуально в Аксапте, надо проверять.
https://youtu.be/SZFe3m1DV1A?t=1707
суть:
substring в старых JVM не создавал новую строку, а возвращал shared область памяти из исходной строки. Поэтому исходная строка не освобождала память пока не будет освобожден substring
"известно, что это приводит к утечкам памяти. часто пользователь загружает 50Мб xml, из него выкусывает одну xml-entity размером 20 байт, ее куда-нибудь к себе в коллекцию сторит. а потом удивляется откуда у него в хипе 50мб мусора"