Author: omalley
Date: Fri Mar 4 03:39:31 2011
New Revision: 1077091
URL: http://svn.apache.org/viewvc?rev=1077091&view=rev
Log:
commit 00285e9930bee667aeabc78e71f7c56df77409e4
Author: Jitendra Nath Pandey <[email protected]>
Date: Thu Dec 24 11:46:03 2009 -0800
HADOOP-6132 from
https://issues.apache.org/jira/secure/attachment/12428925/HADOOP-6132-0_20.1.patch
+++ b/YAHOO-CHANGES.txt
+ HADOOP-6132. RPC client opens an extra connection for
VersionedProtocol.
+ (Jitendra Nath Pandey)
+
Modified:
hadoop/common/branches/branch-0.20-security-patches/src/core/org/apache/hadoop/ipc/RPC.java
Modified:
hadoop/common/branches/branch-0.20-security-patches/src/core/org/apache/hadoop/ipc/RPC.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20-security-patches/src/core/org/apache/hadoop/ipc/RPC.java?rev=1077091&r1=1077090&r2=1077091&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.20-security-patches/src/core/org/apache/hadoop/ipc/RPC.java
(original)
+++
hadoop/common/branches/branch-0.20-security-patches/src/core/org/apache/hadoop/ipc/RPC.java
Fri Mar 4 03:39:31 2011
@@ -197,13 +197,16 @@ public class RPC {
private static ClientCache CLIENTS=new ClientCache();
private static class Invoker implements InvocationHandler {
+ private Class<? extends VersionedProtocol> protocol;
private InetSocketAddress address;
private UserGroupInformation ticket;
private Client client;
private boolean isClosed = false;
- public Invoker(InetSocketAddress address, UserGroupInformation ticket,
- Configuration conf, SocketFactory factory) {
+ public Invoker(Class<? extends VersionedProtocol> protocol,
+ InetSocketAddress address, UserGroupInformation ticket,
+ Configuration conf, SocketFactory factory) {
+ this.protocol = protocol;
this.address = address;
this.ticket = ticket;
this.client = CLIENTS.getClient(conf, factory);
@@ -219,7 +222,7 @@ public class RPC {
ObjectWritable value = (ObjectWritable)
client.call(new Invocation(method, args), address,
- method.getDeclaringClass(), ticket);
+ protocol, ticket);
if (logDebug) {
long callTime = System.currentTimeMillis() - startTime;
LOG.debug("Call: " + method.getName() + " " + callTime);
@@ -283,7 +286,8 @@ public class RPC {
}
}
- public static VersionedProtocol waitForProxy(Class protocol,
+ public static VersionedProtocol waitForProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion,
InetSocketAddress addr,
Configuration conf
@@ -301,7 +305,8 @@ public class RPC {
* @return the proxy
* @throws IOException if the far end through a RemoteException
*/
- static VersionedProtocol waitForProxy(Class protocol,
+ static VersionedProtocol waitForProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion,
InetSocketAddress addr,
Configuration conf,
@@ -334,7 +339,8 @@ public class RPC {
}
/** Construct a client-side proxy object that implements the named protocol,
* talking to a server at the named address. */
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, Configuration conf,
SocketFactory factory) throws IOException {
UserGroupInformation ugi = null;
@@ -348,14 +354,15 @@ public class RPC {
/** Construct a client-side proxy object that implements the named protocol,
* talking to a server at the named address. */
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, UserGroupInformation ticket,
Configuration conf, SocketFactory factory) throws IOException {
VersionedProtocol proxy =
(VersionedProtocol) Proxy.newProxyInstance(
protocol.getClassLoader(), new Class[] { protocol },
- new Invoker(addr, ticket, conf, factory));
+ new Invoker(protocol, addr, ticket, conf, factory));
long serverVersion = proxy.getProtocolVersion(protocol.getName(),
clientVersion);
if (serverVersion == clientVersion) {
@@ -376,7 +383,8 @@ public class RPC {
* @return a proxy instance
* @throws IOException
*/
- public static VersionedProtocol getProxy(Class<?> protocol,
+ public static VersionedProtocol getProxy(
+ Class<? extends VersionedProtocol> protocol,
long clientVersion, InetSocketAddress addr, Configuration conf)
throws IOException {