Okay, I removed the extraneous setup of ProviderManager and setup of ServiceDiscoveryManager.
Is there a standalone main() that has a functional recieveFile(..) that works in 4.1.0-rc1? As a reminder, please understand when using PSI client to receive a file sent by 4.1.0-rc1 OutgoingFileTranser class, PSI negotiates and receives both XEP-0047 In-Band Bytestrean or XEP-0065 SOCKS5 flavors without error and without any timeout. Otherwise, if this problem is my usage of the Smack class library, then I would like to re-write https://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions /filetransfer.html since this is the basis for my implementation.
For now, I will keep debugging the last IQ, which crashes inside of Smack API:
IncomingFileTransfer transfer = fileTransferRequest.accept();
transfer.recieveFile(file);
while (!transfer.isDone())
{
//Crash occurs here, inside an internal thread of control created by Smack org.jivesoftware.smack.SmackException$NoResponseException
}
Debug Test Result
- Debugging/single-stepping into the receiveFile creates a thread, where I have observed streamNogotiatorTask,get(..) throws an ExecutionException "Error in execution". See below:
- My findings correlate with adjacent discussion titled
Sender's Last Raw Sent Packets
<iq to='test-receiver@test.tester.net/Smack' id='VoE46-9' type='set'><open xmlns='http://jabber.org/protocol/ibb' block-size='4096' sid='jsi_2227048791089853752' stanza='iq'/></iq>
Receiver's Last Raw Received Packets
<iq to="test-receiver@test.tester.net/Smack" id="VoE46-9" type="set" from="test-sender@test.tester.net/Smack"><open xmlns="http://jabber.org/protocol/ibb" block-size="4096" sid="jsi_2227048791089853752" stanza="iq"/></iq>
File transfer NEGOTIATING STREAM
File transfer ERROR
Transfer exception occurred: org.jivesoftware.smack.SmackException: Error in execution
org.jivesoftware.smack.SmackException: org.jivesoftware.smack.SmackException$NoResponseException: No response received within packet reply timeout. Timeout was 15000ms (~15s)
at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator.createIncomingStre am(FaultTolerantNegotiator.java:119)
at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTr ansfer.java:186)
at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$2.call(IncomingFileTr ansfer.java:183)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.negotiateStream(Incom ingFileTransfer.java:190)
at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer.access$100(IncomingFi leTransfer.java:57)
at org.jivesoftware.smackx.filetransfer.IncomingFileTransfer$1.run(IncomingFileTra nsfer.java:129)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.jivesoftware.smack.SmackException$NoResponseException: No response received within packet reply timeout. Timeout was 15000ms (~15s)
at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:181)
at org.jivesoftware.smackx.filetransfer.FaultTolerantNegotiator$NegotiatorService. call(FaultTolerantNegotiator.java:170)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more