That looks like the right one to me.   The code you provided in the test
case was re-produced / fixed.  You did mention something about
"object[linkProperty]" not working before you provided a code example but
I'm assuming the code example was what was intended to be fixed....

Does the same test case not work for you?

On 7/2/07, Kalle Korhonen <[EMAIL PROTECTED]> wrote:

Hey Jesse - saw you had marked
http://jira.opensymphony.com/browse/OGNL-97as resolved so I assumed
the fix might be in the latest snapshot
ognl-2.7.1-20070630.205921-4 posted later but there were no changes as far
as I could notice. Certainly don't want to sound impatient as you are
doing
superb job in fixing these, but how do I know in which snapshot the fix
might be?

Kalle


On 6/26/07, Kalle Korhonen <[EMAIL PROTECTED]> wrote:
>
> Thanks. I wasn't 100% how legitimate, but filed as
> http://jira.opensymphony.com/browse/OGNL-97
>
> Kalle
>
> On 6/26/07, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
> >
> > No time to look at this right now,  but if you file a jira report
here:
> >
> > http://jira.opensymphony.com/browse/OGNL
> >
> > it can be looked in to for the next 2.7.1 release.
> >
> > The forums are here:
> >
> > http://forums.opensymphony.com/category.jspa?categoryID=10
> >
> > (though I'm thinking of moving them to google groups as well)
> >
> > On 6/26/07, Kalle Korhonen <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Jesse et al,
> > >
> > > while trying to migrate to Tap 4.1.2 we started getting lots of
> > > OgnlExceptions with message "source is null" from
> > OgnlRuntime.getProperty.
> > > The workaround was to add #this to a lot of places where we used
more
> > > complex OGNL expressions. I realize this is probably much more to do
> > with
> > > enhanced Ognl than Tapestry, so I would have taken the discussion to
> > ognl
> > > list, but subscribing to ognl-interest failed with
lists.ognl.orgdomain
> > > not
> > > found. Anyway, an example of failing expression is:
> > > ognl:object[linkProperty]
> > >
> > > that now only works with:
> > > ognl:object[#this.linkProperty]
> > >
> > > Without knowing anything about how compiled OGNL works, just
following
> > the
> > > ExpressionEvaluatorImpl.java source I tried to make a test case that
> > > fails:
> > >     public String getKey() {
> > >         return "key";
> > >     }
> > >
> > >     public void testEnhancedOgnl() throws Exception {
> > >         map = new HashMap();
> > >         map.put("key", "value");
> > >         ClassResolver ognlResolver = new OgnlClassResolver();
> > >         OgnlContext context =
> > (OgnlContext)Ognl.createDefaultContext(this,
> > > ognlResolver);
> > >         Node expression = Ognl.compileExpression(context, map,
"key");
> > >         assertEquals(map.get("key"), Ognl.getValue(
> > expression.getAccessor
> > > (),
> > > context, map)) ;
> > >
> > >         context = (OgnlContext)Ognl.createDefaultContext(this,
> > > ognlResolver);
> > >         expression = Ognl.compileExpression(context, this,
> > "#this[key]");
> > >         assertEquals("key", Ognl.getValue(expression.getAccessor(),
> > > context,
> > > this)) ;
> > >
> > >         context = (OgnlContext)Ognl.createDefaultContext(this,
> > > ognlResolver);
> > >         expression = Ognl.compileExpression (context, this,
> > "#this.key");
> > >         assertEquals("key", Ognl.getValue(expression.getAccessor(),
> > > context,
> > > this)) ;
> > >
> > >         // Fails
> > >         context = (OgnlContext)Ognl.createDefaultContext(this,
> > > ognlResolver);
> > >         expression = Ognl.compileExpression(context, this, "key");
> > >         assertEquals("key", Ognl.getValue(expression.getAccessor(),
> > > context,
> > > this)) ;
> > >     }
> > >
> > >
> > > I might be way off here (like I said, I don't know anything about it
> > :),
> > > but
> > > the last assert fails (on CannotCompileException) even though to me
> > the
> > > expression is equal to the two above it (the first one's just me
> > figuring
> > > out how it works).
> > >
> > > Since 2.7 is already released and I can see Jesse has even tagged
> > Tap4.1.2a
> > > few hours ago, I was mostly looking for a quick explanation, maybe a
> > > better
> > > workaround if possible. If this (pun intended) is the price to pay
for
> >
> > > faster OGNL, here's my check and huge thanks to Jesse for all the
hard
> > > work!
> > >
> > > Kalle
> > >
> >
> >
> >
> > --
> > Jesse Kuhnert
> > Tapestry/Dojo team member/developer
> >
> > Open source based consulting work centered around
> > dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
> >
>
>




--
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

Reply via email to