Program/Java

If ObjectInputStream Package Name has been changed

핸디앤디 2013. 2. 7. 17:19

** 개인적 메모입니다. 태클 사절 **

public class CustomObjInputStream extends ObjectInputStream {
	private static final Logger logger = Logger.getLogger(CustomObjInputStream.class);

	protected CustomObjInputStream() throws IOException, SecurityException {
		super();
	}

	public CustomObjInputStream(InputStream in) throws IOException {
		super(in);
	}

	@Override
	protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
		ObjectStreamClass read = super.readClassDescriptor();
		logger.debug("read = " + read);
		logger.debug("read.getName() = " + read.getName());
		logger.debug("read.getSerialVersionUID() = " + read.getSerialVersionUID());
		logger.debug("read.read.getFields() = " + read.getFields());

		if (read.getName().startsWith("com.test.code.object.")) {
			return ObjectStreamClass.lookup(Class.forName(read.getName().replace("com.test.code.object.", "com.test.code1.object.")));
		}

		return read;
	}

}