package jadex.commons; import java.io.IOException; import java.io.InputStream; import java.io.ObjectStreamClass; /** * Extension of the standard object input stream, which does * not provide any means to set the classloader to use. * * cf. bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4340158 */ public class ObjectInputStream extends java.io.ObjectInputStream { //-------- attributes -------- /** The classloader. */ protected ClassLoader classloader; //-------- constructors -------- /** * Create a new object input stream * @param in The in stream. * @param classloader The classloader. * @throws IOException The exception. */ public ObjectInputStream(InputStream in, ClassLoader classloader) throws IOException { super(in); this.classloader = classloader; } //-------- methods -------- /** * Resolve a class. * @param desc The object stream class. */ protected Class resolveClass(ObjectStreamClass desc) throws ClassNotFoundException { return Class.forName(desc.getName(), false, classloader); } }