John Walton created NET-477:
Summary: TFTP sendFile retry broken
URL: https://issues.apache.org/jira/browse/NET-477 Project: Commons Net
Issue Type: Bug
Affects Versions: 3.1, 3.2
Environment: Linux **** 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
Reporter: John Walton
TFTPClient.java sendFile() method does not retry after initial timeout.
Between revisons 1088720 & 1229692 the 'continue' statements were changed to 'continue _sendPacket'. After the initial timeout of bufferedReceive() these cause the control to flow to the outer loop and never retry. If the control did flow accordingly, the retry would loop indefinitely since the timeouts variable is reset to zero each time as well.
I am using a workaround by calling bufferedSend(sent) just before continue, in place of the 'continue _sendPacket' statement.
It looks as if similar logic was applied to the receiveFile() method as well.