mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Michelberger (JIRA) <j...@apache.org>
Subject [jira] Commented: (DIRMINA-771) Calling NioSocketSession.toString() causes java.lang.Error
Date Fri, 11 Feb 2011 09:38:57 GMT

    [ 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

       

Mime
View raw message