tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arjan tijms <arjan.ti...@mbuyu.nl>
Subject EL in dynamic attribute causes NPE in Tomcat 6
Date Thu, 28 Dec 2006 11:23:05 GMT
Whenever I try to use any EL (either $ or # syntax) in a taglib tag's 
dynamic attribute in Tomcat 6.0.7, I get the following exception:

java.lang.NullPointerException
    at 
org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:2777)


    at 
org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:2988)


    at 
org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2169)


    at 
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1689) 

    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)
    at 
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1705) 

    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)

I traced into the source code of Tomcat 6.0.7 with a debugger and found 
out the exception is caused by the code at the mentioned line 2777 of 
Generator.java, which is trying to request a TagAttributeInfo from the 
current attribute, but for a dynamic attribute the JspAttribute.tai 
field is always null.

When I debug the evaluateAttribute method in question, I see that for 
Node.JspAttribute attr, the "dynamic" field (attr.dynamic) is correctly 
set to  true and attr.getLocalName() returns the correct name of the 
dynamic attribute. At line 2771 attr.isELInterpreterInput() returns 
true, since attr.el != null. When I inspect attr.el, I see the EL 
expresion is correctly parsed. Only, a few lines below that the code 
fails with the NPE upon accessing the TagAttributeInfo object tai (which 
is, as said always null for dynamic attributes).

-- 
It's a cult. If you've coded for any length of time, you've run across someone from this warped
brotherhood. Their creed: if you can write complicated code, you must be good.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message