File transfer does not work correctly, any idea?

Hello everybody,

I sometimes experience failure in the file transfer though port 7777 is opened in Openfire.

When I close and open several times Spark, it sometimes works.

Any idea ?

Are you sure it’'s using the file proxy (which listens on the port you mention).

In theory it should fall back to that, but most file transfers will happen client to client.

The most frequent issue seen with this is when Spark incorrectly identifies your primary NIC interface.

Could you attempt a file transfer, then post the log from Spark here and we should be able to work out what is going wrong.

May 24, 2007 3:03:47 PM org.jivesoftware.spark.util.log.Log error

SEVERE: There was an error during file transfer.

Error in execution:

– caused by: java.util.concurrent.ExecutionException:

– caused by: Could not establish socket with any provided host: not-acceptable(406) Could not establish socket with any provided host

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(Incom ingFileTransfer.java:199)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFi leTransfer.java:47)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTra nsfer.java:124)

at java.lang.Thread.run(Unknown Source)

Nested Exception:

java.util.concurrent.ExecutionException:

– caused by: Could not establish socket with any provided host: not-acceptable(406) Could not establish socket with any provided host

at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)

at java.util.concurrent.FutureTask.get(Unknown Source)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(Incom ingFileTransfer.java:193)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFi leTransfer.java:47)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTra nsfer.java:124)

at java.lang.Thread.run(Unknown Source)

Caused by:

– caused by: Could not establish socket with any provided host: not-acceptable(406) Could not establish socket with any provided host

at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator.createIncomingStre am(FaultTolerantNegotiator.java:113)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTr ansfer.java:186)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTr ansfer.java:185)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(Incom ingFileTransfer.java:190)

… 3 more

the above is when I try to transfer one file to another external user. Weird thing is I was just able to send a file around 3 meg to the same person. Got out of Spark then back in, tried the same transfer and got a timeout. Seems I can occasionally send smaller files (less than 5k) but larger files give me errors. I tried increasing the timeout.

Here is the error.log from the other machine…

java.net.ConnectException: Connection timed out: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.selectHost(Socks5 TransferNegotiator.java:196)

at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.negotiateIncoming Stream(Socks5TransferNegotiator.java:114)

at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:181)

at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:166)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

java.lang.InterruptedException

at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(Unkn own Source)

at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(Unknown Source)

at java.util.concurrent.ArrayBlockingQueue.put(Unknown Source)

at org.jivesoftware.smack.PacketWriter.sendPacket(PacketWriter.java:106)

at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:670)

at org.jivesoftware.smackx.filetransfer.Socks5TransferNegotiator.negotiateIncoming Stream(Socks5TransferNegotiator.java:130)

at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:181)

at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:166)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Just an update. For some reason I occasionally am able to send files to remote users using Spark and then other times (within 10 seconds) it times out. I have changed the timeout setting but no change in the behavior. It seems “moody” for lack of a better term. Sometimes it wants to send and others I just wanna smack it. I have a conversation going with the watchguard people thinking its something to do with the firewall (because I have no idea what the Spark logs mean) so I’‘m trying to cover all my bases. Yesterday I was able to send a 3mg file to a remote user several times over but not the other way. Then I wasn’'t able to do the transfers from either (no changes with firewall between testing). I have tried messing with file sizes and different users. Seems the smaller files go better than the larger ones. Still testing and still on the verge of smacking several computers…

But, all will work out eventually…