From 009abe33bfb05b6e5fa4eaa61215e60bbcf49dae Mon Sep 17 00:00:00 2001 From: remm Date: Wed, 1 Nov 2006 01:20:18 +0000 Subject: [PATCH] - Adjust the tests for deferred expressions evaluation. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@469739 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/jasper/compiler/Validator.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java index 1e17f6cd4..9a67341b0 100644 --- a/java/org/apache/jasper/compiler/Validator.java +++ b/java/org/apache/jasper/compiler/Validator.java @@ -664,7 +664,9 @@ class Validator { // JSP.2.2 - '#{' not allowed in template text if (n.getType() == '#') { - if (!pageInfo.isDeferredSyntaxAllowedAsLiteral()) { + if (!pageInfo.isDeferredSyntaxAllowedAsLiteral() + && (tagInfo == null + || ((tagInfo != null) && !tagInfo.getTagLibrary().getRequiredVersion().equals("2.0")))) { err.jspError(n, "jsp.error.el.template.deferred"); } else { return; @@ -982,9 +984,18 @@ class Validator { && (attrs.getURI(i) == null || attrs.getURI(i).length() == 0 || attrs .getURI(i).equals(n.getURI()))) { - if (tldAttrs[j].canBeRequestTime() - || tldAttrs[j].isDeferredMethod() // JSP 2.1 - || tldAttrs[j].isDeferredValue()) { // JSP 2.1 + boolean el = true; + boolean deferredValue = false; + if (!tagInfo.getTagLibrary().getRequiredVersion().equals("2.0") + && attrs.getValue(i).indexOf("#{") != -1) { + el = false; + if (!pageInfo.isELIgnored() && !pageInfo.isDeferredSyntaxAllowedAsLiteral()) { + deferredValue = true; + } + } + if ((el && tldAttrs[j].canBeRequestTime()) + || (deferredValue && tldAttrs[j].isDeferredMethod()) // JSP 2.1 + || (deferredValue && tldAttrs[j].isDeferredValue())) { // JSP 2.1 Class expectedType = String.class; try { String typeStr = tldAttrs[j].getTypeName(); -- 2.11.0