Re: [Webwork-devel] Webwork 1.0.3 / CVS taglib totally broken?
Brought to you by:
baldree,
rickardoberg
From: Matt B. <ma...@sm...> - 2002-05-28 00:59:11
|
Give me a few days to look at this. I'm not oppose to it. I just need time to test it all. -Matt ----- Original Message ----- From: "Mike Cannon-Brookes" <mi...@at...> To: <web...@li...> Sent: Monday, May 27, 2002 7:26 PM Subject: Re: [Webwork-devel] Webwork 1.0.3 / CVS taglib totally broken? > On 27/5/02 9:38 PM, "Matt Baldree" (ma...@sm...) penned the words: > > > I agree that reset logic should be moved to doEndTag() but this is different > > from null'ing attributes. Null'ing attributes should still be in release(). > > I don't want to make the blanket change at this time. I did fix Property and > > Action. I would prefer to make a couple of fixes and all containers should > > work. > > I don't understand. Every webwork tag (that I can see) assumes that > attributes are null at the start of doStartTag(). Moving everything into > reset() and calling from doEndTag() and release() fixes this problem for all > containers! > > Why would you not want to make this change? :) > > > I changed the escaping of outer quotes to true by default. The reason > > it was false was just a first guess. I guessed wrong :). I haven't tested > > these changes on Resin yet. I can't get to caucho but I will by early this > > week. > > Cool - I'll update my CVS and try again today - another day battling Resin. > ;) > > Cheers, > Mike > > > -Matt > > > > ----- Original Message ----- > > From: "Mike Cannon-Brookes" <mi...@at...> > > To: <ma...@sm...> > > Cc: <web...@li...> > > Sent: Monday, May 27, 2002 2:50 AM > > Subject: Re: [Webwork-devel] Webwork 1.0.3 / CVS taglib totally broken? > > > > > >> Ok - I've checked and from preliminary looks it seems like the > > ComponentTag > >> is fixed in Orion (haven't tested Resin yet - will do) > >> > >> PropertyTag: > >> I had to fix the PropertyTag again though. > >> > >> Simple fix: (can't check in myself but here's the details) > >> - remove return statement that's not at the end of the doEndTag method) > >> - call release() manually before return EVAL_PAGE; > >> (see attachment) > >> > >> Again - the problem here is that data is reset in the release() method > > which > >> is incorrect ;) > >> > >> I have a suggested fix for every tag - rename ALL the release() methods to > >> reset() and call them manually at the end of the doEndTag() methods (or > >> before every return EVAL_PAGE statement) as well. This keeps the 'reset' > >> logic compartmentalised but at the same time makes sure that it will be > >> called on ALL containers. > >> > >> I've done this in the attached file so you can see what I mean. > >> > >> TextUtil: > >> Also I changed the default value of "escapeOuterQuotes" to true. Why would > >> you ever want this to be false? (Having it false by default means for > >> example that any formfield with "text" as a value only gets text which is > > v. > >> dangerous) Can we change this in CVS? Why was escapeOuterQuotes ever > > needed? > >> > >> > >> I'll yell again if I find any more specific problems - but I can see that > >> the release() method does things in other tag (which I probably don't use) > >> which is bad. > >> > >> Cheers, > >> Mike > >> > >> PS More investigating (this time in Resin) since I wrote the above - there > >> are now a lot of NPEs due to the new ValueStack stuff. Line 96 of > >> ValueStack.java and line 403 of AbstractValueStack.java (both probably > >> related to null values being looked up and not checked for before calling > >> method on the value object) > >> > >> > >> Mike Cannon-Brookes > >> mi...@at... > >> > >> ATLASSIAN - Your J2EE Expert Partner > >> -------------------------------------------------------- > >>> Brilliant Software - http://www.atlassian.com/software > >>> Legendary Services - http://www.atlassian.com/support > >> > >> > >> On 24/5/02 1:03 AM, "ma...@sm..." (ma...@sm...) penned the > >> words: > >> > >>> Alright. Thanks for the reply. We'll get this worked > >>> out and commented accordingly. Whatever the outcome, > >>> I'll check it against Resin, WL, and Tomcat. I'll leave > >>> you and others to check it against Orion. As soon as I > >>> get a thumbs up from the community, I'll release a > >>> patch 1.0.4. > >>> > >>> -Matt > >>> > >>> On Fri, 24 May 2002, Mike Cannon-Brookes wrote > >>> > >>>> > >>>> Matt, > >>>> > >>>> Thanks mate - I'll check the CVS in the morning and > >>> report back. I found a > >>>> bunch of changes I needed to make today to get it > >>> working, so I'll see how > >>>> CVS works for me and start from there again tomorrow > >>> (with more mental > >>>> energy). > >>>> > >>>> Re: release() - this is NOT the preferred method at > >>> all ;) > >>>> > >>>> Again (yes, I've checked now with the spec and the > >>> author of JSP Tags book) > >>>> release() is called by the container to release > >>> resources associated with > >>>> the tag. It can be called at ANY time the container > >>> wishes (you have no > >>>> guarantee of when it is called). The only restriction > >>> is that it must be > >>>> called before the tag instance is garbage collected. > >>>> > >>>> So - what you have is lazy programmers (WL, Tomcat > >>> are the two glaring > >>>> examples) who just call release() after every tag > >>> invocation - which leads > >>>> to people's misplaced belief that it MUST be called > >>> everytime. This is not > >>>> so! :) Fast containers (like Resin and Orion) pool > >>> tag instances and reuse > >>>> them (maximising speed), and call release() as few > >>> times as possible > >>>> (sometimes never). I'm sure it's harder to code it > >>> this way, but the end > >>>> result is speed. > >>>> > >>>> Net result: > >>>> > >>>> NEVER do anything you want to happen in release()! > >>>> > >>>> This is true across all the JSP tags in WW and other > >>> projects. If you want > >>>> logic to occur, or variables to be reset for each tag > >>> invocation, reset them > >>>> at the end of the doEndTag() method (either before > >>> returning, or as a > >>>> finally block). > >>>> > >>>> I'll check CVS in the morning - good work on the > >>> quick fixes though! > >>>> > >>>> Cheers, > >>>> Mike > >>>> > >>>> On 23/5/02 10:20 PM, "ma...@sm..." > >>> (ma...@sm...) penned the > >>>> words: > >>>> > >>>>> For WebLogic, using release is the preferred > >>> method. I > >>>>> disagree with your blanket statement. I fixed the > >>>>> release order in the latest CVS and in the branch. > >>> I'm > >>>>> told that it is working correctly on Orion but I'm > >>>>> waiting for official confirmation. I would > >>> appreciate > >>>>> if you could check it with the latest CVS and let me > >>>>> know. > >>>>> > >>>>> On Thu, 23 May 2002, Mike Cannon-Brookes wrote > >>>>> > >>>>>> > >>>>>> Yes - release() is the bane of tag developers. > >>>>>> > >>>>>> The simple rule is basically - if you're using > >>>>> release, you're doing things > >>>>>> wrong! > >>>>>> > >>>>>> -mike > >>>>>> > >>>>>> On 23/5/02 4:28 PM, "Heng Sin Low" > >>>>> (low...@ya...) penned the words: > >>>>>> > >>>>>>> Ha, finally u got what I mean :) > >>>>>>> > >>>>>>> Yes, doEndTag should be the right place. I > >>> remember > >>>>>>> Matt have done a massive check in recently that > >>> move > >>>>>>> all this resetting stuff to the release() method. > >>>>>>> > >>>>>>> Regards, > >>>>>>> Low > >>>>>>> > >>>>>>>> I'm trying to what out what changes have occurred > >>>>>>> recently, but the taglib > >>>>>>> in CVS is currently broken and not backward > >>>>>>> compatible. > >>>>>>> > >>>>>>> > >>>>>>> __________________________________________________ > >>>>>>> Do You Yahoo!? > >>>>>>> LAUNCH - Your Yahoo! Music Experience > >>>>>>> http://launch.yahoo.com > >>>>>>> > >>>>>>> > >>>>> > >>> _______________________________________________________________ > >>>>>>> > >>>>>>> Don't miss the 2002 Sprint PCS Application > >>>>> Developer's Conference > >>>>>>> August 25-28 in Las Vegas -- > >>>>> http://devcon.sprintpcs.com/adp/index.cfm > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> Webwork-devel mailing list > >>>>>>> Web...@li... > >>>>>>> > >>>>> > >>> https://lists.sourceforge.net/lists/listinfo/webwork-devel > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>> _______________________________________________________________ > >>>>>> > >>>>>> Don't miss the 2002 Sprint PCS Application > >>>>> Developer's Conference > >>>>>> August 25-28 in Las Vegas -- > >>>>> http://devcon.sprintpcs.com/adp/index.cfm > >>>>>> > >>>>>> _______________________________________________ > >>>>>> Webwork-devel mailing list > >>>>>> Web...@li... > >>>>>> > >>>>> > >>> https://lists.sourceforge.net/lists/listinfo/webwork-devel > >>>>> > >>>>> > >>>>> > >>>>> > >>> _______________________________________________________________ > >>>>> > >>>>> Don't miss the 2002 Sprint PCS Application > >>> Developer's Conference > >>>>> August 25-28 in Las Vegas -- > >>> http://devcon.sprintpcs.com/adp/index.cfm > >>>>> > >>>>> _______________________________________________ > >>>>> Webwork-devel mailing list > >>>>> Web...@li... > >>>>> > >>> https://lists.sourceforge.net/lists/listinfo/webwork-devel > >>> > >>> > >>> > >>> _______________________________________________________________ > >>> > >>> Don't miss the 2002 Sprint PCS Application Developer's Conference > >>> August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > >>> > >>> _______________________________________________ > >>> Webwork-devel mailing list > >>> Web...@li... > >>> https://lists.sourceforge.net/lists/listinfo/webwork-devel > >> > >> > > > > > > > > _______________________________________________________________ > > > > Don't miss the 2002 Sprint PCS Application Developer's Conference > > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > > > > _______________________________________________ > > Webwork-devel mailing list > > Web...@li... > > https://lists.sourceforge.net/lists/listinfo/webwork-devel > > > _______________________________________________________________ > > Don't miss the 2002 Sprint PCS Application Developer's Conference > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > > _______________________________________________ > Webwork-devel mailing list > Web...@li... > https://lists.sourceforge.net/lists/listinfo/webwork-devel > |