1 package org.apache.turbine.util.pool;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.io.InputStream;
24 import java.io.ObjectInputStream;
25 import java.io.ObjectStreamClass;
26
27 /***
28 * A deserialization stream for a specific class loader context.
29 *
30 * @author <a href="mailto:ilkka.priha@simsoft.fi">Ilkka Priha</a>
31 * @version $Id: ObjectInputStreamForContext.java 534527 2007-05-02 16:10:59Z tv $
32 */
33 public class ObjectInputStreamForContext extends ObjectInputStream
34 {
35 /***
36 * The class loader of the context.
37 */
38 private ClassLoader classLoader;
39
40 /***
41 * Contructs a new object stream for a context.
42 *
43 * @param in the serialized input stream.
44 * @param loader the class loader of the context.
45 * @throws IOException on errors.
46 */
47 public ObjectInputStreamForContext(InputStream in,
48 ClassLoader loader)
49 throws IOException
50 {
51 super(in);
52 classLoader = loader;
53 }
54
55 protected Class resolveClass(ObjectStreamClass v)
56 throws IOException,
57 ClassNotFoundException
58 {
59 return classLoader == null ?
60 super.resolveClass(v) : classLoader.loadClass(v.getName());
61 }
62 }