Маловато информации. Что изменяет значение переменной и где? В тегах ты указал теги php и js одновременно. Так где эта переменная присутствует конкретно?
Дополнительная проверка на существование символа в тексте не лишняя? Не получается ли что в этом случае алгоритм с каждой итерацией цикла проходит через все символы в text дважды? Один раз для проверки "symbol in text" и второй раз для самой замены "replace".
Похоже дело было в самой карте памяти, скорее всего повреждена по какой-то причине. Однако ваш ответ выглядит как возможный вариант отладки, так что помечу как решение.
По поводу этого предупреждения про OpenJDK -- лично на моём опыте на OpenJDK побыстрее работает, я бы посоветовал попробовать его тоже и сравнить, что больше подходит.