- /*
- * @(#)ObjectInputStreamWithLoader.java 4.20 04/02/06
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.jmx.mbeanserver;
-
- // Java import
- import java.io.ObjectInputStream;
- import java.io.InputStream;
- import java.io.IOException;
- import java.io.StreamCorruptedException;
- import java.io.ObjectStreamClass;
-
- import javax.management.* ;
-
-
-
-
- /**
- * This class deserializes an object in the context of a specific class loader.
- *
- * @since 1.5
- */
- class ObjectInputStreamWithLoader extends ObjectInputStream {
-
-
- private ClassLoader loader;
-
-
- /**
- * @exception IOException Signals that an I/O exception of some
- * sort has occurred.
- * @exception StreamCorruptedException The object stream is corrupt.
- */
- public ObjectInputStreamWithLoader(InputStream in, ClassLoader theLoader)
- throws IOException {
- super(in);
- this.loader = theLoader;
- }
-
- protected Class resolveClass(ObjectStreamClass aClass)
- throws IOException, ClassNotFoundException {
- if (loader == null) {
- return super.resolveClass(aClass);
- } else {
- String name = aClass.getName();
- // Query the class loader ...
- return Class.forName(name, false, loader);
- }
- }
- }