cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java
markt 2005/03/10 15:50:36 Modified:catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java Log: Fix bug 22041. Dynamic proxies are now supported as sesison objects. - Implemented using the code from org.apache.geronimo.network.ResolvingObjectInputStream Revision ChangesPath 1.5 +21 -1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java Index: CustomObjectInputStream.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CustomObjectInputStream.java 2 Sep 2004 18:45:17 - 1.4 +++ CustomObjectInputStream.java 10 Mar 2005 23:50:36 - 1.5 @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectStreamClass; +import java.lang.reflect.Proxy; /** * Custom subclass of codeObjectInputStream/code that loads from the @@ -70,4 +71,23 @@ return Class.forName(classDesc.getName(), false, classLoader); } + +/** + * Return a proxy class that implements the interfaces named in a proxy + * class descriptor. Do this using the class loader assigned to this + * Context. + */ +protected Class resolveProxyClass(String[] interfaces) +throws IOException, ClassNotFoundException { + +Class[] cinterfaces = new Class[interfaces.length]; +for (int i = 0; i interfaces.length; i++) +cinterfaces[i] = classLoader.loadClass(interfaces[i]); + +try { +return Proxy.getProxyClass(classLoader, cinterfaces); +} catch (IllegalArgumentException e) { +throw new ClassNotFoundException(null, e); +} +} } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java
markt 2004/09/02 11:45:17 Modified:.RELEASE-NOTES-4.1.txt catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java Log: Fix bug 19701. Unable to serialize array of custom class - Port of Remy's fix in TC5 for bug 22146 Revision ChangesPath 1.88 +5 -1 jakarta-tomcat-4.0/RELEASE-NOTES-4.1.txt Index: RELEASE-NOTES-4.1.txt === RCS file: /home/cvs/jakarta-tomcat-4.0/RELEASE-NOTES-4.1.txt,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- RELEASE-NOTES-4.1.txt 30 Aug 2004 20:00:26 - 1.87 +++ RELEASE-NOTES-4.1.txt 2 Sep 2004 18:45:17 - 1.88 @@ -1242,6 +1242,10 @@ Incorrect handling of negative timeout in SingleSignOn.sessionEvent() +[4.1.31] #19701 + Session persistence + Fix serialization of array of custom class + Coyote Bug Fixes: 1.4 +10 -10 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java Index: CustomObjectInputStream.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- CustomObjectInputStream.java 26 Aug 2004 21:42:40 - 1.3 +++ CustomObjectInputStream.java 2 Sep 2004 18:45:17 - 1.4 @@ -26,9 +26,9 @@ * class loader for this web application. This allows classes defined only * with the web application to be found correctly. * - * @@author Craig R. McClanahan - * @@author Bip Thelin - * @@version $Revision$, $Date$ + * @author Craig R. McClanahan + * @author Bip Thelin + * @version $Revision$, $Date$ */ public final class CustomObjectInputStream @@ -43,10 +43,10 @@ /** * Construct a new instance of CustomObjectInputStream * - * @@param stream The input stream we will read from - * @@param classLoader The class loader used to instantiate objects + * @param stream The input stream we will read from + * @param classLoader The class loader used to instantiate objects * - * @@exception IOException if an input/output error occurs + * @exception IOException if an input/output error occurs */ public CustomObjectInputStream(InputStream stream, ClassLoader classLoader) @@ -60,14 +60,14 @@ * Load the local class equivalent of the specified stream class * description, by using the class loader assigned to this Context. * - * @@param classDesc Class description from the input stream + * @param classDesc Class description from the input stream * - * @@exception ClassNotFoundException if this class cannot be found - * @@exception IOException if an input/output error occurs + * @exception ClassNotFoundException if this class cannot be found + * @exception IOException if an input/output error occurs */ public Class resolveClass(ObjectStreamClass classDesc) throws ClassNotFoundException, IOException { -return (classLoader.loadClass(classDesc.getName())); +return Class.forName(classDesc.getName(), false, classLoader); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util CustomObjectInputstream.java
bip 01/04/25 18:30:27 Added: catalina/src/share/org/apache/catalina/util CustomObjectInputstream.java Log: Initial revision, broken out from FileStore. Revision ChangesPath 1.1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputstream.java Index: CustomObjectInputstream.java === /* * CustomObjectInputStream.java * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputstream.java,v 1.1 2001/04/26 01:30:27 bip Exp $ * $Revision: 1.1 $ * $Date: 2001/04/26 01:30:27 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.catalina.util; import java.io.InputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectStreamClass; /** * Custom subclass of codeObjectInputStream/code that loads from the * class loader for this web application. This allows classes defined only * with the web application to be found correctly. * * @author Craig R. McClanahan * @author Bip Thelin * @version $Revision: 1.1 $, $Date: 2001/04/26 01:30:27 $ */ public final class CustomObjectInputStream extends ObjectInputStream { /** * The class loader we will use to resolve classes. */ private ClassLoader classLoader = null; /** * Construct a new instance of CustomObjectInputStream * * @param stream The input stream we will read from * @param classLoader The class loader used to instantiate objects * * @exception IOException if an input/output error occurs */ public CustomObjectInputStream(InputStream stream, ClassLoader classLoader) throws IOException { super(stream); this.classLoader = classLoader; } /** * Load the local class equivalent of the specified stream class * description, by using the class loader assigned to this Context. * * @param classDesc Class description from the
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java
craigmcc01/04/25 19:45:11 Added: catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java Log: Add for Bip ... CVS is giving him a screwy error message. Revision ChangesPath 1.1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java Index: CustomObjectInputStream.java === /* * CustomObjectInputStream.java * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util/CustomObjectInputStream.java,v 1.1 2001/04/26 02:45:10 craigmcc Exp $ * $Revision: 1.1 $ * $Date: 2001/04/26 02:45:10 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact apache@@apache.org. * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.catalina.util; import java.io.InputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectStreamClass; /** * Custom subclass of codeObjectInputStream/code that loads from the * class loader for this web application. This allows classes defined only * with the web application to be found correctly. * * @@author Craig R. McClanahan * @@author Bip Thelin * @@version $Revision: 1.1 $, $Date: 2001/04/26 02:45:10 $ */ public final class CustomObjectInputStream extends ObjectInputStream { /** * The class loader we will use to resolve classes. */ private ClassLoader classLoader = null; /** * Construct a new instance of CustomObjectInputStream * * @@param stream The input stream we will read from * @@param classLoader The class loader used to instantiate objects * * @@exception IOException if an input/output error occurs */ public CustomObjectInputStream(InputStream stream, ClassLoader classLoader) throws IOException { super(stream); this.classLoader = classLoader; } /** * Load the local class equivalent of the specified stream class * description, by using the class loader assigned to this Context. * * @@param classDesc