From 929776752e52e97d397930807b38f95c9bfc3c1b Mon Sep 17 00:00:00 2001 From: nkeywal Date: Wed, 24 Apr 2013 07:26:55 +0000 Subject: [PATCH] HBASE-8380 NPE in HBaseClient.readResponse git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1471271 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/hadoop/hbase/ipc/HBaseClient.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java index 2bf1957b9bc..be60417f26d 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java @@ -392,7 +392,7 @@ public class HBaseClient { if (LOG.isDebugEnabled()) { LOG.debug("Use " + authMethod + " authentication for protocol " - + protocol.getSimpleName()); + + (protocol == null ? "null" : protocol.getSimpleName())); } reloginMaxBackoff = conf.getInt("hbase.security.relogin.maxbackoff", 5000); this.remoteId = remoteId; @@ -811,7 +811,7 @@ public class HBaseClient { ticket = ticket.getRealUser(); } } - boolean continueSasl = false; + boolean continueSasl; try { if (ticket == null) { throw new NullPointerException("ticket is null"); @@ -855,7 +855,7 @@ public class HBaseClient { } } catch (Throwable t) { failedServers.addToFailedServers(remoteId.address); - IOException e = null; + IOException e; if (t instanceof IOException) { e = (IOException)t; markClosed(e); @@ -1007,14 +1007,16 @@ public class HBaseClient { if (call != null) call.setException(re); } } else { - Message rpcResponseType; - try { - // TODO: Why pb engine pollution in here in this class? FIX. - rpcResponseType = - ProtobufRpcClientEngine.Invoker.getReturnProtoType( - reflectionCache.getMethod(remoteId.getProtocol(), call.method.getName())); - } catch (Exception e) { - throw new RuntimeException(e); //local exception + Message rpcResponseType = null; + if (call != null){ + try { + // TODO: Why pb engine pollution in here in this class? FIX. + rpcResponseType = + ProtobufRpcClientEngine.Invoker.getReturnProtoType( + reflectionCache.getMethod(remoteId.getProtocol(), call.method.getName())); + } catch (Exception e) { + throw new RuntimeException(e); //local exception + } } Message value = null; if (rpcResponseType != null) { @@ -1474,4 +1476,4 @@ public class HBaseClient { return hashcode; } } -} \ No newline at end of file +}