You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Jörg Michelberger (JIRA)" <ji...@apache.org> on 2011/02/10 15:07:57 UTC
[jira] Reopened: (DIRMINA-771) Calling NioSocketSession.toString()
causes java.lang.Error
[ https://issues.apache.org/jira/browse/DIRMINA-771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jörg Michelberger reopened DIRMINA-771:
---------------------------------------
This issue is still in 2.0.2.
Calling NioSocketSession.toString() in all MINA callbacks can lead to Exceptions.
Found it still in 2.0.2 in IoFutureListener<CloseFuture>.operationComplete(final CloseFuture f) registered to closeFuture, IoSessionInitializer<ConnectFuture>.initializeSession() callback, IoFutureListener<ConnectFuture>.operationComplete(final ConnectFuture f) and IoHandlerAdapter extension in all callbacks. I have multiple client connections via a low bandwidth satellite link to multiple servers. Established connections are often closed by counterpart server, before initializeSession is completed/started, or during messages are sent or received. I implemented also a reconnection mode, which initiates a immediate NIOSocketConnector.connect after connection is broken. This works fine for a while, but NioSocketConnector thread stops performing connects on TCP/IP level on a while. Connects are then lost in MINA and the corresponding connect future listener is never called...Automatic stoped. Do you have any idea about this issue...
> 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