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

Trustin Lee commented on DIRMINA-379:
-------------------------------------

A message from Alan Bateman:

Trustin,

I had a mail yesterday from someone that asked me to comment on this issue:
 https://issues.apache.org/jira/browse/DIRMINA-379

I don't have a login on that site so I cannot reply but I see you are 
"Assignee" so I figured I would mail you.

A long standing issue with the socket adapters is that they aren't synchronized 
with the closing of the channel. In order words, if you invoke methods on the 
Socket obtained from the socket channel's socket method then it does not throw 
an exception to indicate that the socket is closed. The typical error will be 
an "Invalid argument" error but it can vary by platform. For Windows Vista it 
will typically be an error to say the handle isn't a socket. We have replaced 
this code as part of the implementation of NIO2 so it will not be an issue in 
the future. I can't say for sure that your issue 379 is the same thing but if 
you can duplicate the problem easily then it would be great if you test if the 
channel is open or closed by invoking the isOpen method. If its closed that 
will explain the issue. If the channel is open then it may be an issue we 
haven't seen before, in which case it would be great if you could forward it to 
bugs.sun.com.

Thanks,

Alan.

> setKeepAlive/setTcpNoDelay and exceptions in Windows Vista
> ----------------------------------------------------------
>
>                 Key: DIRMINA-379
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-379
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.3, 1.1.0, 2.0.0-M1
>         Environment: Windows Vista Home Premium Italian
> Java SE 1.5.0_11, Java SE 1.6 Update 1, Java SE 1.4.2_12
>            Reporter: Stefano Bagnara
>            Assignee: Trustin Lee
>
> When I ran my application under Vista I get this exception:
> Exception in thread "Thread-4" org.apache.mina.common.RuntimeIOException: 
> java.net.SocketException: Invalid argument: sun.nio.ch.Net.setIntOption
>       at 
> org.apache.mina.transport.socket.nio.SocketSessionImpl$SessionConfigImpl.setKeepAlive(SocketSessionImpl.java:252)
>       at 
> org.apache.mina.transport.socket.nio.SocketSessionImpl.<init>(SocketSessionImpl.java:94)
>       at 
> org.apache.mina.transport.socket.nio.SocketConnector.newSession(SocketConnector.java:350)
>       at 
> org.apache.mina.transport.socket.nio.SocketConnector.processSessions(SocketConnector.java:290)
>       at 
> org.apache.mina.transport.socket.nio.SocketConnector.access$900(SocketConnector.java:53)
>       at 
> org.apache.mina.transport.socket.nio.SocketConnector$Worker.run(SocketConnector.java:395)
>       at 
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: java.net.SocketException: Invalid argument: 
> sun.nio.ch.Net.setIntOption
>       at sun.nio.ch.Net.setIntOption0(Native Method)
>       at sun.nio.ch.Net.setIntOption(Net.java:152)
>       at sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:372)
>       at sun.nio.ch.SocketOptsImpl.setBoolean(SocketOptsImpl.java:38)
>       at sun.nio.ch.SocketOptsImpl.keepAlive(SocketOptsImpl.java:92)
>       at sun.nio.ch.OptionAdaptor.setKeepAlive(OptionAdaptor.java:139)
>       at sun.nio.ch.SocketAdaptor.setKeepAlive(SocketAdaptor.java:322)
>       at 
> org.apache.mina.transport.socket.nio.SocketSessionImpl$SessionConfigImpl.setKeepAlive(SocketSessionImpl.java:248)
>       ... 7 more
> I had to remove the following lines from the SocketSessionImpl constructor:
> this.config.setKeepAlive( cfg.isKeepAlive() );
> this.config.setTcpNoDelay( cfg.isTcpNoDelay() );
> and now it works.
> No matter if I change the configuration to let them return true or false, I 
> keep getting the exception if I don't remove the call at all.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to