commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [jira] Commented: (JELLY-74) Scope inheritence is not being obeyed
Date Tue, 30 Sep 2003 16:39:16 GMT
The following comment has been added to this issue:

     Author: Scott Howlett
    Created: Tue, 30 Sep 2003 11:37 AM
Since this problem has been partially fixed, I have opened another issue that is specific
to the Jexl expression problem.
View the issue:

Here is an overview of the issue:
        Key: JELLY-74
    Summary: Scope inheritence is not being obeyed
       Type: Bug

     Status: Closed
   Priority: Major
 Resolution: FIXED

 Time Spent: Unknown
  Remaining: Unknown

    Project: jelly

   Reporter: Scott Howlett

    Created: Fri, 22 Aug 2003 9:35 AM
    Updated: Wed, 3 Sep 2003 8:38 PM

Given these scripts:


<?xml version="1.0"?>
<j:jelly xmlns:j="jelly:core">
    <j:set var="test" value="goofy"/>
    <j:import inherit="false" uri="bar.jelly"/>


<j:jelly xmlns:j="jelly:core">

When I execute foo.jelly, the expression in bar.jelly finds the value of test even though
inheritence is false.

This is because the JellyMap inside the JexlExpression gets variables like this:

    public Object get(Object key) {
        return context.findVariable( (String) key );

where findVariable will find the variable in any enclosing scope regardless of inheritence.

The fix ought to be to change it to use getVariable(). Unfortunately, JellyContext.getVariable()
itself doesn't obey scope inheritence:

    public Object getVariable(String name) {
        Object value = variables.get(name);

        if ( value == null && isInherit() ) {
            JellyContext parent = getParent();
            if (parent != null) {                
                value = parent.findVariable( name );

        return value;

The context obeys its own inheritence rule but ignores any inheritence rule set by its parent.
The fix for this would be to change parentfindVariable(...) to parent.getVariable(...)

This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:

If you want more information on JIRA, or have a bug to report see:

View raw message