Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-379

setKeepAlive/setTcpNoDelay and exceptions in Windows Vista

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Abandoned
    • Affects Version/s: 1.0.3, 1.1.0, 2.0.0-M1
    • Fix Version/s: 2.0.14
    • Component/s: Core
    • Labels:
      None
    • Environment:
      Windows Vista Home Premium Italian
      Java SE 1.5.0_11, Java SE 1.6 Update 1, Java SE 1.4.2_12

      Description

      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.

        Attachments

        1. MultiConnectTest.java
          3 kB
          Rob Eden

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              bago Stefano Bagnara
            • Votes:
              5 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: