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

setKeepAlive/setTcpNoDelay and exceptions in Windows Vista

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Abandoned
    • 1.0.3, 1.1.0, 2.0.0-M1
    • 2.0.14
    • Core
    • None
    • 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

            Unassigned Unassigned
            bago Stefano Bagnara
            Votes:
            5 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: