@InterfaceAudience.Private @InterfaceStability.Evolving public class RemoteProcedureException extends ProcedureException
RemoteProcedureExceptions are sent to 'remote' peers to signal an abort in the face of failures. When serialized for transmission we encode using Protobufs to ensure version compatibility.
RemoteProcedureException exceptions contain a Throwable as its cause. This can be a "regular" exception generated locally or a ProxyThrowable that is a representation of the original exception created on original 'remote' source. These ProxyThrowables have their their stacks traces and messages overridden to reflect the original 'remote' exception.
Modifier and Type | Field and Description |
---|---|
private String |
source
Name of the throwable's source such as a host or thread name.
|
Constructor and Description |
---|
RemoteProcedureException(String source,
Throwable cause)
Create a new RemoteProcedureException that can be serialized.
|
Modifier and Type | Method and Description |
---|---|
org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage |
convert() |
static RemoteProcedureException |
deserialize(byte[] bytes)
Takes a series of bytes and tries to generate an RemoteProcedureException instance for it.
|
static RemoteProcedureException |
fromProto(org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage eem) |
String |
getSource() |
static byte[] |
serialize(String source,
Throwable t)
Converts a RemoteProcedureException to an array of bytes.
|
static org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage |
toProto(String source,
Throwable t) |
String |
toString() |
Exception |
unwrapRemoteException() |
IOException |
unwrapRemoteIOException() |
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace
public RemoteProcedureException(String source, Throwable cause)
source
- the host or thread name of the sourcecause
- the actual cause of the exceptionpublic Exception unwrapRemoteException()
public IOException unwrapRemoteIOException()
public static byte[] serialize(String source, Throwable t)
source
- the name of the external exception sourcet
- the "local" external exception (local)public static RemoteProcedureException deserialize(byte[] bytes) throws IOException
bytes
- the bytes to generate the RemoteProcedureException
fromIOException
- if there was deserialization problem this is thrown.public org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage convert()
public static org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage toProto(String source, Throwable t)
public static RemoteProcedureException fromProto(org.apache.hadoop.hbase.shaded.protobuf.generated.ErrorHandlingProtos.ForeignExceptionMessage eem)
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.