Hi Thorsten,

Just one question.

I'm a making a few assumptions here but is Settings not a HashMap already? 
Can't you just do

    @Override
    public RestResponse doGet() throws Exception {
        return new URLResponse(VIEW, getProps());
    }

I don’t see the point in putting a hashmap in another hashmap just for the sake 
of it ;-)

Robby

-----Original Message-----
From: Thorsten Scherler [mailto:scher...@gmail.com] 
Sent: Friday, February 22, 2013 10:13 AM
To: dev@cocoon.apache.org
Subject: REST view and weird error

Hi all,

in one view of a REST service of mine I get:

SLF4J: Failed toString() invocation on an object of type [java.util.HashMap] 
java.lang.StackOverflowError
    at
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:639)
    at java.lang.StringBuilder.append(StringBuilder.java:224)
    at
org.apache.cocoon.configuration.MutableSettings.toString(MutableSettings.java:312)
    at java.lang.String.valueOf(String.java:2902)
...
    at java.lang.StringBuilder.append(StringBuilder.java:128)
    at java.util.AbstractMap.toString(AbstractMap.java:523)
    at java.lang.String.valueOf(String.java:2902)

where the last 3 lines will repeat a lot till the end.

I am doing:

    @Override
    public RestResponse doGet() throws Exception {
        HashMap<String, Object> data = new HashMap<String, Object>();
        data.put("properties", getProps());
        return new URLResponse(VIEW, data);
    }

where getProps() basically is a helper for getting this.settings.getProperties.

As soon I do return new URLResponse(VIEW) the error is gone.

I have the standard logging activated (via rcl-config), using jetty:run and no 
override for es.codebusters.droids.rest.DroidsInvoker in my logback.xml

<root>
        <level value="WARN"/>
        <appender-ref ref="CORE"/>
    </root>

Any ideas?

salu2

--
Thorsten Scherler <scherler.at.gmail.com> codeBusters S.L. - web based systems 
<consulting, training and solutions>

http://www.codebusters.es/



Reply via email to