In the TextRecorder.java, I see the following: public void characters(char ary[], int start, int length) throws SAXException { String value = new String(ary, start, length).trim(); if (value.length() > 0) { buffer.append(value); } else { buffer.append(' '); } }
I am wondering what the logic behind having the trim() in there is. Several times I have noticed Cocoon "eating" spaces out of the stream as evidenced in this log: INFO 2003-03-28 16:05:14.728 [sitemap.transformer.log ] (): [startElement] uri=http://xml.juniper.net/cocoon/work-schedule/1.0,local=start,raw=sched:start DEBUG 2003-03-28 16:05:14.729 [sitemap.transformer.sche] (): BEGIN startTextRecording DEBUG 2003-03-28 16:05:14.730 [sitemap.transformer.sche] (): END startTextRecording INFO 2003-03-28 16:05:14.731 [sitemap.transformer.log ] (): [characters] 03/28/2003 INFO 2003-03-28 16:05:14.733 [sitemap.transformer.log ] (): [characters] 04:05 PM INFO 2003-03-28 16:05:14.734 [sitemap.transformer.log ] (): [endElement] uri=http://xml.juniper.net/cocoon/work-schedule/1.0,local=start,qname=sched:start DEBUG 2003-03-28 16:05:14.735 [sitemap.transformer.sche] (): BEGIN endTextRecording DEBUG 2003-03-28 16:05:14.736 [sitemap.transformer.sche] (): END endTextRecording text=03/28/200304:05 PM INFO 2003-03-28 16:05:14.737 [sitemap.transformer.log ] (): [endElement] uri=http://xml.juniper.net/cocoon/work-schedule/1.0,local=every,qname=sched:every ERROR 2003-03-28 16:05:14.739 [sitemap.transformer.sche] (): URLWorkScheduleTransformer: invalid time: 03/28/200304:05 PM <sched:start>03/28/2003 04:05 PM</sched:start> is what is supposed to be being passed to the next transformer, but instead, it is showing up in two different [characters] events, and because of the trim(), it ends up being put back together as "03/28/200304:05 PM" which is invalid. I was just wondering why the trim() is in there, or if what I am seeing is expected behavior. thanks, rob