[ 
https://issues.apache.org/jira/browse/CXF-7874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Wysocki updated CXF-7874:
--------------------------------
    Description: 
Closing of SSE connection by client is not detected and handled on the server 
part.
This results in server leaking resources when it is the clients responsibility 
for deciding on the lifetime of SSE connection.

My particular scenario is:
Status notifications for devices manged by the server are sent to the client 
(browser), this is a continues stream. That stream lives until browser 
tab/window is closed, which results in client closing the underlying SSE 
connection.
SseSinkImpl is not informed of connection being closed. 
At the same time the exception set in  
org.apache.cxf.jaxrs.sse.SseEventSinkImpl#dequeue ( 
{code}future.completeExceptionally(ex);{code} ) in case of channel being closed 
is not acted upon internally within SseSinkImpl.

  was:
Closing of SSE connection by client is not detected and handled on the server 
part.
This results in server leaking resources when it is the clients responsibility 
for deciding on the lifetime of SSE connection.

My particular scenario is:
Status notifications for devices manged by the server are sent to the client 
(browser), this is a continues stream. That stream lives until browser 
tab/window is closed, which results in client closing the underlying SSE 
connection.
SseSinkImpl is not informed of connection being closed. 
At the same time the exception set in  
org.apache.cxf.jaxrs.sse.SseEventSinkImpl#dequeue 
(`future.completeExceptionally(ex);`) in case of channel being closed is not 
acted upon internally within SseSinkImpl.


> JAX-RS SSE Leaking SSESink (s)
> ------------------------------
>
>                 Key: CXF-7874
>                 URL: https://issues.apache.org/jira/browse/CXF-7874
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.2.6
>         Environment: Observed on karaf (jetty).
> Reproduced on jetty by modifying cxf SSE tests.
>            Reporter: Lukasz Wysocki
>            Priority: Major
>         Attachments: cxf-7874.reproduce.patch
>
>
> Closing of SSE connection by client is not detected and handled on the server 
> part.
> This results in server leaking resources when it is the clients 
> responsibility for deciding on the lifetime of SSE connection.
> My particular scenario is:
> Status notifications for devices manged by the server are sent to the client 
> (browser), this is a continues stream. That stream lives until browser 
> tab/window is closed, which results in client closing the underlying SSE 
> connection.
> SseSinkImpl is not informed of connection being closed. 
> At the same time the exception set in  
> org.apache.cxf.jaxrs.sse.SseEventSinkImpl#dequeue ( 
> {code}future.completeExceptionally(ex);{code} ) in case of channel being 
> closed is not acted upon internally within SseSinkImpl.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to