@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass resultClassDescriptor = super.readClassDescriptor(); final String originalClassName = resultClassDescriptor.getName(); if (renamedClasses.containsKey(originalClassName)) { final String className = renamedClasses.get(originalClassName); logger.info("Class '{}' was encountered. Returning class descriptor of new class name: '{}'", originalClassName, className); return getClassDescriptor(className, resultClassDescriptor); } else { final Set<Entry<String, String>> entrySet = renamedPackages.entrySet(); for (Entry<String, String> entry : entrySet) { final String legacyPackage = entry.getKey(); if (originalClassName.startsWith(legacyPackage)) { final String className = originalClassName.replaceFirst(legacyPackage, entry.getValue()); logger.info("Class '{}' was encountered. Returning class descriptor of new class name: '{}'", originalClassName, className); return getClassDescriptor(className, resultClassDescriptor); } } } if (INTERFACES_WITH_SERIAL_ID_CHANGES.contains(originalClassName)) { final ObjectStreamClass newClassDescriptor = ObjectStreamClass.lookup(resolveClass(originalClassName)); return newClassDescriptor; } return resultClassDescriptor; }
@Override protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { final ObjectStreamClass resultClassDescriptor = super.readClassDescriptor(); final String originalClassName = resultClassDescriptor.getName(); final String className = getClassNameRenamed(originalClassName); if (className != originalClassName) { return getClassDescriptor(className, false, resultClassDescriptor); } if (INTERFACES_WITH_SERIAL_ID_CHANGES.contains(originalClassName)) { return ObjectStreamClass.lookup(resolveClass(originalClassName, false)); } return resultClassDescriptor; }