[
https://issues.apache.org/jira/browse/DIRMINA-771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12993391#comment-12993391
]
Emmanuel Lecharny commented on DIRMINA-771:
-------------------------------------------
Thanks.
In all those StackTrace, we can see that the exception is generated because the
socket has been closed. Those exception are expected.
What I'm saying is that these exceptions are caught in the toString() method,
and not propagated :
try {
SocketAddress remote = getRemoteAddress();
SocketAddress local = getLocalAddress();
...
} catch (Exception e) {
return "Session is disconnecting ...";
}
So what exactly is the problem?
> Calling NioSocketSession.toString() causes java.lang.Error
> ----------------------------------------------------------
>
> Key: DIRMINA-771
> URL: https://issues.apache.org/jira/browse/DIRMINA-771
> Project: MINA
> Issue Type: Bug
> Affects Versions: 2.0.0-RC1
> Environment: WinXP JDK 1.6.1_18
> Reporter: Jörg Michelberger
> Priority: Critical
> Fix For: 2.0.2
>
>
> Hi there,
> using MINA 2.0.0 RC1 and have a log statement in my
> IOHandler.exceptionCaught() method plugged on top of a NioSocketSession.
> The log statement calls toString() on the IoSession passed in. In some cases
> I get the appended Exception.
> Thats not good.
> Regards Jörg
> 2010-03-03 09:51:46,818 WARN [NioProcessor-2]
> filterchain.DefaultIoFilterChain::callNextExceptionCaught()
> (DefaultIoFilterChain.java:483) - Unexpected exception from exceptionCaught
> handler. java.lang.Error: java.net.SocketException: Socket operation on
> nonsocket: getsockname
> at sun.nio.ch.Net.localAddress(Net.java:125)
> at sun.nio.ch.SocketChannelImpl.localAddress(SocketChannelImpl.java:430)
> at sun.nio.ch.SocketAdaptor.getLocalAddress(SocketAdaptor.java:147)
> at java.net.Socket.getLocalSocketAddress(Socket.java:703)
> at
> org.apache.mina.transport.socket.nio.NioSocketSession.getLocalAddress(NioSocketSession.java:158)
> at
> org.apache.mina.transport.socket.nio.NioSocketSession.getLocalAddress(NioSocketSession.java:47)
> at
> org.apache.mina.core.session.AbstractIoSession.toString(AbstractIoSession.java:1139)
> at
> com.ndsatcom.cecsdatamodel.cecsclient.newmulti.mina.MinaCecsIoHandler.exceptionCaught(MinaCecsIoHandler.java:33)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.exceptionCaught(DefaultIoFilterChain.java:694)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextExceptionCaught(DefaultIoFilterChain.java:480)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1100(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.exceptionCaught(DefaultIoFilterChain.java:788)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.exceptionCaught(IoFilterAdapter.java:111)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextExceptionCaught(DefaultIoFilterChain.java:480)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireExceptionCaught(DefaultIoFilterChain.java:468)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:397)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:778)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.sessionClosed(IoFilterAdapter.java:95)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:395)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:778)
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.sessionClosed(ProtocolCodecFilter.java:345)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:395)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:778)
> at
> org.apache.mina.core.filterchain.IoFilterAdapter.sessionClosed(IoFilterAdapter.java:95)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:395)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:388)
> at
> org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:210)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:535)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.removeSessions(AbstractPollingIoProcessor.java:497)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:61)
> at
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:974)
> at
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.net.SocketException: Socket operation on nonsocket:
> getsockname
> at sun.nio.ch.Net.localInetAddress(Native Method)
> at sun.nio.ch.Net.localAddress(Net.java:122) ... 37 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira