mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julien Vermillard (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (DIRMINA-889) MINA is lacking a set of exceptions to properly inform the user about what is going on
Date Tue, 18 Jun 2013 18:26:20 GMT

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

Julien Vermillard resolved DIRMINA-889.
---------------------------------------

    Resolution: Fixed
      Assignee: Julien Vermillard

I created a new set of Exception for MINA 3 whcih (I hope) are more explicit. and the default
IoHandler behaviour is to clsoe the connection if an exception is raised (fail-fast).

Feel free to reopen or send a mail if you have any comments
                
> MINA is lacking a set of exceptions to properly inform the user about what is going on
> --------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-889
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-889
>             Project: MINA
>          Issue Type: Improvement
>    Affects Versions: 2.0.4
>            Reporter: Alex C.
>            Assignee: Julien Vermillard
>             Fix For: 3.0.0-M1
>
>
> following scenario:
> A MINA powered server application is reading data from network, which is sent by any
client. While server is getting data, the connection get's broken. The read() from server
is interrupted and exceptionCaught() in IoHandler is called.
> Currently, my exceptionCaught() implementation looks like this:
> ----
>     @Override
>     public void exceptionCaught(IoSession session, Throwable throwable) throws Exception
{
>         logger.error("exception Caught. session={}. Exception:\n {}", new Object[]{Utils.longToHexString(session.getId()),
Utils.getStackTraceAsString(throwable)});
>         logger.debug("Closing the session now! session={}", Utils.longToHexString(session.getId()));
>         session.close(true);
>     }
> ----
> Problem is, that I don't know how to differentiate between "real and important exceptions",
which need to be logged more prominent and exception which might occur because of a client
has been disconnected correctly (broken network connection). if a connection get's broken,
I just get a generic IOException:
> ----
> Feb 21, 2012 5:10:20 PM de.root1.simon.Dispatcher exceptionCaught
> Schwerwiegend: exception Caught. session=0x00000002. Exception:
> java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zur├╝ckgesetzt
> at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
> at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
> at sun.nio.ch.IOUtil.read(IOUtil.java:191)
> at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
> at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:280)
> at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:44)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:695)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:668)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:657)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:68)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1141)
> at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> ----
> There should be some MINA exceptions handling (f.i. in this special scenario a kihd of
"UnexpectedlyClosedConnectionException" or so) this kind of problems, so that one can differentiate
the exceptions in "exceptionCaught" to know what really happened somewhere deep in MINA.
> Alternatively, there could be some error-codes. But would really prefer the solution
with the MINA exceptions ...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message