From c3b095b43f2c86078aa7123f35764766636f95d7 Mon Sep 17 00:00:00 2001 From: Daniel Stonier <d.stonier@gmail.com> Date: Fri, 20 Feb 2015 23:22:15 +0900 Subject: [PATCH] patch version bump, readying for release. --- .../src/main/java/org/ros/time/NtpTimeProvider.java | 12 ++++++++++-- .../test/java/org/ros/time/NtpTimeProviderTest.java | 7 ++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java b/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java index e0195352..980e6146 100644 --- a/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java +++ b/rosjava/src/main/java/org/ros/time/NtpTimeProvider.java @@ -63,6 +63,7 @@ public class NtpTimeProvider implements TimeProvider { this.scheduledExecutorService = scheduledExecutorService; wallTimeProvider = new WallTimeProvider(); ntpClient = new NTPUDPClient(); + ntpClient.setDefaultTimeout(500); // timeout to 500ms offset = 0; scheduledFuture = null; } @@ -70,12 +71,19 @@ public class NtpTimeProvider implements TimeProvider { /** * Update the current time offset from the configured NTP host. * - * @throws IOException + * @throws IOException : if ntpClient.getTime() fails too often. */ public void updateTime() throws IOException { List<Long> offsets = Lists.newArrayList(); + int failures = 0; for (int i = 0; i < SAMPLE_SIZE; i++) { - offsets.add(computeOffset()); + try { + offsets.add(computeOffset()); + } catch (IOException e) { + if ( ++failures > SAMPLE_SIZE/2 ) { + throw e; + } + } } offset = CollectionMath.median(offsets); log.info(String.format("NTP time offset: %d ms", offset)); diff --git a/rosjava/src/test/java/org/ros/time/NtpTimeProviderTest.java b/rosjava/src/test/java/org/ros/time/NtpTimeProviderTest.java index ea320ab4..2ad7e253 100644 --- a/rosjava/src/test/java/org/ros/time/NtpTimeProviderTest.java +++ b/rosjava/src/test/java/org/ros/time/NtpTimeProviderTest.java @@ -45,7 +45,7 @@ public class NtpTimeProviderTest extends RosTest { nodeMainExecutor.execute(new AbstractNodeMain() { @Override public GraphName getDefaultNodeName() { - return GraphName.of("node"); + return GraphName.of("ntp_time_provider"); } @Override @@ -53,7 +53,6 @@ public class NtpTimeProviderTest extends RosTest { try { ntpTimeProvider.updateTime(); } catch (IOException e) { - System.out.println("Dude"); // Ignored. This is only a sanity check. } ntpTimeProvider.getCurrentTime(); @@ -62,6 +61,8 @@ public class NtpTimeProviderTest extends RosTest { latch.countDown(); } }, nodeConfiguration); - assertTrue(latch.await(1, TimeUnit.SECONDS)); + boolean result = latch.await(10, TimeUnit.SECONDS); + //System.out.println("Latch waiting : " + latch.getCount() + " " + result + " [" + System.currentTimeMillis() + "]"); + assertTrue(result); } } -- GitLab