diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/CompositeTracer.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/CompositeTracer.java index 07d1310e91b..318fdce26d4 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/CompositeTracer.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/CompositeTracer.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner; +import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; + import com.google.api.core.InternalApi; import com.google.api.gax.tracing.ApiTracer; import com.google.api.gax.tracing.BaseApiTracer; @@ -23,7 +25,6 @@ import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; -import org.threeten.bp.Duration; @InternalApi public class CompositeTracer extends BaseApiTracer { @@ -108,10 +109,8 @@ public void attemptCancelled() { } @Override - public void attemptFailed(Throwable error, Duration delay) { - for (ApiTracer child : children) { - child.attemptFailed(error, delay); - } + public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) { + attemptFailedDuration(error, toJavaTimeDuration(delay)); } @Override diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/CompositeTracerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/CompositeTracerTest.java index dfb7b252268..e300dd6e793 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/CompositeTracerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/CompositeTracerTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -151,10 +152,15 @@ public void testAttemptFailed() { RuntimeException error = new RuntimeException(); Duration delay = Duration.ofMillis(10); compositeTracer.attemptFailed(error, delay); - verify(child1, times(1)).attemptFailed(error, delay); - verify(child2, times(1)).attemptFailed(error, delay); - verify(child3, times(1)).attemptFailed(error, delay); - verify(child4, times(1)).attemptFailed(error, delay); + + // CompositeTracer's attemptFailed calls the attemptFailedDuration method. This was part of + // the java.time migration effort to move away from threetenbp. Verify that each child tracer + // calls attemptFailedDuration once. + java.time.Duration delayDuration = toJavaTimeDuration(delay); + verify(child1, times(1)).attemptFailedDuration(error, delayDuration); + verify(child2, times(1)).attemptFailedDuration(error, delayDuration); + verify(child3, times(1)).attemptFailedDuration(error, delayDuration); + verify(child4, times(1)).attemptFailedDuration(error, delayDuration); } @Test