You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by da...@apache.org on 2017/06/28 16:36:30 UTC

kudu git commit: [java] update dependencies and clean up some deprecate method usage

Repository: kudu
Updated Branches:
  refs/heads/master bbed78cbd -> 15e33c122


[java] update dependencies and clean up some deprecate method usage

Change-Id: I4b9746f70187c5a7ca0dd016db92ae4e6de7ecc3
Reviewed-on: http://gerrit.cloudera.org:8080/7276
Tested-by: Kudu Jenkins
Reviewed-by: Dan Burkert <da...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/15e33c12
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/15e33c12
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/15e33c12

Branch: refs/heads/master
Commit: 15e33c1229237881d8867040ca3421eee49577a4
Parents: bbed78c
Author: Grant Henke <gr...@gmail.com>
Authored: Fri Jun 23 15:01:57 2017 -0500
Committer: Dan Burkert <da...@apache.org>
Committed: Wed Jun 28 16:35:44 2017 +0000

----------------------------------------------------------------------
 .../org/apache/kudu/client/ConnectionCache.java |  4 +-
 .../java/org/apache/kudu/client/KuduRpc.java    |  4 +-
 .../java/org/apache/kudu/client/Negotiator.java | 57 +++++++++-----------
 .../org/apache/kudu/client/ProtobufHelper.java  |  2 +-
 .../org/apache/kudu/client/SecurityContext.java |  6 +--
 .../java/org/apache/kudu/client/ServerInfo.java |  2 +-
 .../apache/kudu/client/TestConnectionCache.java |  2 +-
 .../kudu/client/TestFlexiblePartitioning.java   | 11 ++--
 .../org/apache/kudu/client/TestKuduClient.java  |  2 +-
 .../org/apache/kudu/client/TestNegotiator.java  |  2 +-
 .../java/org/apache/kudu/util/TestNetUtil.java  |  4 +-
 .../org/apache/kudu/flume/sink/KuduSink.java    |  6 +--
 .../apache/kudu/flume/sink/KuduSinkTest.java    |  2 +-
 .../kudu/mapreduce/KuduTableOutputFormat.java   |  4 +-
 .../apache/kudu/mapreduce/ITInputFormatJob.java |  8 +--
 java/kudu-spark-tools/pom.xml                   |  2 +-
 java/kudu-spark/pom.xml                         |  2 +-
 java/pom.xml                                    | 25 ++++-----
 18 files changed, 70 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java b/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
index df7a2d3..83ae8f0 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/ConnectionCache.java
@@ -111,7 +111,7 @@ class ConnectionCache {
     // TODO: if the TS advertises multiple host/ports, pick the right one
     // based on some kind of policy. For now just use the first always.
     HostAndPort hostPort = ProtobufHelper.hostAndPortFromPB(addresses.get(0));
-    InetAddress inetAddress = NetUtil.getInetAddress(hostPort.getHostText());
+    InetAddress inetAddress = NetUtil.getInetAddress(hostPort.getHost());
     if (inetAddress == null) {
       throw new UnknownHostException(
           "Failed to resolve the IP of `" + addresses.get(0).getHost() + "'");
@@ -128,7 +128,7 @@ class ConnectionCache {
   }
 
   TabletClient newClient(String uuid, HostAndPort hostPort) {
-    InetAddress inetAddress = NetUtil.getInetAddress(hostPort.getHostText());
+    InetAddress inetAddress = NetUtil.getInetAddress(hostPort.getHost());
     if (inetAddress == null) {
       // TODO(todd): should we log the resolution failure? throw an exception?
       return null;

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java b/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
index 4304df1..30f1a9c 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
@@ -398,10 +398,10 @@ public abstract class KuduRpc<R> {
     chanBuf.writeInt(totalSize);
     final CodedOutputStream out = CodedOutputStream.newInstance(buf, 4, totalSize);
     try {
-      out.writeRawVarint32(header.getSerializedSize());
+      out.writeUInt32NoTag(header.getSerializedSize());
       header.writeTo(out);
 
-      out.writeRawVarint32(pb.getSerializedSize());
+      out.writeUInt32NoTag(pb.getSerializedSize());
       pb.writeTo(out);
       out.checkNoSpaceLeft();
     } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/Negotiator.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/Negotiator.java b/java/kudu-client/src/main/java/org/apache/kudu/client/Negotiator.java
index 60544a8..46d99db 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/Negotiator.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/Negotiator.java
@@ -26,6 +26,7 @@
 
 package org.apache.kudu.client;
 
+import java.io.IOException;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.nio.ByteBuffer;
@@ -228,7 +229,7 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
   }
 
   private void handleResponse(Channel chan, CallResponse callResponse)
-      throws SaslException, SSLException {
+      throws IOException {
     // TODO(todd): this needs to handle error responses, not just success responses.
     RpcHeader.NegotiatePB response = parseSaslMsgResponse(callResponse);
 
@@ -254,7 +255,7 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
   }
 
   private void handleSaslMessage(Channel chan, NegotiatePB response)
-      throws SaslException {
+      throws IOException {
     switch (response.getStep()) {
       case SASL_CHALLENGE:
         handleChallengeResponse(chan, response);
@@ -438,7 +439,7 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
    * causes the handshake to complete, triggers the beginning of SASL initiation.
    */
   private void handleTlsMessage(Channel chan, NegotiatePB response)
-      throws SaslException {
+      throws IOException {
     Preconditions.checkState(response.getStep() == NegotiateStep.TLS_HANDSHAKE);
     Preconditions.checkArgument(!response.getTlsHandshake().isEmpty(),
         "empty TLS message from server");
@@ -458,13 +459,9 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
     // NOTE: this takes effect immediately (i.e. the following SASL initiation
     // sequence is encrypted).
     SslHandler handler = (SslHandler)sslEmbedder.getPipeline().getFirst();
-    try {
-      Certificate[] certs = handler.getEngine().getSession().getPeerCertificates();
-      if (certs.length == 0) {
-        throw new SSLPeerUnverifiedException("no peer cert found");
-      }
-    } catch (SSLPeerUnverifiedException e) {
-      throw Throwables.propagate(e);
+    Certificate[] certs = handler.getEngine().getSession().getPeerCertificates();
+    if (certs.length == 0) {
+      throw new SSLPeerUnverifiedException("no peer cert found");
     }
 
     // Don't wrap the TLS socket if we are using TLS for authentication only.
@@ -581,29 +578,25 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
    * for GSSAPI-authenticated connections over TLS.
    * @throws RuntimeException on failure to verify
    */
-  private void verifyChannelBindings(NegotiatePB response) {
-    try {
-      byte[] expected = SecurityUtil.getEndpointChannelBindings(peerCert);
-      if (!response.hasChannelBindings()) {
-        throw new RuntimeException("no channel bindings provided by remote peer");
-      }
-      byte[] provided = response.getChannelBindings().toByteArray();
-      // NOTE: the C SASL library's implementation of sasl_encode() actually
-      // includes a length prefix. Java's equivalents do not. So, we have to
-      // chop off the length prefix here before unwrapping.
-      if (provided.length < 4) {
-        throw new RuntimeException("invalid too-short channel bindings");
-      }
-      byte[] unwrapped = saslClient.unwrap(provided, 4, provided.length - 4);
-      if (!Bytes.equals(expected, unwrapped)) {
-        throw new RuntimeException("invalid channel bindings provided by remote peer");
-      }
-    } catch (SaslException se) {
-      throw Throwables.propagate(se);
+  private void verifyChannelBindings(NegotiatePB response) throws IOException {
+    byte[] expected = SecurityUtil.getEndpointChannelBindings(peerCert);
+    if (!response.hasChannelBindings()) {
+      throw new SSLPeerUnverifiedException("no channel bindings provided by remote peer");
+    }
+    byte[] provided = response.getChannelBindings().toByteArray();
+    // NOTE: the C SASL library's implementation of sasl_encode() actually
+    // includes a length prefix. Java's equivalents do not. So, we have to
+    // chop off the length prefix here before unwrapping.
+    if (provided.length < 4) {
+      throw new SSLPeerUnverifiedException("invalid too-short channel bindings");
+    }
+    byte[] unwrapped = saslClient.unwrap(provided, 4, provided.length - 4);
+    if (!Bytes.equals(expected, unwrapped)) {
+      throw new SSLPeerUnverifiedException("invalid channel bindings provided by remote peer");
     }
   }
 
-  private void handleSuccessResponse(Channel chan, NegotiatePB response) throws SaslException {
+  private void handleSuccessResponse(Channel chan, NegotiatePB response) throws IOException {
     Preconditions.checkState(saslClient.isComplete(),
                              "server sent SASL_SUCCESS step, but SASL negotiation is not complete");
     if (chosenMech.equals("GSSAPI")) {
@@ -672,8 +665,8 @@ public class Negotiator extends SimpleChannelUpstreamHandler {
           }
         });
     } catch (Exception e) {
-      Throwables.propagateIfInstanceOf(e, SaslException.class);
-      throw Throwables.propagate(e);
+      Throwables.throwIfInstanceOf(e, SaslException.class);
+      throw new RuntimeException(e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java b/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
index 9f0c2b8..af0963f 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java
@@ -286,7 +286,7 @@ public class ProtobufHelper {
    */
   public static Common.HostPortPB hostAndPortToPB(HostAndPort hostAndPort) {
     return Common.HostPortPB.newBuilder()
-        .setHost(hostAndPort.getHostText())
+        .setHost(hostAndPort.getHost())
         .setPort(hostAndPort.getPort())
         .build();
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java b/java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
index 16baa1e..ac75881 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/SecurityContext.java
@@ -87,7 +87,7 @@ class SecurityContext {
       sslContextTrustAny.init(null, new TrustManager[] { new TrustAnyCert() }, null);
 
     } catch (Exception e) {
-      throw Throwables.propagate(e);
+      throw new RuntimeException(e);
     }
   }
 
@@ -217,8 +217,8 @@ class SecurityContext {
       }
       return (X509TrustManager) managers[0];
     } catch (Exception e) {
-      Throwables.propagateIfInstanceOf(e, CertificateException.class);
-      throw Throwables.propagate(e);
+      Throwables.throwIfInstanceOf(e, CertificateException.class);
+      throw new RuntimeException(e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java b/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
index 5e90138..84e4292 100644
--- a/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
+++ b/java/kudu-client/src/main/java/org/apache/kudu/client/ServerInfo.java
@@ -70,7 +70,7 @@ public class ServerInfo {
    * @return a string that contains this server's hostname
    */
   public String getHostname() {
-    return hostPort.getHostText();
+    return hostPort.getHost();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java b/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
index c8e5a32..22010ca 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
@@ -50,7 +50,7 @@ public class TestConnectionCache {
       int i = 0;
       for (HostAndPort hp : addresses) {
         // Ping the process so we go through the whole connection process.
-        InetAddress addr = NetUtil.getInetAddress(hp.getHostText());
+        InetAddress addr = NetUtil.getInetAddress(hp.getHost());
         TabletClient conn =
             cache.newClient(new ServerInfo(i + "", hp, addr));
         pingConnection(conn);

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java b/java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
index 64de32e..c9cd71b 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.ComparisonChain;
@@ -449,11 +450,11 @@ public class TestFlexiblePartitioning extends BaseKuduTest {
 
     @Override
     public String toString() {
-      return com.google.common.base.Objects.toStringHelper(this)
-                                           .add("a", a)
-                                           .add("b", b)
-                                           .add("c", c)
-                                           .toString();
+      return MoreObjects.toStringHelper(this)
+                        .add("a", a)
+                        .add("b", b)
+                        .add("c", c)
+                        .toString();
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java b/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
index 4c16c3d..bd455fa 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
@@ -21,6 +21,7 @@ import static org.apache.kudu.client.KuduPredicate.ComparisonOp.GREATER_EQUAL;
 import static org.apache.kudu.client.KuduPredicate.ComparisonOp.LESS;
 import static org.apache.kudu.client.KuduPredicate.ComparisonOp.LESS_EQUAL;
 import static org.apache.kudu.client.RowResult.timestampToString;
+import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -28,7 +29,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.junit.matchers.JUnitMatchers.containsString;
 
 import java.io.Closeable;
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiator.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiator.java b/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiator.java
index b850eac..39f554c 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiator.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiator.java
@@ -130,7 +130,7 @@ public class TestNegotiator {
       ctx.init(kmf.getKeyManagers(), null, null);
       return ctx.createSSLEngine();
     } catch (Exception e) {
-      throw Throwables.propagate(e);
+      throw new RuntimeException(e);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
----------------------------------------------------------------------
diff --git a/java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java b/java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
index 9f1f3b0..8c91245 100644
--- a/java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
+++ b/java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
@@ -41,12 +41,12 @@ public class TestNetUtil {
   public void testParseString() {
     String aStringWithPort = "1.2.3.4:1234";
     HostAndPort hostAndPortForAStringWithPort = NetUtil.parseString(aStringWithPort, 0);
-    assertEquals(hostAndPortForAStringWithPort.getHostText(), "1.2.3.4");
+    assertEquals(hostAndPortForAStringWithPort.getHost(), "1.2.3.4");
     assertEquals(hostAndPortForAStringWithPort.getPort(), 1234);
 
     String aStringWithoutPort = "1.2.3.4";
     HostAndPort hostAndPortForAStringWithoutPort = NetUtil.parseString(aStringWithoutPort, 12345);
-    assertEquals(hostAndPortForAStringWithoutPort.getHostText(), aStringWithoutPort);
+    assertEquals(hostAndPortForAStringWithoutPort.getHost(), aStringWithoutPort);
     assertEquals(hostAndPortForAStringWithoutPort.getPort(), 12345);
   }
 

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-flume-sink/src/main/java/org/apache/kudu/flume/sink/KuduSink.java
----------------------------------------------------------------------
diff --git a/java/kudu-flume-sink/src/main/java/org/apache/kudu/flume/sink/KuduSink.java b/java/kudu-flume-sink/src/main/java/org/apache/kudu/flume/sink/KuduSink.java
index b82c772..38db309 100644
--- a/java/kudu-flume-sink/src/main/java/org/apache/kudu/flume/sink/KuduSink.java
+++ b/java/kudu-flume-sink/src/main/java/org/apache/kudu/flume/sink/KuduSink.java
@@ -214,7 +214,7 @@ public class KuduSink extends AbstractSink implements Configurable {
       operationsProducer.configure(producerContext);
     } catch (Exception e) {
       logger.error("Could not instantiate Kudu operations producer" , e);
-      Throwables.propagate(e);
+      throw new RuntimeException(e);
     }
     sinkCounter = new SinkCounter(this.getName());
   }
@@ -292,7 +292,7 @@ public class KuduSink extends AbstractSink implements Configurable {
       String msg = "Failed to commit transaction. Transaction rolled back.";
       logger.error(msg, e);
       if (e instanceof Error || e instanceof RuntimeException) {
-        Throwables.propagate(e);
+        throw new RuntimeException(e);
       } else {
         logger.error(msg, e);
         throw new EventDeliveryException(msg, e);
@@ -300,7 +300,5 @@ public class KuduSink extends AbstractSink implements Configurable {
     } finally {
       txn.close();
     }
-
-    return Status.BACKOFF;
   }
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
----------------------------------------------------------------------
diff --git a/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java b/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
index a00b63f..99aa6d7 100644
--- a/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
+++ b/java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
@@ -178,7 +178,7 @@ public class KuduSinkTest extends BaseKuduTest {
       List<String> rows = scanTableToStrings(table);
       assertEquals("1 row expected", 1, rows.size());
     } catch (Exception e) {
-      Throwables.propagate(e);
+      throw new RuntimeException(e);
     }
 
     LOG.info("Testing duplicate events finished successfully.");

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableOutputFormat.java
----------------------------------------------------------------------
diff --git a/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableOutputFormat.java b/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableOutputFormat.java
index ef647ea..ca836b8 100644
--- a/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableOutputFormat.java
+++ b/java/kudu-mapreduce/src/main/java/org/apache/kudu/mapreduce/KuduTableOutputFormat.java
@@ -217,8 +217,8 @@ public class KuduTableOutputFormat extends OutputFormat<NullWritable,Operation>
       if (!errors.isEmpty()) {
         int rowErrorsCount = errors.size();
         rowsWithErrors.addAndGet(rowErrorsCount);
-        LOG.warn("Got per errors for " + rowErrorsCount + " rows, " +
-            "the first one being " + errors.get(0).getStatus());
+        LOG.warn("Got per errors for {} rows, the first one being {}",
+            rowErrorsCount, errors.get(0).getErrorStatus());
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-mapreduce/src/test/java/org/apache/kudu/mapreduce/ITInputFormatJob.java
----------------------------------------------------------------------
diff --git a/java/kudu-mapreduce/src/test/java/org/apache/kudu/mapreduce/ITInputFormatJob.java b/java/kudu-mapreduce/src/test/java/org/apache/kudu/mapreduce/ITInputFormatJob.java
index 94230c6..62e8f58 100644
--- a/java/kudu-mapreduce/src/test/java/org/apache/kudu/mapreduce/ITInputFormatJob.java
+++ b/java/kudu-mapreduce/src/test/java/org/apache/kudu/mapreduce/ITInputFormatJob.java
@@ -26,6 +26,7 @@ import java.util.List;
 import com.google.common.collect.Lists;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
@@ -70,7 +71,7 @@ public class ITInputFormatJob extends BaseKuduTest {
 
     createFourTabletsTableWithNineRows(TABLE_NAME);
 
-    Configuration conf = new Configuration();
+    JobConf conf = new JobConf();
     HADOOP_UTIL.setupAndGetTestDir(ITInputFormatJob.class.getName(), conf).getAbsolutePath();
 
     createAndTestJob(conf, new ArrayList<KuduPredicate>(), 9);
@@ -84,11 +85,12 @@ public class ITInputFormatJob extends BaseKuduTest {
     createAndTestJob(conf, Lists.newArrayList(pred1, pred2), 2);
   }
 
-  private void createAndTestJob(Configuration conf,
+  private void createAndTestJob(JobConf conf,
                                 List<KuduPredicate> predicates, int expectedCount)
       throws Exception {
     String jobName = ITInputFormatJob.class.getName();
-    Job job = new Job(conf, jobName);
+    Job job = new Job(conf);
+    job.setJobName(jobName);
 
     Class<TestMapperTableInput> mapperClass = TestMapperTableInput.class;
     job.setJarByClass(mapperClass);

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-spark-tools/pom.xml
----------------------------------------------------------------------
diff --git a/java/kudu-spark-tools/pom.xml b/java/kudu-spark-tools/pom.xml
index 1146a98..e0aa13b 100644
--- a/java/kudu-spark-tools/pom.xml
+++ b/java/kudu-spark-tools/pom.xml
@@ -112,7 +112,7 @@
         <dependency>
             <groupId>org.scalatest</groupId>
             <artifactId>scalatest_2.11</artifactId>
-            <version>2.2.4</version>
+            <version>${scalatest.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/kudu-spark/pom.xml
----------------------------------------------------------------------
diff --git a/java/kudu-spark/pom.xml b/java/kudu-spark/pom.xml
index a086074..703ff5a 100644
--- a/java/kudu-spark/pom.xml
+++ b/java/kudu-spark/pom.xml
@@ -82,7 +82,7 @@
         <dependency>
             <groupId>org.scalatest</groupId>
             <artifactId>scalatest_${scala.binary.version}</artifactId>
-            <version>2.2.4</version>
+            <version>${scalatest.version}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>

http://git-wip-us.apache.org/repos/asf/kudu/blob/15e33c12/java/pom.xml
----------------------------------------------------------------------
diff --git a/java/pom.xml b/java/pom.xml
index 00dd8bf..5893735 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -59,25 +59,26 @@
 
         <!-- Library dependencies -->
         <async.version>1.4.1</async.version>
-        <commons-io.version>2.4</commons-io.version>
-        <guava.version>18.0</guava.version>
-        <hadoop.version>2.7.2</hadoop.version>
-        <jsr305.version>3.0.1</jsr305.version>
+        <commons-io.version>2.5</commons-io.version>
+        <guava.version>20.0</guava.version>
+        <hadoop.version>2.8.1</hadoop.version>
+        <jsr305.version>3.0.2</jsr305.version>
         <hamcrest-core.version>1.3</hamcrest-core.version>
-        <junit.version>4.11</junit.version>
+        <junit.version>4.12</junit.version>
         <log4j.version>1.2.17</log4j.version>
-        <mockito-core.version>1.9.0</mockito-core.version>
+        <mockito-core.version>2.8.47</mockito-core.version>
         <murmur.version>1.0.0</murmur.version>
-        <netty.version>3.10.5.Final</netty.version>
+        <netty.version>3.10.6.Final</netty.version>
         <protobuf.version>3.3.0</protobuf.version>
-        <slf4j.version>1.7.12</slf4j.version>
+        <slf4j.version>1.7.25</slf4j.version>
         <yetus.version>0.4.0</yetus.version>
 
         <!-- Scala Library dependencies -->
-        <spark1.version>1.6.1</spark1.version>
-        <spark2.version>2.0.1</spark2.version>
-        <scala-2.10.version>2.10.4</scala-2.10.version>
-        <scala-2.11.version>2.11.6</scala-2.11.version>
+        <spark1.version>1.6.3</spark1.version>
+        <spark2.version>2.1.1</spark2.version>
+        <scala-2.10.version>2.10.6</scala-2.10.version>
+        <scala-2.11.version>2.11.8</scala-2.11.version>
+        <scalatest.version>3.0.3</scalatest.version>
 
         <!-- Misc variables -->
         <testdata.dir>target/testdata</testdata.dir>