cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/util CustomObjectInputStream.java

2005-03-10 Thread markt
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

2004-09-02 Thread markt
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

2001-04-25 Thread bip

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

2001-04-25 Thread craigmcc

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