Hi,

I don't know how to do that, and I don't know what to add except for the
information which I already have posted. 

This worked as a workaround:

        public void exceptionCaught(final IoSession session, Throwable
e) throws Exception {
                String logString = "Caught exception on session: " +
session + " ";
                if (session instanceof BaseSession) {
                        logString += " remote: " +
((BaseSession)session).getRemoteAddress() + " ";
                }
                LOGGER.warn("exceptionCaught", logString +
e.getMessage());
                //XXX: Workaround for bug(?) in MINA 0.8.2.
                //session closed can't be invoked by calling thread.
Could be 
                //changed so that it uses a thread pool
                new Thread() {
                        public void run() {
                                //This call will block calling thread so
no one can do 
                                //notify if we don't spawn a new thread
                                session.close(true); 
                        }
                }.start();
        }

 

> -----Original Message-----
> From: Trustin Lee [mailto:[EMAIL PROTECTED] 
> Sent: 22 August 2006 06:56
> To: [email protected]
> Subject: Re: Problem during upgrade from 0.7.3 to 0.8.2
> 
> Could you please open a JIRA issue which attaches your full 
> thread dump?
> 
> Thanks in advance,
> Trustin
> 
> On 8/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > I have some problems during upgrade from 0.7.3 to 0.8.2. I 
> think I can
> > write a work around for the problem, but I'm not sure how things are
> > supposed to be.
> >
> > The scenario is that a client connection which implements 
> IoHandler has
> > a connection towards the server. The session on the 
> connection should be
> > removed if the connection is terminated, and I should also inform my
> > upper layers about the disconnect.
> >
> > This is how the flow was in 0.7.3 when a disconnect was 
> detected (Remote
> > end is abruptly disconnecting):
> >
> > exceptionCaught -> session.close(true) -> sessionClosed
> >
> > That is I call session.close(true) from the method 
> exceptionCaught, and
> > that leads to a callback to sessionClosed. I do some cleanup in
> > sessionClosed and informs my upper layers about the disconnect.
> >
> > This happens in 0.8.2:
> >
> > exceptionCaught -> session.close(true) -> blocked in wait.
> >
> > That is, the thread hangs / is blocked in wait, and never 
> gets out of
> > it.
> >
> > The problem does not occur if session.close(true) is called 
> on client
> > side during normal program flow.
> >
> > Is this how it's supposed to work?
> >
> > Thanks for your help
> > Kaj
> >
> >
> >
> >
> 
> 
> -- 
> what we call human nature is actually human habit
> --
> http://gleamynode.net/
> --
> PGP key fingerprints:
> * E167 E6AF E73A CBCE EE41  4A29 544D DE48 FE95 4E7E
> * B693 628E 6047 4F8F CFA4  455E 1C62 A7DC 0255 ECA6
> 

Reply via email to