You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by arjan tijms <ar...@mbuyu.nl> on 2006/12/28 12:23:05 UTC

EL in dynamic attribute causes NPE in Tomcat 6

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