You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by tm...@apache.org on 2002/10/15 21:54:37 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java TransformerFactoryImpl.java

tmiller     2002/10/15 12:54:36

  Modified:    java/src/org/apache/xalan/xsltc/trax TemplatesImpl.java
                        TransformerFactoryImpl.java
  Log:
  bug fix 12317, serialization of Templates is fixed
  
  Revision  Changes    Path
  1.23      +18 -15    xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java
  
  Index: TemplatesImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- TemplatesImpl.java	15 Aug 2002 14:29:18 -0000	1.22
  +++ TemplatesImpl.java	15 Oct 2002 19:54:36 -0000	1.23
  @@ -68,6 +68,7 @@
   import java.io.Serializable;
   import java.io.ObjectInput;
   import java.io.ObjectOutput;
  +import java.io.ObjectInputStream;
   import java.io.IOException;
   import java.util.Properties;
   import java.security.AccessController;
  @@ -132,7 +133,7 @@
        * A reference to the transformer factory that this templates
        * object belongs to.
        */
  -    private TransformerFactoryImpl _tfactory = null;
  +    private transient TransformerFactoryImpl _tfactory = null;
   
       private class TransletClassLoader extends ClassLoader {
   
  @@ -144,6 +145,7 @@
   	}
       }
   
  +
      /**
        * The only way to create an XSLTC emplate object
        * The bytecodes for the translet and auxiliary classes, plus the name of
  @@ -160,21 +162,22 @@
   	_tfactory = tfactory;
       }
   
  -    public synchronized void writeExternal(ObjectOutput out) 
  -	throws IOException 
  -    {
  -	out.writeObject(_name);
  -	out.writeObject(_bytecodes);
  -	out.flush();
  -    }
  +    /**
  +     * Need for de-serialization, see readObject().
  +     */
  +    public TemplatesImpl() { }
   
  -    public synchronized void readExternal(ObjectInput in)
  -	throws IOException, ClassNotFoundException 
  +    /**
  +     *  Overrides the default readObject implementation since we decided
  +     *  it would be cleaner not to serialize the entire tranformer
  +     *  factory.  [ ref bugzilla 12317 ]
  +     */
  +    private void  readObject(ObjectInputStream is) 
  +      throws IOException, ClassNotFoundException 
       {
  -	_name      = (String)in.readObject();
  -	_bytecodes = (byte[][])in.readObject();
  -	_class     = null; // must be created again...
  -    }
  +	is.defaultReadObject();
  +	_tfactory = new TransformerFactoryImpl();
  +    } 
   
        /**
        * Store URIResolver needed for Transformers.
  
  
  
  1.53      +2 -2      xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
  
  Index: TransformerFactoryImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- TransformerFactoryImpl.java	1 Oct 2002 18:38:03 -0000	1.52
  +++ TransformerFactoryImpl.java	15 Oct 2002 19:54:36 -0000	1.53
  @@ -162,7 +162,7 @@
       /**
        * The above hashtable stores objects of this class.
        */
  -    private class PIParamWrapper {
  +    private static class PIParamWrapper {
   	public String _media = null;
   	public String _title = null;
   	public String _charset = null;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org