Class OncRpcException

java.lang.Object
java.lang.Throwable
java.lang.Exception
org.acplt.oncrpc.OncRpcException
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
OncRpcAuthenticationException, OncRpcProgramNotRegisteredException, OncRpcTimeoutException

public class OncRpcException extends 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private String
    Specific detail about this OncRpcException, like a detailed error message.
    private int
    Specific detail (reason) about this OncRpcException, like the ONC/RPC error code, as defined by the RPC_xxx constants of this interface.
    static final int
    The ONC/RPC server did not accept the authentication sent by the client.
    static final int
    A buffer overflow occured with an encoding XDR stream.
    static final int
    A buffer underflow occured with an decoding XDR stream.
    static final int
    Indicates that a server could not register a transport with the ONC/RPC port mapper.
    static final int
    The ONC/RPC server could not decode the arguments sent within the call message.
    static final int
    The client can not decode the result from the remote procedure call.
    static final int
    The client can not encode the argments to be sent for the remote procedure call.
    static final int
    Information to be decoded can not be received.
    static final int
    Encoded information can not be sent.
    static final int
    A generic ONC/RPC exception occured.
    static final int
    The portmapper could not be contacted at the given host.
    static final int
    The given procedure is not available at the ONC/RPC server.
    static final int
    The requested program is not registered with the given host.
    static final int
    The ONC/RPC server does not support this particular program.
    static final int
    The ONC/RPC server does not support this particular version of the program.
    static final int
    The remote procedure call was carried out successfully.
    static final int
    The ONC/RPC server encountered a system error and thus was not able to carry out the requested remote function call successfully.
    static final int
    The remote procedure call timed out.
    static final int
    The caller specified an unknown/unsupported IP protocol.
    static final int
    ONC/RPC versions of server and client are not compatible.
    static final int
    Either a ONC/RPC server or client received the wrong type of ONC/RPC message when waiting for a request or reply.
    private static final long
    Defines the serial version UID for OncRpcException.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs an OncRpcException with a reason of RPC_FAILED.
    Constructs an OncRpcException with the specified detail reason.
    Constructs an OncRpcException with the specified detail reason and message.
    Constructs an OncRpcException with the specified detail message.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the error message string of this ONC/RPC object.
    int
    Returns the error reason of this ONC/RPC exception object.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Defines the serial version UID for OncRpcException.
      See Also:
    • RPC_SUCCESS

      public static final int RPC_SUCCESS
      The remote procedure call was carried out successfully.
      See Also:
    • 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:
    • RPC_CANTDECODERES

      public static final int RPC_CANTDECODERES
      The client can not decode the result from the remote procedure call.
      See Also:
    • RPC_CANTSEND

      public static final int RPC_CANTSEND
      Encoded information can not be sent.
      See Also:
    • RPC_CANTRECV

      public static final int RPC_CANTRECV
      Information to be decoded can not be received.
      See Also:
    • RPC_TIMEDOUT

      public static final int RPC_TIMEDOUT
      The remote procedure call timed out.
      See Also:
    • RPC_VERSMISMATCH

      public static final int RPC_VERSMISMATCH
      ONC/RPC versions of server and client are not compatible.
      See Also:
    • 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:
    • RPC_PROGUNAVAIL

      public static final int RPC_PROGUNAVAIL
      The ONC/RPC server does not support this particular program.
      See Also:
    • RPC_PROGVERSMISMATCH

      public static final int RPC_PROGVERSMISMATCH
      The ONC/RPC server does not support this particular version of the program.
      See Also:
    • RPC_PROCUNAVAIL

      public static final int RPC_PROCUNAVAIL
      The given procedure is not available at the ONC/RPC server.
      See Also:
    • RPC_CANTDECODEARGS

      public static final int RPC_CANTDECODEARGS
      The ONC/RPC server could not decode the arguments sent within the call message.
      See Also:
    • 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:
    • 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:
    • RPC_PMAPFAILURE

      public static final int RPC_PMAPFAILURE
      The portmapper could not be contacted at the given host.
      See Also:
    • RPC_PROGNOTREGISTERED

      public static final int RPC_PROGNOTREGISTERED
      The requested program is not registered with the given host.
      See Also:
    • RPC_FAILED

      public static final int RPC_FAILED
      A generic ONC/RPC exception occured. Shit happens...
      See Also:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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 String message
      Specific detail about this OncRpcException, like a detailed error message.
  • Constructor Details

    • OncRpcException

      public OncRpcException()
      Constructs an OncRpcException with a reason of RPC_FAILED.
    • OncRpcException

      public OncRpcException(String s)
      Constructs an OncRpcException with the specified detail message.
      Parameters:
      s - The detail message.
    • OncRpcException

      public OncRpcException(int r, 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 Details

    • getMessage

      public String getMessage()
      Returns the error message string of this ONC/RPC object.
      Overrides:
      getMessage in class 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.