You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Ben Anderson <be...@benanderson.us> on 2004/09/23 17:28:13 UTC

j:forEach bug

Hi,
I'm new to this list, and developer tasks in Apache projects.  I found a bug in
jelly's forEach tag, which is not conformant to jstl.  I've tried to fix it and
am close (I think), but it's not functioning exactly as I suspected it would. 
Maybe someone could offer some help.  I want to check the specific process for
this.  Should I enter a bug in bugzilla?  I can then post my patch there? 
Also, I've added a couple of files(tests).  Do I just append these?  Somethine
like:

$cvs diff  -u > site.patch
$echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" >> site.patch
$cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >> site.patch
$echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly" >>site.patch
$cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >> site.patch

also, like I said this patch isn't complete.  What I'm doing is creating an
anonymous inner class and setting that in the context.  The jelly script
recognizes the object, but doesn't proper evaluate it's methods:
<!-- this evaluates correctly -->
<j:out value="${myClass.class}"/>

<!-- the class contains a method getProp1()
     but it isn't evaluating correctly -->
<j:out value="${myClass.prop1}"/>

I'm thinking this may have something to do with it being an anonymous inner
class.  Eyeballing my patch would be much easier than me explaining here, so I
won't go into much detail.  I'm just curious as to the next step I should take.

Thanks,
Ben

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


Re: j:forEach bug

Posted by Dion Gillard <di...@gmail.com>.
On Thu, 23 Sep 2004 08:28:13 -0700, Ben Anderson
<be...@benanderson.us> wrote:
> Hi,
> I'm new to this list, and developer tasks in Apache projects.  I found a bug in
> jelly's forEach tag, which is not conformant to jstl.  I've tried to fix it and
> am close (I think), but it's not functioning exactly as I suspected it would.
> Maybe someone could offer some help.  I want to check the specific process for
> this.  Should I enter a bug in bugzilla?  I can then post my patch there?
> Also, I've added a couple of files(tests).  Do I just append these?  Somethine
> like:

You should post your patch in JIRA: 

http://nagoya.apache.org/jira/secure/BrowseProject.jspa?id=10012

> $cvs diff  -u > site.patch
> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" >> site.patch
> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >> site.patch
> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly" >>site.patch
> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >> site.patch

Why are you adding whole files to the patch? There should be a diff
option for new files.

> also, like I said this patch isn't complete.  What I'm doing is creating an

Failing test cases make this easier. If you can show how it doesn't
work, and how the fixes are removing the failures, you'll get a dialog
going.


> anonymous inner class and setting that in the context.  The jelly script
> recognizes the object, but doesn't proper evaluate it's methods:
> <!-- this evaluates correctly -->
> <j:out value="${myClass.class}"/>
> 
> <!-- the class contains a method getProp1()
>      but it isn't evaluating correctly -->
> <j:out value="${myClass.prop1}"/>
> 
> I'm thinking this may have something to do with it being an anonymous inner
> class.  Eyeballing my patch would be much easier than me explaining here, so I
> won't go into much detail.  I'm just curious as to the next step I should take.

Show us the failures....

-- 
http://www.multitask.com.au/people/dion/

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


Re: j:forEach bug

Posted by "matthew.hawthorne" <ma...@apache.org>.
Ben Anderson wrote:
> I'll assume this list doesn't pertain to jelly or is dead?  I checked out #maven
> and #jelly at codehaus's irc, but don't get any responses there.  Is there some
> other way to communicate with jelly developers?

You just sent the message 2 hours ago.  Developers here have varying 
amounts of availability from day to day, and also live around the world 
in different time zones.  I'd advise you to relax a bit and wait a few 
days for a response.  If by then you still don't receive a response, 
consider filing a bug report.

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


Re: j:forEach bug

Posted by Ben Anderson <be...@benanderson.us>.
I'll assume this list doesn't pertain to jelly or is dead?  I checked out #maven
and #jelly at codehaus's irc, but don't get any responses there.  Is there some
other way to communicate with jelly developers?
Thanks,
Ben

Quoting Ben Anderson <be...@benanderson.us>:

> Hi,
> I'm new to this list, and developer tasks in Apache projects.  I found a bug
> in
> jelly's forEach tag, which is not conformant to jstl.  I've tried to fix it
> and
> am close (I think), but it's not functioning exactly as I suspected it would.
> Maybe someone could offer some help.  I want to check the specific process
> for
> this.  Should I enter a bug in bugzilla?  I can then post my patch there?
> Also, I've added a couple of files(tests).  Do I just append these?
> Somethine
> like:
>
> $cvs diff  -u > site.patch
> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" >>
> site.patch
> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >> site.patch
> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly"
> >>site.patch
> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >>
> site.patch
>
> also, like I said this patch isn't complete.  What I'm doing is creating an
> anonymous inner class and setting that in the context.  The jelly script
> recognizes the object, but doesn't proper evaluate it's methods:
> <!-- this evaluates correctly -->
> <j:out value="${myClass.class}"/>
>
> <!-- the class contains a method getProp1()
>      but it isn't evaluating correctly -->
> <j:out value="${myClass.prop1}"/>
>
> I'm thinking this may have something to do with it being an anonymous inner
> class.  Eyeballing my patch would be much easier than me explaining here, so
> I
> won't go into much detail.  I'm just curious as to the next step I should
> take.
>
> Thanks,
> Ben
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>




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


[JELLY] Re: j:forEach bug

Posted by Ben Anderson <be...@benanderson.us>.
Ok, I posted the problem/patch in jira, JELLY-150.  It includes the test case to
prove it's not functioning correctly as well as my attempt to fix it.  The code
is commented so that hopefully someone can help me.

> If the functionality worked properly in XML but didn't exactly implement
> javax.servlet.jsp.jstl.core.LoopTagStatus, would that be good for you?

yeah, that's pretty much what I did.  I created an anonymous inner class like
this:
+                    if (varStatus != null) {
+                        context.setVariable(varStatus,
+                            new Object() {
+                              public Integer getBegin() {
+                                return new Integer(begin);
+                              }
+                              public int getCount() {
+                                return count;
...

However, the test script still fails.  It seems the methods aren't being called
correctly.  Do you know why this might be?  Because it's an anonymous inner
class?

-Ben

Quoting Hans Gilde <hg...@earthlink.net>:

>
> Well... this would definitely be a nice feature.
>
> FYI, Ben, this example/explanation is perfect. The original email about a
> bug and your patch would have been more concise and easily digested if it
> included the info in this last email.
>
> If the functionality worked properly in XML but didn't exactly implement
> javax.servlet.jsp.jstl.core.LoopTagStatus, would that be good for you?
>
> Hans
>
> -----Original Message-----
> From: Ben Anderson [mailto:benanderson@benanderson.us]
> Sent: Thursday, September 23, 2004 11:59 AM
> To: Jakarta Commons Developers List
> Subject: [JELLY] Re: j:forEach bug
>
> I'll post my patch to jira tomorrow - I left the code at work.  The JSTL
> compliance I'm referring to is the varStatus attribute, which according
> to the jstl spec should implement
> javax.servlet.jsp.jstl.core.LoopTagStatus.  Meanwhile the jelly
> attribute assigns a variable with type of Integer which is an index.  I
> would like to do something like this, which works nicely using the
> Standard 1.1 taglibs.
> <j:forEach var="element" items="${list}" varStatus="status">
>     <j:if test="${status.last}">
>         this is the last time through
>     </j:if>
> </j:forEach>
> I know there are other ways to do this, but is seems to me the jstl way
> is much nicer ;-)
> -Ben
>
> Paul Libbrecht wrote:
>
> > Ben,
> >
> > There has been several considerations on making j:forEach more jstl
> > compliant... you might to consider them first:
> >
> > http://nagoya.apache.org/jira/secure/IssueNavigator.jspa?
> > reset=true&mode=hide&summary=true&description=true&query=forEach
> >
> > Do note that Jelly uses Jira and not Bugzilla!
> >
> > To make your patch, I think there's an option of "cvs diff" that
> > allows  a unified diff...
> >
> > All in all, I haven't understood very well what is the goal of your
> > change!
> >
> > Personally, I'd more and more consider the need for forEach to be
> > JSTL  compliant as somewhat... annoying.
> >
> > paul
> >
> > Le 23 sept. 04, à 17:28, Ben Anderson a écrit :
> >
> >> I'm new to this list, and developer tasks in Apache projects.  I
> >> found  a bug in
> >> jelly's forEach tag, which is not conformant to jstl.  I've tried to
> >> fix it and
> >> am close (I think), but it's not functioning exactly as I suspected
> >> it  would.
> >> Maybe someone could offer some help.  I want to check the specific
> >> process for
> >> this.  Should I enter a bug in bugzilla?  I can then post my patch
> >> there?
> >> Also, I've added a couple of files(tests).  Do I just append these?
> >> Somethine
> >> like:
> >>
> >> $cvs diff  -u > site.patch
> >> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java"
> >> >>  site.patch
> >> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >>
> >> site.patch
> >> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly"
> >> >>site.patch
> >> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >>
> >> site.patch
> >>
> >> also, like I said this patch isn't complete.  What I'm doing is
> >> creating an
> >> anonymous inner class and setting that in the context.  The jelly
> >> script
> >> recognizes the object, but doesn't proper evaluate it's methods:
> >> <!-- this evaluates correctly -->
> >> <j:out value="${myClass.class}"/>
> >>
> >> <!-- the class contains a method getProp1()
> >>      but it isn't evaluating correctly -->
> >> <j:out value="${myClass.prop1}"/>
> >>
> >> I'm thinking this may have something to do with it being an
> >> anonymous  inner
> >> class.  Eyeballing my patch would be much easier than me explaining
> >> here, so I
> >> won't go into much detail.  I'm just curious as to the next step I
> >> should take.
> >>
> >> Thanks,
> >> Ben
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>




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


RE: [JELLY] Re: j:forEach bug

Posted by Hans Gilde <hg...@earthlink.net>.
Well... this would definitely be a nice feature.

FYI, Ben, this example/explanation is perfect. The original email about a
bug and your patch would have been more concise and easily digested if it
included the info in this last email.

If the functionality worked properly in XML but didn't exactly implement
javax.servlet.jsp.jstl.core.LoopTagStatus, would that be good for you?

Hans

-----Original Message-----
From: Ben Anderson [mailto:benanderson@benanderson.us] 
Sent: Thursday, September 23, 2004 11:59 AM
To: Jakarta Commons Developers List
Subject: [JELLY] Re: j:forEach bug

I'll post my patch to jira tomorrow - I left the code at work.  The JSTL 
compliance I'm referring to is the varStatus attribute, which according 
to the jstl spec should implement 
javax.servlet.jsp.jstl.core.LoopTagStatus.  Meanwhile the jelly 
attribute assigns a variable with type of Integer which is an index.  I 
would like to do something like this, which works nicely using the 
Standard 1.1 taglibs.
<j:forEach var="element" items="${list}" varStatus="status">
    <j:if test="${status.last}">
        this is the last time through
    </j:if>
</j:forEach>
I know there are other ways to do this, but is seems to me the jstl way 
is much nicer ;-)
-Ben

Paul Libbrecht wrote:

> Ben,
>
> There has been several considerations on making j:forEach more jstl  
> compliant... you might to consider them first:
>
> http://nagoya.apache.org/jira/secure/IssueNavigator.jspa? 
> reset=true&mode=hide&summary=true&description=true&query=forEach
>
> Do note that Jelly uses Jira and not Bugzilla!
>
> To make your patch, I think there's an option of "cvs diff" that 
> allows  a unified diff...
>
> All in all, I haven't understood very well what is the goal of your  
> change!
>
> Personally, I'd more and more consider the need for forEach to be 
> JSTL  compliant as somewhat... annoying.
>
> paul
>
> Le 23 sept. 04, à 17:28, Ben Anderson a écrit :
>
>> I'm new to this list, and developer tasks in Apache projects.  I 
>> found  a bug in
>> jelly's forEach tag, which is not conformant to jstl.  I've tried to  
>> fix it and
>> am close (I think), but it's not functioning exactly as I suspected 
>> it  would.
>> Maybe someone could offer some help.  I want to check the specific  
>> process for
>> this.  Should I enter a bug in bugzilla?  I can then post my patch  
>> there?
>> Also, I've added a couple of files(tests).  Do I just append these?   
>> Somethine
>> like:
>>
>> $cvs diff  -u > site.patch
>> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" 
>> >>  site.patch
>> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >>  
>> site.patch
>> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly"  
>> >>site.patch
>> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >>  
>> site.patch
>>
>> also, like I said this patch isn't complete.  What I'm doing is  
>> creating an
>> anonymous inner class and setting that in the context.  The jelly  
>> script
>> recognizes the object, but doesn't proper evaluate it's methods:
>> <!-- this evaluates correctly -->
>> <j:out value="${myClass.class}"/>
>>
>> <!-- the class contains a method getProp1()
>>      but it isn't evaluating correctly -->
>> <j:out value="${myClass.prop1}"/>
>>
>> I'm thinking this may have something to do with it being an 
>> anonymous  inner
>> class.  Eyeballing my patch would be much easier than me explaining  
>> here, so I
>> won't go into much detail.  I'm just curious as to the next step I  
>> should take.
>>
>> Thanks,
>> Ben
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>


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


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


[JELLY] Re: j:forEach bug

Posted by Ben Anderson <be...@benanderson.us>.
I'll post my patch to jira tomorrow - I left the code at work.  The JSTL 
compliance I'm referring to is the varStatus attribute, which according 
to the jstl spec should implement 
javax.servlet.jsp.jstl.core.LoopTagStatus.  Meanwhile the jelly 
attribute assigns a variable with type of Integer which is an index.  I 
would like to do something like this, which works nicely using the 
Standard 1.1 taglibs.
<j:forEach var="element" items="${list}" varStatus="status">
    <j:if test="${status.last}">
        this is the last time through
    </j:if>
</j:forEach>
I know there are other ways to do this, but is seems to me the jstl way 
is much nicer ;-)
-Ben

Paul Libbrecht wrote:

> Ben,
>
> There has been several considerations on making j:forEach more jstl  
> compliant... you might to consider them first:
>
> http://nagoya.apache.org/jira/secure/IssueNavigator.jspa? 
> reset=true&mode=hide&summary=true&description=true&query=forEach
>
> Do note that Jelly uses Jira and not Bugzilla!
>
> To make your patch, I think there's an option of "cvs diff" that 
> allows  a unified diff...
>
> All in all, I haven't understood very well what is the goal of your  
> change!
>
> Personally, I'd more and more consider the need for forEach to be 
> JSTL  compliant as somewhat... annoying.
>
> paul
>
> Le 23 sept. 04, à 17:28, Ben Anderson a écrit :
>
>> I'm new to this list, and developer tasks in Apache projects.  I 
>> found  a bug in
>> jelly's forEach tag, which is not conformant to jstl.  I've tried to  
>> fix it and
>> am close (I think), but it's not functioning exactly as I suspected 
>> it  would.
>> Maybe someone could offer some help.  I want to check the specific  
>> process for
>> this.  Should I enter a bug in bugzilla?  I can then post my patch  
>> there?
>> Also, I've added a couple of files(tests).  Do I just append these?   
>> Somethine
>> like:
>>
>> $cvs diff  -u > site.patch
>> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" 
>> >>  site.patch
>> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >>  
>> site.patch
>> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly"  
>> >>site.patch
>> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >>  
>> site.patch
>>
>> also, like I said this patch isn't complete.  What I'm doing is  
>> creating an
>> anonymous inner class and setting that in the context.  The jelly  
>> script
>> recognizes the object, but doesn't proper evaluate it's methods:
>> <!-- this evaluates correctly -->
>> <j:out value="${myClass.class}"/>
>>
>> <!-- the class contains a method getProp1()
>>      but it isn't evaluating correctly -->
>> <j:out value="${myClass.prop1}"/>
>>
>> I'm thinking this may have something to do with it being an 
>> anonymous  inner
>> class.  Eyeballing my patch would be much easier than me explaining  
>> here, so I
>> won't go into much detail.  I'm just curious as to the next step I  
>> should take.
>>
>> Thanks,
>> Ben
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>


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


Re: j:forEach bug

Posted by Paul Libbrecht <pa...@activemath.org>.
Ben,

There has been several considerations on making j:forEach more jstl  
compliant... you might to consider them first:

http://nagoya.apache.org/jira/secure/IssueNavigator.jspa? 
reset=true&mode=hide&summary=true&description=true&query=forEach

Do note that Jelly uses Jira and not Bugzilla!

To make your patch, I think there's an option of "cvs diff" that allows  
a unified diff...

All in all, I haven't understood very well what is the goal of your  
change!

Personally, I'd more and more consider the need for forEach to be JSTL  
compliant as somewhat... annoying.

paul

Le 23 sept. 04, à 17:28, Ben Anderson a écrit :
> I'm new to this list, and developer tasks in Apache projects.  I found  
> a bug in
> jelly's forEach tag, which is not conformant to jstl.  I've tried to  
> fix it and
> am close (I think), but it's not functioning exactly as I suspected it  
> would.
> Maybe someone could offer some help.  I want to check the specific  
> process for
> this.  Should I enter a bug in bugzilla?  I can then post my patch  
> there?
> Also, I've added a couple of files(tests).  Do I just append these?   
> Somethine
> like:
>
> $cvs diff  -u > site.patch
> $echo "src/test/org/apache/commons/jelly/core/TestForEachTag.java" >>  
> site.patch
> $cat src/test/org/apache/commons/jelly/core/TestForEachTag.java >>  
> site.patch
> $echo "src/test/org/apache/commons/jelly/core/testForEachTag.jelly"  
> >>site.patch
> $cat src/test/org/apache/commons/jelly/core/testForEachTag.jelly >>  
> site.patch
>
> also, like I said this patch isn't complete.  What I'm doing is  
> creating an
> anonymous inner class and setting that in the context.  The jelly  
> script
> recognizes the object, but doesn't proper evaluate it's methods:
> <!-- this evaluates correctly -->
> <j:out value="${myClass.class}"/>
>
> <!-- the class contains a method getProp1()
>      but it isn't evaluating correctly -->
> <j:out value="${myClass.prop1}"/>
>
> I'm thinking this may have something to do with it being an anonymous  
> inner
> class.  Eyeballing my patch would be much easier than me explaining  
> here, so I
> won't go into much detail.  I'm just curious as to the next step I  
> should take.
>
> Thanks,
> Ben
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>


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