org.acplt.oncrpc

## Class OncRpcException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - org.acplt.oncrpc.OncRpcException

All Implemented Interfaces:
  java.io.Serializable

Direct Known Subclasses:
  OncRpcAuthenticationException, OncRpcProgramNotRegisteredException, OncRpcTimeoutException

    public class OncRpcException
    extends java.lang.Exception

The class `OncRpcException` indicates ONC/RPC conditions that a reasonable application might want to catch. We follow here the notation established by the Java environment that exceptions can be caught while errors usually can't. Because we don't want to throw our applications out of the virtual machine (should I mock here "out of the window"?), we only define exceptions.

The class `OncRpcException` also defines a set of ONC/RPC error codes as defined by RFC 1831. Note that all these error codes are solely used on the client-side or server-side, but never transmitted over the wire. For error codes transmitted over the network, refer to `OncRpcAcceptStatus` and `OncRpcRejectStatus`.

Version:
  $Revision: 1.3 $ $Date: 2008/01/02 15:13:35 $ $State: Exp $ $Locker: $
Author:
  Harald Albrecht
See Also:
  `Exception`, Serialized Form

### Field Summary

Fields
`private java.lang.String` `message` Specific detail about this `OncRpcException`, like a detailed error message.
`private int` `reason` Specific detail (reason) about this `OncRpcException`, like the ONC/RPC error code, as defined by the `RPC_xxx` constants of this interface.
`static int` `RPC_AUTHERROR` The ONC/RPC server did not accept the authentication sent by the client.
`static int` `RPC_BUFFEROVERFLOW` A buffer overflow occured with an encoding XDR stream.
`static int` `RPC_BUFFERUNDERFLOW` A buffer underflow occured with an decoding XDR stream.
`static int` `RPC_CANNOTREGISTER` Indicates that a server could not register a transport with the ONC/RPC port mapper.
`static int` `RPC_CANTDECODEARGS` The ONC/RPC server could not decode the arguments sent within the call message.
`static int` `RPC_CANTDECODERES` The client can not decode the result from the remote procedure call.
`static int` `RPC_CANTENCODEARGS` The client can not encode the argments to be sent for the remote procedure call.
`static int` `RPC_CANTRECV` Information to be decoded can not be received.
`static int` `RPC_CANTSEND` Encoded information can not be sent.
`static int` `RPC_FAILED` A generic ONC/RPC exception occured.
`static int` `RPC_PMAPFAILURE` The portmapper could not be contacted at the given host.
`static int` `RPC_PROCUNAVAIL` The given procedure is not available at the ONC/RPC server.
`static int` `RPC_PROGNOTREGISTERED` The requested program is not registered with the given host.
`static int` `RPC_PROGUNAVAIL` The ONC/RPC server does not support this particular program.
`static int` `RPC_PROGVERSMISMATCH` The ONC/RPC server does not support this particular version of the program.
`static int` `RPC_SUCCESS` The remote procedure call was carried out successfully.
`static int` `RPC_SYSTEMERROR` The ONC/RPC server encountered a system error and thus was not able to carry out the requested remote function call successfully.
`static int` `RPC_TIMEDOUT` The remote procedure call timed out.
`static int` `RPC_UNKNOWNPROTO` The caller specified an unknown/unsupported IP protocol.
`static int` `RPC_VERSMISMATCH` ONC/RPC versions of server and client are not compatible.
`static int` `RPC_WRONGMESSAGE` Either a ONC/RPC server or client received the wrong type of ONC/RPC message when waiting for a request or reply.
`private static long` `serialVersionUID` Defines the serial version UID for `OncRpcException`.

### Constructor Summary

Constructors
Constructor and Description
`OncRpcException()` Constructs an `OncRpcException` with a reason of `RPC_FAILED`.
`OncRpcException(int r)` Constructs an `OncRpcException` with the specified detail reason.
`OncRpcException(int r, java.lang.String s)` Constructs an `OncRpcException` with the specified detail reason and message.
`OncRpcException(java.lang.String s)` Constructs an `OncRpcException` with the specified detail message.

### Method Summary

Methods
`java.lang.String` `getMessage()` Returns the error message string of this ONC/RPC object.
`int` `getReason()` Returns the error reason of this ONC/RPC exception object.

### Methods inherited from class java.lang.Throwable

`addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

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

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

### Field Detail

#### serialVersionUID

    private static final long serialVersionUID

Defines the serial version UID for `OncRpcException`.

See Also:
  Constant Field Values

#### RPC_SUCCESS

    public static final int RPC_SUCCESS

The remote procedure call was carried out successfully.

See Also:
  Constant Field Values

#### RPC_CANTENCODEARGS

    public static final int RPC_CANTENCODEARGS

The client can not encode the argments to be sent for the remote procedure call.

See Also:
  Constant Field Values

#### RPC_CANTDECODERES

    public static final int RPC_CANTDECODERES

The client can not decode the result from the remote procedure call.

See Also:
  Constant Field Values

#### RPC_CANTSEND

    public static final int RPC_CANTSEND

Encoded information can not be sent.

See Also:
  Constant Field Values

#### RPC_CANTRECV

    public static final int RPC_CANTRECV

Information to be decoded can not be received.

See Also:
  Constant Field Values

#### RPC_TIMEDOUT

    public static final int RPC_TIMEDOUT

The remote procedure call timed out.

See Also:
  Constant Field Values

#### RPC_VERSMISMATCH

    public static final int RPC_VERSMISMATCH

ONC/RPC versions of server and client are not compatible.

See Also:
  Constant Field Values

#### RPC_AUTHERROR

    public static final int RPC_AUTHERROR

The ONC/RPC server did not accept the authentication sent by the client. Bad girl/guy!

See Also:
  Constant Field Values

#### RPC_PROGUNAVAIL

    public static final int RPC_PROGUNAVAIL

The ONC/RPC server does not support this particular program.

See Also:
  Constant Field Values

#### RPC_PROGVERSMISMATCH

    public static final int RPC_PROGVERSMISMATCH

The ONC/RPC server does not support this particular version of the program.

See Also:
  Constant Field Values

#### RPC_PROCUNAVAIL

    public static final int RPC_PROCUNAVAIL

The given procedure is not available at the ONC/RPC server.

See Also:
  Constant Field Values

#### RPC_CANTDECODEARGS

    public static final int RPC_CANTDECODEARGS

The ONC/RPC server could not decode the arguments sent within the call message.

See Also:
  Constant Field Values

#### RPC_SYSTEMERROR

    public static final int RPC_SYSTEMERROR

The ONC/RPC server encountered a system error and thus was not able to carry out the requested remote function call successfully.

See Also:
  Constant Field Values

#### RPC_UNKNOWNPROTO

    public static final int RPC_UNKNOWNPROTO

The caller specified an unknown/unsupported IP protocol. Currently, only `OncRpcProtocols.ONCRPC_TCP` and `OncRpcProtocols.ONCRPC_UDP` are supported.

See Also:
  Constant Field Values

#### RPC_PMAPFAILURE

    public static final int RPC_PMAPFAILURE

The portmapper could not be contacted at the given host.

See Also:
  Constant Field Values

#### RPC_PROGNOTREGISTERED

    public static final int RPC_PROGNOTREGISTERED

The requested program is not registered with the given host.

See Also:
  Constant Field Values

#### RPC_FAILED

    public static final int RPC_FAILED

A generic ONC/RPC exception occured. Shit happens...

See Also:
  Constant Field Values

#### RPC_BUFFEROVERFLOW

    public static final int RPC_BUFFEROVERFLOW

A buffer overflow occured with an encoding XDR stream. This happens if you use UDP-based (datagram-based) XDR streams and you try to encode more data than can fit into the sending buffers.

See Also:
  Constant Field Values

#### RPC_BUFFERUNDERFLOW

    public static final int RPC_BUFFERUNDERFLOW

A buffer underflow occured with an decoding XDR stream. This happens if you try to decode more data than was sent by the other communication partner.

See Also:
  Constant Field Values

#### RPC_WRONGMESSAGE

    public static final int RPC_WRONGMESSAGE

Either a ONC/RPC server or client received the wrong type of ONC/RPC message when waiting for a request or reply. Currently, only the decoding methods of the classes `OncRpcCallMessage` and `OncRpcReplyMessage` throw exceptions with this reason.

See Also:
  Constant Field Values

#### RPC_CANNOTREGISTER

    public static final int RPC_CANNOTREGISTER

Indicates that a server could not register a transport with the ONC/RPC port mapper.

See Also:
  Constant Field Values

#### reason

    private int reason

Specific detail (reason) about this `OncRpcException`, like the ONC/RPC error code, as defined by the `RPC_xxx` constants of this interface.

#### message

    private java.lang.String message

Specific detail about this `OncRpcException`, like a detailed error message.

### Constructor Detail

#### OncRpcException

    public OncRpcException()

Constructs an `OncRpcException` with a reason of `RPC_FAILED`.

#### OncRpcException

    public OncRpcException(java.lang.String s)

Constructs an `OncRpcException` with the specified detail message.

Parameters:
  `s` - The detail message.

#### OncRpcException

    public OncRpcException(int r,
                   java.lang.String s)

Constructs an `OncRpcException` with the specified detail reason and message. For possible reasons, see below.

Parameters:
  `r` - The detail reason.
  `s` - The detail message.

#### OncRpcException

    public OncRpcException(int r)

Constructs an `OncRpcException` with the specified detail reason. The detail message is derived automatically from the reason.

Parameters:
  `r` - The reason. This can be one of the constants -- oops, that should be "public final static integers" -- defined in this interface.

### Method Detail

#### getMessage

    public java.lang.String getMessage()

Returns the error message string of this ONC/RPC object.

Overrides:
  `getMessage` in class `java.lang.Throwable`
Returns:
  The error message string of this `OncRpcException` object if it was created either with an error message string or an ONC/RPC error code.

#### getReason

    public int getReason()

Returns the error reason of this ONC/RPC exception object.

Returns:
  The error reason of this `OncRpcException` object if it was `created` with an error reason; or `RPC_FAILED` if it was `created` with no error reason.