[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