Author: remm
Date: Mon Apr 3 16:24:38 2017
New Revision: 1790020
URL: http://svn.apache.org/viewvc?rev=1790020&view=rev
Log:
60950 - JSTL TransformSupport XSL import not finding relative path. Patch
submitted by Tomaz Cerar.
Modified:
tomcat/taglibs/standard/trunk/CHANGES.txt
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java
Modified: tomcat/taglibs/standard/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/CHANGES.txt?rev=1790020&r1=1790019&r2=1790020&view=diff
==============================================================================
--- tomcat/taglibs/standard/trunk/CHANGES.txt (original)
+++ tomcat/taglibs/standard/trunk/CHANGES.txt Mon Apr 3 16:24:38 2017
@@ -1,3 +1,6 @@
+Changes in x release
+60950 JSTL TransformSupport XSL import not finding relative path
+
Changes in 1.2.5 release
- Set version identifiers correctly, no other changes.
@@ -86,4 +89,4 @@ However, due to the time since the last
30068 Wrong behaviour of x:out inside x:forEach
27717 <x:forEach> very slow in JSTL 1.1
17388 Result set created in query tag is never released + update tag
-14465 position() and last() are critical
\ No newline at end of file
+14465 position() and last() are critical
Modified:
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java
URL:
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java?rev=1790020&r1=1790019&r2=1790020&view=diff
==============================================================================
---
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java
(original)
+++
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/tag/common/xml/TransformSupport.java
Mon Apr 3 16:24:38 2017
@@ -121,7 +121,7 @@ public abstract class TransformSupport e
}
try {
- t = XmlUtil.newTransformer(source);
+ t = XmlUtil.newTransformer(source, uriResolver);
t.setURIResolver(uriResolver);
} catch (TransformerConfigurationException e) {
throw new JspTagException(e);
Modified:
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java
URL:
http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java?rev=1790020&r1=1790019&r2=1790020&view=diff
==============================================================================
---
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java
(original)
+++
tomcat/taglibs/standard/trunk/impl/src/main/java/org/apache/taglibs/standard/util/XmlUtil.java
Mon Apr 3 16:24:38 2017
@@ -25,7 +25,6 @@ import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.concurrent.Callable;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.PageContext;
import javax.xml.XMLConstants;
@@ -183,14 +182,23 @@ public class XmlUtil {
* @return a new Transformer
* @throws TransformerConfigurationException if there was a problem
creating the Transformer from the XSLT
*/
- public static Transformer newTransformer(Source source) throws
TransformerConfigurationException {
- Transformer transformer = TRANSFORMER_FACTORY.newTransformer(source);
- // Although newTansformer() is not allowed to return null, Xalan does.
- // Trap that here by throwing the expected
TransformerConfigurationException.
- if (transformer == null) {
- throw new TransformerConfigurationException("newTransformer
returned null. XSLT may be invalid.");
+ public static Transformer newTransformer(Source source, JstlUriResolver
uriResolver) throws TransformerConfigurationException {
+ synchronized (TRANSFORMER_FACTORY) {
+ final URIResolver original = TRANSFORMER_FACTORY.getURIResolver();
+ try {
+ TRANSFORMER_FACTORY.setURIResolver(uriResolver);
+ Transformer transformer =
TRANSFORMER_FACTORY.newTransformer(source);
+ // Although newTransformer() is not allowed to return null,
Xalan does.
+ // Trap that here by throwing the expected
TransformerConfigurationException.
+ if (transformer == null) {
+ throw new
TransformerConfigurationException("newTransformer returned null. XSLT may be
invalid.");
+ }
+ return transformer;
+ } finally {
+ //restore URI resolver on factory to what was before
+ TRANSFORMER_FACTORY.setURIResolver(original);
+ }
}
- return transformer;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]