[ 
https://issues.apache.org/jira/browse/DIRMINA-200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emmanuel Lecharny closed DIRMINA-200.
-------------------------------------


> IBM iSeries throws unexpected SocketException
> ---------------------------------------------
>
>                 Key: DIRMINA-200
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-200
>             Project: MINA
>          Issue Type: Bug
>    Affects Versions: 0.9.3, 0.9.4
>         Environment: mina-0.9.3  JDK 1.4.2  IBM iSeries OS/400 V5R2
>            Reporter: Simon Temple
>            Assignee: Trustin Lee
>            Priority: Blocker
>             Fix For: 0.9.5
>
>         Attachments: mina-ex.patch
>
>
> Proposal of a change to nio SocketSessionImpl.
> I'd like the calls to:
>       getTrafficClass
>       setTrafficClass
>       setSendBufferSize
>       setReceiveBufferSize
> to not throw RuntimeIOException when a SocketException is caught.
> My reasoning is based on the Socket class javadoc:
> E.g.  setTrafficClass
> "As the underlying network implementation may ignore this value applications 
> should consider it a hint."
> and
> "Setting bits in the precedence field may result in a SocketException 
> indicating that the operation is not permitted."
> The other getter/setter method javadoc also refer to 'hints' and a 'if there 
> is an error obtaining' condition.
> Some operating systems (OS/400 in my case ;-) ), do not allow the 
> trafficClass value to be read or written.  I think this may also be the case 
> as reported here on Linux:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4709474
> By ignoring the SocketException thrown by these methods (perhaps issuing a 
> log4j WARN instead?  Or hooking up with an appropriate monitor?), socket 
> sessions can be established without error on an IBM iSeries.
> Example stack trace:
> 2006-04-03 17:26:26,343 WARN  
> [org.apache.mina.common.support.DefaultExceptionMonitor](SocketAcceptor-0) 
> Unexpected exception.
> org.apache.mina.common.RuntimeIOException: java.net.SocketException
>       at java.lang.Throwable.<init>(Throwable.java:240)
>       at java.lang.Exception.<init>(Exception.java:77)
>       at java.lang.RuntimeException.<init>(RuntimeException.java:77)
>       at 
> org.apache.mina.common.RuntimeIOException.<init>(RuntimeIOException.java:48)
>       at 
> org.apache.mina.transport.socket.nio.support.SocketSessionImpl$SocketSessionConfigImpl.setTrafficClass(SocketSessionImpl.java:342)
>       at 
> org.apache.mina.transport.socket.nio.support.SocketSessionImpl.<init>(SocketSessionImpl.java:71)
>       at 
> org.apache.mina.transport.socket.nio.support.SocketAcceptorDelegate$Worker.processSessions(SocketAcceptorDelegate.java:379)
>       at 
> org.apache.mina.transport.socket.nio.support.SocketAcceptorDelegate$Worker.run(SocketAcceptorDelegate.java:326)
> Caused by: java.net.SocketException
>       at java.lang.Throwable.<init>(Throwable.java:180)
>       at java.lang.Exception.<init>(Exception.java:29)
>       at java.io.IOException.<init>(IOException.java:28)
>       at java.net.SocketException.<init>(SocketException.java:35)
>       at sun.nio.ch.Net.setIntOption(Net.java:156)
>       at sun.nio.ch.SocketChannelImpl$1.setInt(SocketChannelImpl.java:398)
>       at sun.nio.ch.SocketOptsImpl.setInt(SocketOptsImpl.java:46)
>       at sun.nio.ch.SocketOptsImpl$IP.typeOfService(SocketOptsImpl.java:249)
>       at sun.nio.ch.OptionAdaptor.setTrafficClass(OptionAdaptor.java:158)
>       at sun.nio.ch.SocketAdaptor.setTrafficClass(SocketAdaptor.java:320)
>       ... 4 more
> I have attached a proposed patch and welcome any comments.
> SimonT

-- 
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