代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/openjdk-1.8.0 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Date: Fri, 9 Jun 2023 10:18:10 +0800
Subject: Cache dom in xml transform
---
.../xalan/internal/xsltc/trax/TransformerImpl.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java
index 8e783cee0..3d143d461 100644
--- a/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java
+++ b/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java
@@ -56,6 +56,7 @@ import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.Properties;
import java.util.StringTokenizer;
import javax.xml.XMLConstants;
@@ -151,6 +152,11 @@ public final class TransformerImpl extends Transformer
*/
private DOM _dom = null;
+ /**
+ * A hashMap for DOMS.
+ */
+ private ConcurrentHashMap<String, DOM> _domMaps = new ConcurrentHashMap();
+
/**
* Number of indent spaces to add when indentation is on.
*/
@@ -530,8 +536,11 @@ public final class TransformerImpl extends Transformer
private DOM getDOM(Source source) throws TransformerException {
try {
DOM dom;
-
if (source != null) {
+ String ssId = source.getSystemId();
+ if ((ssId != null) && (_domMaps.containsKey(ssId))) {
+ return _domMaps.get(ssId);
+ }
DTMWSFilter wsfilter;
if (_translet != null && _translet instanceof StripFilter) {
wsfilter = new DOMWSFilter(_translet);
@@ -549,6 +558,7 @@ public final class TransformerImpl extends Transformer
}
dom = (DOM)_dtmManager.getDTM(source, false, wsfilter, true,
false, false, 0, hasIdCall);
+ if ((ssId != null) && (dom != null)) _domMaps.put(ssId, dom);
} else if (_dom != null) {
dom = _dom;
_dom = null; // use only once, so reset to 'null'
--
2.22.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。