Hello,
sorry for being so unspecific. I use a SE component with Jetty, the client
is using the GWT edition. I tested with current versions of FF, Safari and
Chrome. If the issue occurs they all show one or two characters missing at
the end of a json string.
Maybe with this small test case it becomes reproducable:
public class Encoder extends org.restlet.engine.application.Encoder {
public Encoder(final Context context) {
super(context);
setMinimumSize(400);
}
@Override
public void afterHandle(final Request request, final Response response)
{
if (response.isEntityAvailable()) {
final Representation entity = response.getEntity();
try {
System.out.println("entity : " +
entity.getText());
} catch (final IOException e) {
}
System.out.println("entity size : " + entity.getSize());
}
super.afterHandle(request, response);
}
}
I test with a json rep that has a size of 317. The JsonRepresentation is
created from a String that is built from an LDAP response or is taken out of
a self-implemented cache directly.
On the console I see
entity :
{"response":{"status":0,"startrow":0,"totalRows":1,"endrow":1,"data":[{"id":
... }]}}
entity size : 317
The string is a valid json.
In a SF client the web inspector reports:
Accept-Ranges:bytes
Cache-Control:max-age=3600
Content-Length:317
Content-Type:application/json; charset=UTF-8
Date:Tue, 15 Dec 2009 11:47:34 GMT
Expires:Tue, 15 Dec 2009 12:47:34 GMT
Server:Restlet-Framework/2.0snapshot
Vary:Accept-Charset, Accept-Encoding, Accept-Language, Accept
But the content ends with ] the final }} are missing. Hence, I receive
invalid data.
Firebug on FF 355 reports the same.
Changing the test code to setMinimalSize(300) I get the same correct console
output and the web inspector reports:
Accept-Ranges:bytes
Cache-Control:max-age=3600
Content-Encoding:gzip
Content-Type:application/json; charset=UTF-8
Date:Tue, 15 Dec 2009 11:53:01 GMT
Expires:Tue, 15 Dec 2009 12:53:01 GMT
Server:Restlet-Framework/2.0snapshot
Transfer-Encoding:Identity
Vary:Accept-Charset, Accept-Encoding, Accept-Language, Accept
The content is correct. It seems that piping a json rep through the encoder
without encoding may corrupt it.
Best regards,
Guido Schmidt
--
View this message in context:
http://n2.nabble.com/2-0snapshot-Encoder-setMinimumSize-broken-tp4162958p4169542.html
Sent from the Restlet Discuss mailing list archive at Nabble.com.
------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2430513