I have written an application that uses Smack to connect to a Wildfire server (version 3.0.1). When there are no firewalls involved, everything works fine. If I put the client machine behind a NAT firewall, it cannot connect to the Wildfire machine (which is not behind a firewall). From the client, I can ping the server and run the Wildfire web admin console, so outgoing connections are OK. Both machines are running WinXP and Java 1.6. When I run my client app, I get the following exceptions when it calls XMPPConnection.connect():
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.skip(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:11 87)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:343)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:77)
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:275)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:39)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:91)
I tried running Spark 2.0.4 from the client machine to see if it could connect to the server, and it worked - I was able to log in as an existing user and send/receive chat messages to another client. However, when I tried to create a new user from Spark, it hung and the following exception showed up in error.log, which looks similar to the above errors:
java.net.SocketException: Socket closed
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
at sun.nio.cs.StreamEncoder.flush(Unknown Source)
at java.io.OutputStreamWriter.flush(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at org.jivesoftware.smack.util.ObservableWriter.flush(ObservableWriter.java:48)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:275)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:39)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:91)
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.jivesoftware.smack.XMPPConnection.proceedTLSReceived(XMPPConnection.java:11 87)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:343)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:45)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:77)
Exception in thread “Thread-2” java.lang.NullPointerException
at org.jivesoftware.AccountCreationWizard$3.construct(AccountCreationWizard.java:1 87)
at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:132)
at java.lang.Thread.run(Unknown Source)
Does anyone know what could be causing this?
Message was edited by: svattom