The <x:out> action in 1.0.3 (and previous versions) throws an NPE if you give it an invalid "select" attribute value, e.g. <x:out select="foo" /> java.lang.NullPointerException at org.jaxen.dom.DocumentNavigator$1.getFirstNode(DocumentNavigator.java:175) at org.jaxen.dom.DocumentNavigator$NodeIterator.(DocumentNavigator.java:823) at org.jaxen.dom.DocumentNavigator$1.(DocumentNavigator.java:172) at org.jaxen.dom.DocumentNavigator.getChildAxisIterator(DocumentNavigator.java:172) at org.jaxen.expr.iter.IterableChildAxis.iterator(IterableChildAxis.java:82) at org.jaxen.expr.DefaultStep.axisIterator(DefaultStep.java:139) at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:188) at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:107) at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:716) at org.jaxen.BaseXPath.selectSingleNodeForContext(BaseXPath.java:739) at org.jaxen.BaseXPath.stringValueOf(BaseXPath.java:281) at org.apache.taglibs.standard.tag.common.xml.XPathUtil.valueOf(XPathUtil.java:239) at org.apache.taglibs.standard.tag.common.xml.ExprSupport.doStartTag(ExprSupport.java:102) at org.apache.taglibs.standard.tag.el.xml.ExprTag.doStartTag(ExprTag.java:103) [...]
This requires some clarification to the spec to clearly state the default context node associated with XPath expressions. The expert group has approved this clarification and this will be fixed in JSTL's upcoming maintenance release.
Fixed in 1.1.