On 02/26/2013 04:36 PM, Francesco Chicchiriccò wrote:
>
>>> as you have already found, the problem is the "cocoon" entry in the
>>> sitemap's ObjectModel, always passed among parameters.
>>>
>>> I have been able to actually print the content of the "cocoon" entry
>>> via common-collection's MapUtils:
>>>
>>> if (entry.getValue() instanceof Map) {
>>> MapUtils.verbosePrint(System.out, null,
>>> parameters);
>>> } else {
>>> System.out.println(entry.getValue());
>>> }
>>>
>>> I am about to commit a fix for the issue in STRenderer you've reported
>>> above based on the usage of MapUtils#verbosePrint()
>> Nice you are a "monstruo".
>
> Hem, guess you mean "mostro" (a.k.a. monster) - I'll take as a
> compliment ;-)
Definitely here in the south of spain we use it as compliment for a
person/friend which is usually accomplishing BIG things.
>
> Anyway as per r1450217 the StackOverflowError is removed from STRenderer.
>
Thank you very much, so awesome.
I had some problems to find the "important" change though between the
checkstyle/formating changes. It would be great if you could separate
those in the future. Anyway as I understand the most important change is:
Modified:
cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/STRenderer.java
URL:
http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/STRenderer.java?rev=1450217&r1=1450216&r2=1450217&view=diff
==============================================================================
---
cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/STRenderer.java
(original)
+++
cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/STRenderer.java
Tue Feb 26 15:31:18 2013
@@ -17,7 +17,10 @@
package org.apache.cocoon.stringtemplate;
import java.io.IOException;
+import java.io.PrintStream;
import java.util.Map;
+import org.apache.commons.collections.MapUtils;
+import org.apache.commons.io.output.ByteArrayOutputStream;
import org.apache.commons.lang3.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -58,8 +61,18 @@ public final class STRenderer {
?
StringEscapeUtils.escapeXml(entry.getValue().toString())
: entry.getValue());
- LOG.debug("Passing pipeline parameter as attribute: key={},
value={}",
- entry.getKey(), entry.getValue());
+ if (LOG.isDebugEnabled()) {
+ final String value;
+ if (entry.getValue() instanceof Map) {
+ final ByteArrayOutputStream baos = new
ByteArrayOutputStream();
+ MapUtils.verbosePrint(new PrintStream(baos), null,
parameters);
+ baos.flush();
+ value = baos.toString();
+ } else {
+ value = entry.getValue().toString();
+ }
+ LOG.debug("Passing parameter as ST attribute: key={},
value={}", entry.getKey(), value);
+ }
}
}
>> Let us see whether that gets rid of the redundant data as well.
>
> I've been exploring a bit the various call and I think that this
> duplication might be generated when intra-pipeline calls (e.g.
> "servlet:/") are issued.
>
Yeah that definitely makes sense since some props where the same but
other not e.g.
source=file:/home/thorsten/src/codebusters/CLIENT/c3-extractor/src/main/resources/COB-INF/resources/views/admin.xhtml,
only appears once (which is the view called by the controller via
servlet:/ ...)
Thanks again Francesco and as well for your latest bugfixing run. :)
salu2
--
Thorsten Scherler <scherler.at.gmail.com>
codeBusters S.L. - web based systems
<consulting, training and solutions>
http://www.codebusters.es/