You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ji...@apache.org on 2013/07/24 09:54:17 UTC
svn commit: r1506429 - in
/hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common:
./ src/main/java/org/apache/hadoop/ipc/ src/test/java/org/apache/hadoop/ipc/
Author: jing9
Date: Wed Jul 24 07:54:17 2013
New Revision: 1506429
URL: http://svn.apache.org/r1506429
Log:
HADOOP-9762. Merge change r1506428 from branch-2.
Added:
hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java
- copied unchanged from r1506428, hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RetryCache.java
hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRetryCache.java
- copied unchanged from r1506428, hadoop/common/branches/branch-2/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRetryCache.java
Modified:
hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1506429&r1=1506428&r2=1506429&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/CHANGES.txt Wed Jul 24 07:54:17 2013
@@ -66,6 +66,9 @@ Release 2.1.0-beta - 2013-07-02
HADOOP-9763. Extends LightWeightGSet to support eviction of expired
elements. (Tsz Wo (Nicholas) SZE via jing9)
+ HADOOP-9762. RetryCache utility for implementing RPC retries.
+ (Suresh Srinivas via jing9)
+
IMPROVEMENTS
HADOOP-9164. Print paths of loaded native libraries in
Modified: hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java?rev=1506429&r1=1506428&r2=1506429&view=diff
==============================================================================
--- hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java (original)
+++ hadoop/common/branches/branch-2.1-beta/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java Wed Jul 24 07:54:17 2013
@@ -268,6 +268,12 @@ public abstract class Server {
*/
private static final ThreadLocal<Call> CurCall = new ThreadLocal<Call>();
+ /** Get the current call */
+ @VisibleForTesting
+ public static ThreadLocal<Call> getCurCall() {
+ return CurCall;
+ }
+
/**
* Returns the currently active RPC call's sequential ID number. A negative
* call ID indicates an invalid value, such as if there is no currently active
@@ -275,7 +281,7 @@ public abstract class Server {
*
* @return int sequential ID number of currently active RPC call
*/
- static int getCallId() {
+ public static int getCallId() {
Call call = CurCall.get();
return call != null ? call.callId : RpcConstants.INVALID_CALL_ID;
}
@@ -294,10 +300,8 @@ public abstract class Server {
*/
public static InetAddress getRemoteIp() {
Call call = CurCall.get();
- if (call != null) {
- return call.connection.getHostInetAddress();
- }
- return null;
+ return (call != null && call.connection != null) ? call.connection
+ .getHostInetAddress() : null;
}
/**
@@ -322,7 +326,8 @@ public abstract class Server {
*/
public static UserGroupInformation getRemoteUser() {
Call call = CurCall.get();
- return (call != null) ? call.connection.user : null;
+ return (call != null && call.connection != null) ? call.connection.user
+ : null;
}
/** Return true if the invocation was through an RPC.
@@ -460,7 +465,7 @@ public abstract class Server {
}
/** A call queued for handling. */
- private static class Call {
+ public static class Call {
private final int callId; // the client's call id
private final int retryCount; // the retry count of the call
private final Writable rpcRequest; // Serialized Rpc request from client
@@ -471,13 +476,13 @@ public abstract class Server {
private final RPC.RpcKind rpcKind;
private final byte[] clientId;
- private Call(int id, int retryCount, Writable param,
+ public Call(int id, int retryCount, Writable param,
Connection connection) {
this(id, retryCount, param, connection, RPC.RpcKind.RPC_BUILTIN,
RpcConstants.DUMMY_CLIENT_ID);
}
- private Call(int id, int retryCount, Writable param, Connection connection,
+ public Call(int id, int retryCount, Writable param, Connection connection,
RPC.RpcKind kind, byte[] clientId) {
this.callId = id;
this.retryCount = retryCount;