Проебал 20 минут чтобы выяснить, что firefox не запускается и тихо возвращает 1, когда запущен из несуществующей директории из-под sudo; нет, в strace нихуя не ясно.
Если известно, что obj != null, то лучше писать sb.append(obj.toString()), чем sb.append(obj), чтобы избежать лишнего вызова String.valueOf(obj)