On 03/04/2010 03:01 PM, Thomas Mortagne wrote: > On Thu, Mar 4, 2010 at 13:56, Sergiu Dumitriu<[email protected]> wrote: >> On 03/04/2010 10:54 AM, Thomas Mortagne wrote: >>> On Wed, Mar 3, 2010 at 13:48, sdumitriu >>> <[email protected]> wrote: >>>> Author: sdumitriu >>>> Date: 2010-03-03 13:48:22 +0100 (Wed, 03 Mar 2010) >>>> New Revision: 27429 >>>> >>>> Modified: >>>> >>>> platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/Utils.java >>>> Log: >>>> XWIKI-4955: Page with empty content leads to "This template does not >>>> exist" message when viewed in plain mode >>>> Revert the trim() removal, which makes all the validation tests fail >>> >>> Then the wrong template should be fixed instead of putting a hack... >> >> It is not a hack, and there is not one wrong template. All the templates > > There is 16 wrong templates plus macro template itself is wrong and > for most of them it's just one line that needs ##. > >> generate whitespaces. I still believe that there is absolutely no reason > > A template don't have to generate white spaces and the issue are not > all templates that generated whites spaces, we just need to fix > templates that generate white space before the actual xhtml content > (i.e. before "<?xml..." in htmlheader.vm), > >> not to use the trim(), since nobody cares if the whitespace reaches the > > The problem is that you only think about full xhtml content, in that > case yes we don't care about triming that content but that's not our > only use case. You could write templates that return some content you > want to get exactly like it was. An example: you need to write a > service in a document to return the exact content of an object or the > content of the document, with this you will be forced to inject > directly your content in the response object and use > $context.setFinished(true) which is a pain.
Sending plain content is not the only option. You can (and should) put it in a wrapper, either XML or JSON. > It's a hack because at Utils level we have no idea what is the > content, safest is to let user decide how he want to use the content > he produced, you can say you don't care as much as you want i still > don't see how we could decide that noone is allowed to take white > space as meaningful content... > > If the goal is to protect against UI templates badly written we should > limit this trim() only to xhtml or html MIME types. And RDF, and SOAP, and all the other XML types. And CSV. It's irrelevant for JSON. PDF/RTF/XAR/ZIP are unaffected, since they don't use the parseTemplate logic. The only one that is affected is text/plain. -- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

