diff --git a/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java b/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java
index 980e6146b6c31fa49c6a03a6d03aee508e5cfef2..545f61f8c11159cee947ad3b3714ae95938c6901 100644
--- a/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java
+++ b/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java
@@ -44,7 +44,7 @@ public class NtpTimeProvider implements TimeProvider {
   private static final boolean DEBUG = false;
   private static final Log log = LogFactory.getLog(NtpTimeProvider.class);
 
-  private static final int SAMPLE_SIZE = 11;
+  private int sampleSize = 11;
   
   private final InetAddress host;
   private final ScheduledExecutorService scheduledExecutorService;
@@ -76,12 +76,12 @@ public class NtpTimeProvider implements TimeProvider {
   public void updateTime() throws IOException {
     List<Long> offsets = Lists.newArrayList();
     int failures = 0;
-    for (int i = 0; i < SAMPLE_SIZE; i++) {
+    for (int i = 0; i < sampleSize; i++) {
       try { 
     	  offsets.add(computeOffset());
       } catch (IOException e) {
-    	  if ( ++failures > SAMPLE_SIZE/2 ) {
-    		  throw e;
+    	  if (++failures > sampleSize / 2) {
+            throw e;
     	  }
       }
     }
@@ -97,7 +97,9 @@ public class NtpTimeProvider implements TimeProvider {
     try {
       time = ntpClient.getTime(host);
     } catch (IOException e) {
-      log.error("Failed to read time from NTP server: " + host.getHostName(), e);
+      if (DEBUG) {
+        log.error("Failed to read time from NTP server: " + host.getHostName(), e);
+      }
       throw e;
     }
     time.computeDetails();
@@ -147,4 +149,14 @@ public class NtpTimeProvider implements TimeProvider {
     Time currentTime = wallTimeProvider.getCurrentTime();
     return currentTime.add(Duration.fromMillis(offset));
   }
+
+  /**
+   * Sets how many samples will be taken from the NTP server
+   * when calling {@link #updateTime()}.
+   * @param sampleSize Number of samples to take. It has to be > 0.
+   */
+  public void setUpdateTimeSampleSize(int sampleSize) {
+    Preconditions.checkArgument(sampleSize > 0);
+    this.sampleSize = sampleSize;
+  }
 }