org.acplt.oncrpc
Class OncRpcException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by 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.

See Also:
Exception, Serialized Form

Field Summary
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_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
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
 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
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, 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

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.