Good pointer on the dual classLoaders, and I'm stuck again.
First I tried just calling ObjectInputStream.readObject(), and it threw: java.lang.ClassNotFoundException: org.apache.log4j.spi.LoggingEvent This is because ObjectInputStream doesn't know to use JarClassLoader, and log4j.jar is no longer in my classpath. Next I tried dynamically loading ObjectInputStream using the same JarClassLoader that has a reference to the new log4j.jar. On calling ois.readObject() I still get: java.lang.ClassNotFoundException: org.apache.log4j.spi.LoggingEvent This is because JarClassLoader is still delegating the loading to the root ClassLoader (java.io.ObjectInputStream is not in log4j.jar), which leaves ObjectInputStream with a reference to root ClassLoader, instead of the JarClassLoader. So I altered JarClassLoader to also look in rt.jar (the Sun jar that includes all the stock packages). This should leave ObjectInputStream with a reference to the JarClassLoader as it's ClassLoader. This fails before JarClassLoader can even return the O.I.S. Class definition. It throws: java.lang.SecurityException: Prohibited package name: java.io Which is the same problem as when I first started on this with java.io.LoggingEventInputStream Once again I feel I have reached an impasse. Any ideas? BTW, I already tried LoggingEvent.readObject( ObjectInputStream ), which throws: java.io.NotActiveException: defaultReadObject at java.io.ObjectInputStream.readFields Presumeably because ObjectInputStream does something to initialize the stream before it calls targetClass.readObject(). ------------------------------------------------------------------- Who owns your data? Proprietary protocols and file formats are dangerous. ------------------------------------------------------------------- -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>