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