[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xalan-cvs
Subject:    [xalan-java] branch xalan-j_2_7_1_maint updated: xalanj commit : when the generated xalan translet .
From:       mukulg () apache ! org
Date:       2022-08-09 7:58:58
Message-ID: 166003218412.1193503.18439191668217540133 () gitbox2-he-fi ! apache ! org
[Download RAW message or body]

This is an automated email from the ASF dual-hosted git repository.

mukulg pushed a commit to branch xalan-j_2_7_1_maint
in repository https://gitbox.apache.org/repos/asf/xalan-java.git


The following commit(s) were added to refs/heads/xalan-j_2_7_1_maint by this push:
     new e4610ffb xalanj commit : when the generated xalan translet .class files are \
malformed, delete them from file system during the xslt transformation process. \
upgrading bcel dependency as well, to latest bcel version e4610ffb is described below

commit e4610ffba7f15025b6d594166e339c65b5efc217
Author: Mukul Gandhi <gandhi.mukul@gmail.com>
AuthorDate: Tue Aug 9 13:32:35 2022 +0530

    xalanj commit : when the generated xalan translet .class files are
    malformed, delete them from file system during the xslt transformation
    process. upgrading bcel dependency as well, to latest bcel version
---
 build.xml                                          |   5 +--
 lib/BCEL.jar                                       | Bin 491665 -> 0 bytes
 lib/bcel-6.5.0.jar                                 | Bin 0 -> 695048 bytes
 .../xalan/xsltc/trax/TemplatesHandlerImpl.java     |   3 +-
 src/org/apache/xalan/xsltc/trax/TemplatesImpl.java |  39 +++++++++++++++++++--
 .../xalan/xsltc/trax/TransformerFactoryImpl.java   |  20 +++++++++--
 6 files changed, 58 insertions(+), 9 deletions(-)

diff --git a/build.xml b/build.xml
index 978ab87a..4554b888 100644
--- a/build.xml
+++ b/build.xml
@@ -102,7 +102,8 @@ $Id$
   <property name="xmlapis.jar"            \
value="${endorsed.dir}/${xmlapis.jar.name}"/>  <property name="parser.jar.name"       \
value="xercesImpl.jar"/>  <property name="parser.jar"             \
                value="${endorsed.dir}/${parser.jar.name}"/>
-  <property name="bcel.jar.name"          value="BCEL.jar"/>
+  <!-- <property name="bcel.jar.name"     value="BCEL.jar"/> -->
+  <property name="bcel.jar.name"          value="bcel-6.5.0.jar"/>
   <property name="bcel.jar"               value="${lib.dir}/${bcel.jar.name}"/>
   <property name="runtime.jar.name"       value="runtime.jar"/>
   <property name="runtime.jar"            value="${lib.dir}/${runtime.jar.name}"/>
@@ -1475,7 +1476,7 @@ $Id$
   <!-- =================================================================== -->
   <!-- Compiles and runs mini/smoketest from xml-xalan\test, if present    -->
   <!-- =================================================================== -->
-  <property name="test.relpath" value="../test"/>
+  <property name="test.relpath" value="../xalan-test"/>
 
   <target name="minitest" depends="prepare,minitest-run,tests-not-available" 
     description="Run the Minitest from xml-xalan/test" >
diff --git a/lib/BCEL.jar b/lib/BCEL.jar
deleted file mode 100644
index 644f8763..00000000
Binary files a/lib/BCEL.jar and /dev/null differ
diff --git a/lib/bcel-6.5.0.jar b/lib/bcel-6.5.0.jar
new file mode 100644
index 00000000..18bcc0ad
Binary files /dev/null and b/lib/bcel-6.5.0.jar differ
diff --git a/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java \
b/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java index 8088c7d8..54b9634e \
                100644
--- a/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java
+++ b/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java
@@ -249,7 +249,8 @@ public class TemplatesHandlerImpl
                 if (bytecodes != null) {
                     _templates =
                     new TemplatesImpl(xsltc.getBytecodes(), transletName,
-                        _parser.getOutputProperties(), _indentNumber, _tfactory);
+                        _parser.getOutputProperties(), _indentNumber, _tfactory, 
+                        null, null, null);
 
                     // Set URIResolver on templates object
                     if (_uriResolver != null) {
diff --git a/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java \
b/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java index f108af2f..bc3854e0 100644
--- a/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java
+++ b/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java
@@ -21,6 +21,7 @@
 
 package org.apache.xalan.xsltc.trax;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -115,6 +116,12 @@ public final class TemplatesImpl implements Templates, \
                Serializable {
      * object belongs to.
      */
     private transient TransformerFactoryImpl _tfactory = null;
+    
+    private File _currTransletFile;
+    
+    private File[] _currTransletAuxfiles;
+    
+    private File _currTransletJarfile;
 
     static final class TransletClassLoader extends ClassLoader {
 	TransletClassLoader(ClassLoader parent) {
@@ -137,13 +144,17 @@ public final class TemplatesImpl implements Templates, \
                Serializable {
      */
     protected TemplatesImpl(byte[][] bytecodes, String transletName,
 	Properties outputProperties, int indentNumber,
-	TransformerFactoryImpl tfactory) 
+	TransformerFactoryImpl tfactory, File currTransletFile, File[] \
currTransletAuxfiles, +	File currTransletJarfile) 
     {
 	_bytecodes = bytecodes;
 	_name      = transletName;
 	_outputProperties = outputProperties;
 	_indentNumber = indentNumber;
 	_tfactory = tfactory;
+	_currTransletFile = currTransletFile;
+	_currTransletAuxfiles = currTransletAuxfiles;
+	_currTransletJarfile = currTransletJarfile;
     }
     
     /**
@@ -314,7 +325,8 @@ public final class TemplatesImpl implements Templates, \
Serializable {  }
 	}
 	catch (ClassFormatError e) {
-	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_CLASS_ERR, _name);
+	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_CLASS_ERR, _name);	            	  \
 +	    deleteMalformedTransletClassFiles();	    
 	    throw new TransformerConfigurationException(err.toString());
 	}
 	catch (LinkageError e) {
@@ -347,7 +359,8 @@ public final class TemplatesImpl implements Templates, \
Serializable {  return translet;
 	}
 	catch (InstantiationException e) {
-	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_OBJECT_ERR, _name);
+	    ErrorMsg err = new ErrorMsg(ErrorMsg.TRANSLET_OBJECT_ERR, _name);	    
+	    deleteMalformedTransletClassFiles();        
 	    throw new TransformerConfigurationException(err.toString());
 	}
 	catch (IllegalAccessException e) {
@@ -355,6 +368,26 @@ public final class TemplatesImpl implements Templates, \
Serializable {  throw new TransformerConfigurationException(err.toString());
 	}
     }
+    
+    /*
+     * Delete, any malformed translet .class files from file system, that were 
+     * generated during XSLT transform. 
+     */
+    private void deleteMalformedTransletClassFiles() {
+        if (_currTransletFile != null) {
+           _currTransletFile.delete();   
+        }
+        
+        if (_currTransletAuxfiles != null && _currTransletAuxfiles.length > 0) {
+           for (int idx = 0; idx < _currTransletAuxfiles.length; idx++) {
+             _currTransletAuxfiles[idx].delete();  
+           }
+        }
+        
+        if (_currTransletJarfile != null) {
+           _currTransletJarfile.delete();  
+        }
+    }
 
     /**
      * Implements JAXP's Templates.newTransformer()
diff --git a/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java \
b/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java index \
                cef35440..41f2b1bf 100644
--- a/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
+++ b/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
@@ -201,6 +201,12 @@ public class TransformerFactoryImpl
      * <p>State of secure processing feature.</p>
      */
     private boolean _isSecureProcessing = false;
+    
+    private File _currTransletFile = null;
+    
+    private File[] _currTransletAuxfiles = null;
+    
+    private File _currTransletJarfile = null;
 
     /**
      * javax.xml.transform.sax.TransformerFactory implementation.
@@ -734,7 +740,9 @@ public class TransformerFactoryImpl
 	    	// after each newTemplates() call.
 	    	resetTransientAttributes();
 	    
-	    	return new TemplatesImpl(bytecodes, transletClassName, null, _indentNumber, \
this);	     +	    	return new TemplatesImpl(bytecodes, transletClassName, null, 
+	    	                         _indentNumber, this, _currTransletFile, 
+	    	                         _currTransletAuxfiles, _currTransletJarfile);	    
 	    }
 	}
 	
@@ -851,7 +859,7 @@ public class TransformerFactoryImpl
     }
 
 	return new TemplatesImpl(bytecodes, transletName, 
-	    xsltc.getOutputProperties(), _indentNumber, this);
+	    xsltc.getOutputProperties(), _indentNumber, this, null, null, null);
     }
 
     /**
@@ -1132,7 +1140,9 @@ public class TransformerFactoryImpl
     	File transletFile = new File(transletPath);
     	if (!transletFile.exists())
     	    return null;
-    	    	  
+    	    
+    	_currTransletFile = transletFile;
+    	
     	// Compare the timestamps of the translet and the xsl file.
     	// If the translet is older than the xsl file, return null 
     	// so that the xsl file is used for the transformation and
@@ -1214,6 +1224,8 @@ public class TransformerFactoryImpl
     	    }
     	}
     	
+    	_currTransletAuxfiles = auxfiles;
+    	
     	// Convert the Vector of byte[] to byte[][].
     	final int count = bytecodes.size();
     	if ( count > 0) {
@@ -1315,6 +1327,8 @@ public class TransformerFactoryImpl
     	    for (int i = 0; i < count; i++) {
     	    	result[i] = (byte[])bytecodes.get(i);
     	    }
+    	    
+    	    _currTransletJarfile = file;
     	  
     	    return result;
     	}


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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic