[ 
https://issues.apache.org/jira/browse/SLING-11458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17754179#comment-17754179
 ] 

Andreas Schaefer commented on SLING-11458:
------------------------------------------

The Servlet Writer should not be closed inside the GraphQL Servlet as it was 
originally.

Because the GraphQL Servlet is used with a redirect and when it is closed 
prematurely the calling servlet is causing an exception (as mentioned in the 
ticket) that the writer was already closed. The fix could also be that there is 
not exception raised when the writer is closed again which it should if you 
asked me but that is not how it works right now.

> Regress - "Writer has already been closed" exception in GraphQLServlet
> ----------------------------------------------------------------------
>
>                 Key: SLING-11458
>                 URL: https://issues.apache.org/jira/browse/SLING-11458
>             Project: Sling
>          Issue Type: Bug
>          Components: GraphQL
>    Affects Versions: GraphQL Core 0.0.4
>            Reporter: Evgeny Tugarev
>            Assignee: Andreas Schaefer
>            Priority: Major
>
> The GraphQLServlet shouldn't call {{response.getWriter().flush()}} as the 
> {{JsonWriter}} used by the {{JsonSerializer}} implements {{Closeable}} and as 
> such [closes the 
> Writer|https://github.com/jdereg/json-io/blob/cf849f15460decf10a8a320390de11965bb5996b/src/main/java/com/cedarsoftware/util/io/JsonWriter.java#L2413].
> This causes a "Writer has already been closed" Exception when {{flush()}} is 
> called.
> This was fixed in commit d27f4bb7 but then this commit: 11c7e389 did undo the 
> fix as now the JsonWriter is closed when existing the try-catch block.
> I will undo it and prevent the premature closure as this is causing issues 
> like when the call to this servlet is made through a dispatcher.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to