org.apache.commons.net.tftp

## Class TFTPErrorPacket

- java.lang.Object
- - org.apache.commons.net.tftp.TFTPPacket
  - - org.apache.commons.net.tftp.TFTPErrorPacket

-     public final class TFTPErrorPacket
      extends TFTPPacket

  A final class derived from TFTPPacket defining the TFTP Error packet type.

  Details regarding the TFTP protocol and the format of TFTP packets can be found in RFC 783. But the point of these classes is to keep you from having to worry about the internals. Additionally, only very few people should have to care about any of the TFTPPacket classes or derived classes. Almost all users should only be concerned with the `TFTPClient` class `receiveFile()` and `sendFile()` methods.

  See Also:
    `TFTPPacket`, `TFTPPacketException`, `TFTP`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ACCESS_VIOLATION` The access violation error code according to RFC 783, value 2.
    `static int` | `FILE_EXISTS` The file already exists error code according to RFC 783, value 6.
    `static int` | `FILE_NOT_FOUND` The file not found error code according to RFC 783, value 1.
    `static int` | `ILLEGAL_OPERATION` The illegal TFTP operation error code according to RFC 783, value 4.
    `static int` | `INVALID_OPTIONS_VALUE` The invalid options error code according to RFC 2347, value 8.
    `static int` | `NO_SUCH_USER` The no such user error code according to RFC 783, value 7.
    `static int` | `OUT_OF_SPACE` The disk full error code according to RFC 783, value 3.
    `static int` | `UNDEFINED` The undefined error code according to RFC 783, value 0.
    `static int` | `UNKNOWN_TID` The unknown transfer id error code according to RFC 783, value 5.

    - ### Fields inherited from class org.apache.commons.net.tftp.TFTPPacket

      `ACKNOWLEDGEMENT, address, DATA, ERROR, MIN_PACKET_SIZE, OACK, port, READ_REQUEST, SEGMENT_SIZE, type, WRITE_REQUEST`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TFTPErrorPacket(DatagramPacket datagram)` Creates an error packet based from a received datagram.
    `TFTPErrorPacket(InetAddress destination, int port, int error, String message)` Creates an error packet to be sent to a host at a given port with an error code and error message.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getError()` Gets the error code of the packet.
    `String` | `getMessage()` Gets the error message of the packet.
    `DatagramPacket` | `newDatagram()` Creates a UDP datagram containing all the TFTP error packet data in the proper format.
    `(package private) DatagramPacket` | `newDatagram(DatagramPacket datagram, byte[] data)` This is a method only available within the package for implementing efficient datagram transport by eliminating buffering.
    `String` | `toString()` For debugging

    - ### Methods inherited from class org.apache.commons.net.tftp.TFTPPacket

      `getAddress, getPort, getType, newTFTPPacket, setAddress, setPort`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ACCESS_VIOLATION

          public static final int ACCESS_VIOLATION

      The access violation error code according to RFC 783, value 2.
      See Also:
        Constant Field Values

    - #### FILE_EXISTS

          public static final int FILE_EXISTS

      The file already exists error code according to RFC 783, value 6.
      See Also:
        Constant Field Values

    - #### FILE_NOT_FOUND

          public static final int FILE_NOT_FOUND

      The file not found error code according to RFC 783, value 1.
      See Also:
        Constant Field Values

    - #### ILLEGAL_OPERATION

          public static final int ILLEGAL_OPERATION

      The illegal TFTP operation error code according to RFC 783, value 4.
      See Also:
        Constant Field Values

    - #### INVALID_OPTIONS_VALUE

          public static final int INVALID_OPTIONS_VALUE

      The invalid options error code according to RFC 2347, value 8.
      See Also:
        Constant Field Values

    - #### NO_SUCH_USER

          public static final int NO_SUCH_USER

      The no such user error code according to RFC 783, value 7.
      See Also:
        Constant Field Values

    - #### OUT_OF_SPACE

          public static final int OUT_OF_SPACE

      The disk full error code according to RFC 783, value 3.
      See Also:
        Constant Field Values

    - #### UNDEFINED

          public static final int UNDEFINED

      The undefined error code according to RFC 783, value 0.
      See Also:
        Constant Field Values

    - #### UNKNOWN_TID

          public static final int UNKNOWN_TID

      The unknown transfer id error code according to RFC 783, value 5.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### TFTPErrorPacket

          TFTPErrorPacket(DatagramPacket datagram)
                   throws TFTPPacketException

      Creates an error packet based from a received datagram. Assumes the datagram is at least length 4, else an ArrayIndexOutOfBoundsException may be thrown.
      Parameters:
        `datagram` - The datagram containing the received error.
      Throws:
        `TFTPPacketException` - If the datagram isn't a valid TFTP error packet.

    - #### TFTPErrorPacket

          public TFTPErrorPacket(InetAddress destination,
                                 int port,
                                 int error,
                                 String message)

      Creates an error packet to be sent to a host at a given port with an error code and error message.
      Parameters:
        `destination` - The host to which the packet is going to be sent.
        `port` - The port to which the packet is going to be sent.
        `error` - The error code of the packet.
        `message` - The error message of the packet.

  - ### Method Detail

    - #### getError

          public int getError()

      Gets the error code of the packet.
      Returns:
        The error code of the packet.

    - #### getMessage

          public String getMessage()

      Gets the error message of the packet.
      Returns:
        The error message of the packet.

    - #### newDatagram

          public DatagramPacket newDatagram()

      Creates a UDP datagram containing all the TFTP error packet data in the proper format. This is a method exposed to the programmer in case he wants to implement his own TFTP client instead of using the `TFTPClient` class. Under normal circumstances, you should not have a need to call this method.
      Specified by:
        `newDatagram` in class `TFTPPacket`
      Returns:
        A UDP datagram containing the TFTP error packet.

    - #### newDatagram

          DatagramPacket newDatagram(DatagramPacket datagram,
                                     byte[] data)

      This is a method only available within the package for implementing efficient datagram transport by eliminating buffering. It takes a datagram as an argument, and a byte buffer in which to store the raw datagram data. Inside the method, the data is set as the datagram's data and the datagram returned.
      Specified by:
        `newDatagram` in class `TFTPPacket`
      Parameters:
        `datagram` - The datagram to create.
        `data` - The buffer to store the packet and to use in the datagram.
      Returns:
        The datagram argument.

    - #### toString

          public String toString()

      For debugging
      Overrides:
        `toString` in class `TFTPPacket`