KUDU-1471 NPE in AsyncKuduClient from Spark
Change-Id: Iecb0f0f50f62db3a3d5fb10f80da70fedeb2629d
Reviewed-on: http://gerrit.cloudera.org:8080/3243
Reviewed-by: Dan Burkert <dan@cloudera.com>
Tested-by: Kudu Jenkins
(cherry picked from commit 48e09ab953494779e54963948696d1bcbb77c744)
Reviewed-on: http://gerrit.cloudera.org:8080/3274
Reviewed-by: Jean-Daniel Cryans
diff --git a/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java b/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java
index bfda23e..f53b946 100644
--- a/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java
+++ b/java/kudu-client/src/main/java/org/kududb/client/AsyncKuduClient.java
@@ -1399,8 +1399,10 @@
client = pipeline.init(uuid, host, port);
chan = channelFactory.newChannel(pipeline);
ip2client.put(hostport, client); // This is guaranteed to return null.
+
+ // The client2tables map is assumed to contain `client` after it is published in ip2client.
+ this.client2tablets.put(client, new ArrayList<RemoteTablet>());
}
- this.client2tablets.put(client, new ArrayList<RemoteTablet>());
final SocketChannelConfig config = chan.getConfig();
config.setConnectTimeoutMillis(5000);
config.setTcpNoDelay(true);