Opensuse 12.1 64-bit / Openfire 3.7.1 -> java exception "Protocol not available"

Installed and I get into the admin console fine. I created a user, just like I had done long time ago with an older version of Openfire in Opensuse 11.4.

When I try to connect with a client, such as Exodus–which, again, worked fine before, it doesn’t connect and in the Warn log I see the following, (which may be related to 12.1 using OpenJDK (which the admin console seems to detect fine), so I’m asking for a workaround):

org.apache.mina.common.RuntimeIOException: java.net.SocketException: Protocol not available

at org.apache.mina.transport.socket.nio.SocketSessionImpl$SessionConfigImpl.getSen dBufferSize(SocketSessionImpl.java:335)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcesso r.java:390)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcesso r.java:332)

at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProce ssor.java:45)

at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:488)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

at java.lang.Thread.run(Thread.java:679)

Caused by: java.net.SocketException: Protocol not available

at sun.nio.ch.Net.getIntOption0(Native Method)

at sun.nio.ch.Net.getIntOption(Net.java:181)

at sun.nio.ch.SocketChannelImpl$1.getInt(SocketChannelImpl.java:419)

at sun.nio.ch.SocketOptsImpl.getInt(SocketOptsImpl.java:60)

at sun.nio.ch.SocketOptsImpl.sendBufferSize(SocketOptsImpl.java:156)

at sun.nio.ch.SocketOptsImpl$IP$TCP.sendBufferSize(SocketOptsImpl.java:286)

at sun.nio.ch.OptionAdaptor.getSendBufferSize(OptionAdaptor.java:129)

at sun.nio.ch.SocketAdaptor.getSendBufferSize(SocketAdaptor.java:328)

at org.apache.mina.transport.socket.nio.SocketSessionImpl$SessionConfigImpl.getSen dBufferSize(SocketSessionImpl.java:333)

… 8 more

I’ve also posted on the Opensuse forums but no one’s helping me there…

Does it work if you use Sun/Oracle JRE instead? Never tried to run Openfire with OpenJDK before, so can’t say for sure it works properly or not.

Running Openfire on Oracle 1.6u30 64bit, so might want to start there.

Opensuse no longer supports Sun Java and it’s not in the repositories, so I would only be able to do a manual installation. Not that I mind doing that, but it becomes a problem keeping Java updated when it’s not installed from a repository… I’m also a bit concerned about breaking other applications when I uninstall OpenJDK.

Much more important: “OpenJDK will become the official Java SE 7 reference implementation.” https://blogs.oracle.com/henrik/entry/moving_to_openjdk_as_the

You can have both Oracle Java and OpenJDK installed at the same time - You just point Openfire at the appropriate JAVA_HOME in the startup scripts. There are RPMs available from Oracle for JRE 1.6, so you can integrate those with your existing package management pretty easily.

Openfire doesn’t seem to work 100% right with Oracle JRE 1.7 anyway, so I’m not sure if it matters right now about OpenJDK being the reference implementation.