HADOOP-7931. o.a.h.ipc.WritableRpcEngine should have a way to force initialization. Contributed by Aaron T. Myers
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1215358 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9b7617a909
commit
059290ce3a
|
@ -141,6 +141,9 @@ Trunk (unreleased changes)
|
|||
|
||||
HADOOP-7892. IPC logs too verbose after "RpcKind" introduction (todd)
|
||||
|
||||
HADOOP-7931. o.a.h.ipc.WritableRpcEngine should have a way to force
|
||||
initialization (atm)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HADOOP-7761. Improve the performance of raw comparisons. (todd)
|
||||
|
|
|
@ -48,18 +48,39 @@ import org.apache.hadoop.conf.*;
|
|||
public class WritableRpcEngine implements RpcEngine {
|
||||
private static final Log LOG = LogFactory.getLog(RPC.class);
|
||||
|
||||
static { // Register the rpcRequest deserializer for WritableRpcEngine
|
||||
org.apache.hadoop.ipc.Server.registerProtocolEngine(RpcKind.RPC_WRITABLE,
|
||||
Invocation.class, new Server.WritableRpcInvoker());
|
||||
}
|
||||
|
||||
|
||||
//writableRpcVersion should be updated if there is a change
|
||||
//in format of the rpc messages.
|
||||
|
||||
// 2L - added declared class to Invocation
|
||||
public static final long writableRpcVersion = 2L;
|
||||
|
||||
/**
|
||||
* Whether or not this class has been initialized.
|
||||
*/
|
||||
private static boolean isInitialized = false;
|
||||
|
||||
static {
|
||||
ensureInitialized();
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize this class if it isn't already.
|
||||
*/
|
||||
public static synchronized void ensureInitialized() {
|
||||
if (!isInitialized) {
|
||||
initialize();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the rpcRequest deserializer for WritableRpcEngine
|
||||
*/
|
||||
private static synchronized void initialize() {
|
||||
org.apache.hadoop.ipc.Server.registerProtocolEngine(RpcKind.RPC_WRITABLE,
|
||||
Invocation.class, new Server.WritableRpcInvoker());
|
||||
isInitialized = true;
|
||||
}
|
||||
|
||||
|
||||
/** A method invocation, including the method name and its parameters.*/
|
||||
private static class Invocation implements Writable, Configurable {
|
||||
|
|
Loading…
Reference in New Issue