Трудно сказать без ошибки, но я думаю, что, возможно, нашел ее.
Вы получаете сообщение об ошибке, когда Integer.parseInt (String) получает int / Integer, который, скорее всего, выдает ошибку метода не найден. В этом случае [void setAttribute (String, Object)] будет принимать целое число, которое вы передаете, а [Object getAttribute (String)] будет возвращать целое число. Integer.parseInt (String) завершится ошибкой.
Если вы реорганизуетесь, чтобы не выполнять Integer.parseInt () и просто приводите результат к int, у вас должно быть все в порядке.