You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Alexey Kuznetsov (JIRA)" <ji...@apache.org> on 2017/08/09 13:30:00 UTC

[jira] [Created] (IGNITE-6012) Improve GridJettyRestHandler.processRequest()

Alexey Kuznetsov created IGNITE-6012:
----------------------------------------

             Summary: Improve GridJettyRestHandler.processRequest()
                 Key: IGNITE-6012
                 URL: https://issues.apache.org/jira/browse/IGNITE-6012
             Project: Ignite
          Issue Type: Improvement
          Components: rest
    Affects Versions: 2.1
            Reporter: Alexey Kuznetsov
            Assignee: Alexey Kuznetsov
             Fix For: 2.2


In case of large result  
{code}
private void processRequest(String act, HttpServletRequest req, HttpServletResponse res) {
...
json = jsonMapper.writeValueAsString(cmdRes)
....
{code}

Will fail with OOME, beacuse jsonMapper.writeValueAsString(cmdRes) internally will create a StringBuilder and will try to allocate large amount of memory.

This could be easily fixed by writing object directly to response output stream via. 
{code}
jsonMapper.writeValue(out, cmdRes);
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)