// ********************************************************************** // // Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** package IceInternal; // // We need to override the resolveClass method of ObjectInputStream so // that we can use the same class-lookup mechanism as elsewhere in the // Ice run time. // public class ObjectInputStream extends java.io.ObjectInputStream { public ObjectInputStream(Instance instance, java.io.InputStream in) throws java.io.IOException { super(in); _instance = instance; } protected Class<?> resolveClass(java.io.ObjectStreamClass cls) throws java.io.IOException, ClassNotFoundException { try { Class<?> c = _instance.findClass(cls.getName()); if(c != null) { return c; } throw new ClassNotFoundException("unable to resolve class" + cls.getName()); } catch(Exception ex) { throw new ClassNotFoundException("unable to resolve class " + cls.getName(), ex); } } private Instance _instance; }