https://bz.apache.org/bugzilla/show_bug.cgi?id=62453
Bug ID: 62453
Summary: Tomcat tries to resolve uninitialized tag attributes
in EL as java class names and this behavior causes
performance problems.
Product: Tomcat 9
Version: 9.0.8
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: EL
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: -----
an example of tag file
/WEB-INF/tags/sample.tag
{{{
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="foo" required="true" %>
<%@ attribute name="bar" %>
<%@ attribute name="baz" %>
<div>
<div>foo: ${foo.toString()}</div>
<div>bar: ${bar.toString()}</div>
<div>baz: ${baz.toString()}</div>
</div>
}}}
an example of jsp file calling tag without "bar" and "baz" attributes
{{{
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<html>
<body>
<h2>Example of Uninitialized Tag Attributes</h2>
<tags:sample foo="FOO"/>
</body>
</html>
}}}
I found that the uninitialized attributes were NOT set into context in Java
files generated from tag file.
Besides, when the uninitialized attributes were called in EL,
ScopedAttributeELResolver tries to resolve attributes name as java class names.
ref. getValue method in
http://svn.apache.org/repos/asf/tomcat/tags/TOMCAT_9_0_8/java/javax/servlet/jsp/el/ScopedAttributeELResolver.java
I have already confirmed that the uninitialized attributes actually affect
performance.
I got jfr to compare between there are uninitialized attributes or not.
It was confirmed that lock wait occurs in java.util.jar.JarFile class and
sun.misc.URLClassPath class only when there are uninitialized attributes in
tag.
the related bug
Performance issue evaluating EL in custom tags (tagx) due to inefficient calls
to java.lang.Class.forName()
https://bz.apache.org/bugzilla/show_bug.cgi?id=57583
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]