[ 
https://issues.apache.org/jira/browse/DIRMINA-755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800659#action_12800659
 ] 

Emmanuel Lecharny commented on DIRMINA-755:
-------------------------------------------

Alex, using a ClosFuture in conjonction with a listener is plain fine. In fact, 
this is the way to go.

The problem is that it's not possible to call connector.dispose() in the 
listener.

I'm currently checking the dispose() code to try to understand why it can't 
exit when there are no more active sessions on it. Sounds fishy to me at this 
point :/

> IoConnectot.dispose blocks forever
> ----------------------------------
>
>                 Key: DIRMINA-755
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-755
>             Project: MINA
>          Issue Type: Bug
>    Affects Versions: 2.0.0-RC1
>            Reporter: Emmanuel Lecharny
>             Fix For: 2.0.0-RC2
>
>         Attachments: MinaTest.zip
>
>
> (Extracted from the ML)
> I recently switched from 2.0.0-M6 to 2.0.0-RC1 and now discovered a
> problem with the IoConnector (I'm using the nio stuff)...
> I'll try to explain:
> In case of network connection shutdown I try to clean up as good as
> possible. I terminate tread pools, I close the session, and finally I try
> to dispose the IoConnector. 
> Here's a small code-snippet from my shutdown-code:
> ----
> CloseFuture closeFuture = ctsc.getSession().close(false);
>                     closeFuture.addListener(new
> IoFutureListener<IoFuture>() {
>                         public void operationComplete(IoFuture future) {
>                             ctsc.getFilterchainWorkerPool().shutdown();
>                             System.out.println("managed session count=
> "+ctsc.getConnector().getManagedSessionCount());
>                             ctsc.getConnector().dispose();
>                         }
>                     });
> ----
> "ctsc" is a simple container which contains the session (getSession) and
> the used connection (getConnector). First I try to close the session. Then,
> if this operation is completed, I try to shutdown a thread pool and finally
> dispose the connector. I read in the api doc, that this dispose call may
> block in case of still open session related to this connector.
> I tried to print out the number of still open sessions. On the console I
> get: "managed session count= 0"
> But the next call, the dispose() call, blocks and prevents the remaining
> threads from shutdown to get a clean application termination.
> If I switch from RC1 backt o M6, this works quite well. 
> Am I doing something wrong? Has the behavior changed? *little bit
> confused*

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to