- Включите подробную информацию о своей цели:
- Опишите ожидаемые результаты:
Код: Выделить всё
return (Map) objectInputStream.readObject();
- Опишите фактические результаты:
- запросить добавление java.util.Collections$UnmodifyingMap в сериализацию-config.json< /li>
если я добавлю java.util.Collections$UnmodifyingMap в сериализацию-config.json (в правильности которого я даже не уверен), я получу java.io .InvalidClassException: java.util.HashMap; локальный класс несовместим: поток classdesc
- Включить все сообщения об ошибках:
Если я не добавляю что-либо в сериализацию-config.json, произойдет ошибка, и трассировка стека попросит меня добавить java.util.Collections$UnmodifyingMap в сериализацию-config.json
Код: Выделить всё
java.io.InvalidClassException: java.util.HashMap; local class incompatible: stream classdesc serialVersionUID = 362498820763181265, local class serialVersionUID = -3563561681480877083
at java.base@22.0.1/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:598)
at java.base@22.0.1/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2063)
at java.base@22.0.1/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1912)
at java.base@22.0.1/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2237)
at java.base@22.0.1/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1747)
at java.base@22.0.1/java.io.ObjectInputStream$FieldValues.(ObjectInputStream.java:2603)
at java.base@22.0.1/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2454)
at java.base@22.0.1/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2269)
at java.base@22.0.1/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1747)
at java.base@22.0.1/java.io.ObjectInputStream.readObject(ObjectInputStream.java:525)
at java.base@22.0.1/java.io.ObjectInputStream.readObject(ObjectInputStream.java:483)
- Покажите код:
Код: Выделить всё
private static Map getNormalizedMap(String encoded) {
try (var objectInputStream = new ObjectInputStream(new ByteArrayInputStream(Base64.getDecoder().decode(encoded)))) {
return (Map) objectInputStream.readObject(); // issue here !
} catch (IOException | ClassNotFoundException | IllegalArgumentException e) {
LOGGER.error("encoded={}", encoded, e);
return Map.of();
}
}
- Вопрос:
Подробнее здесь: https://stackoverflow.com/questions/784 ... ption-java