Это означает, что ваша карта времени выполнения возвращает строку, когда ваш код был скомпилирован с ожиданием Long:
decodedMap.get("time") //At compile time, this is a Long
Но когда код выполняется во время выполнения, фактическим значением является строка.
Вы можете легко скопировать его, вставив строку в карту:
stateMap.put("resId", 456L);
((Map) stateMap).put("time", String.valueOf(System.currentTimeMillis()));
long tokenTime = Long.valueOf(stateMap.get("time"));
Последняя строка выше поднимает:
Исключение в потоке "main" java.lang.ClassCastException: java.lang.String не может быть приведено к java.lang.Long
Ваш JSON должен быть исправлен, или вам нужно изменить код для компиляции с Long.valueOf(String)