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

Jörg Michelberger commented on DIRMINA-771:
-------------------------------------------

Thanks for your quick answer.
Ok, your right, thats what I want to have. A more robust implementation of 
toString().
But in any exceptional case toString() should return as much information as 
possible.
Minimum your disconnecting hint and the id string.
Local and remote address getter should get its own try catch block in toString.
Catching Exception is not enough. There is java.lang.Error in the stack traces, 
which is a Throwable.class as Exception.class is. Your proposed catch code 
doesn't fit to that what really is thrown and the thrown java.lang.Error 
bypasses your try-catch attempt.

> 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


Reply via email to