From 5a8555224a5553300fc44fb95c9b9586e635f481 Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Thu, 16 Jul 2026 18:01:31 +0000 Subject: [PATCH 1/3] testing automation tool on gax --- .../com/google/api/gax/batching/AccumulatingBatchReceiver.java | 3 +++ .../src/main/java/com/google/api/gax/batching/BatchEntry.java | 3 +++ .../src/main/java/com/google/api/gax/batching/BatchMerger.java | 3 +++ .../main/java/com/google/api/gax/batching/BatchResource.java | 3 +++ .../gax/src/main/java/com/google/api/gax/batching/Batcher.java | 3 +++ .../src/main/java/com/google/api/gax/batching/BatcherImpl.java | 3 +++ .../main/java/com/google/api/gax/batching/BatcherStats.java | 3 +++ .../java/com/google/api/gax/batching/BatchingCallSettings.java | 3 +++ .../java/com/google/api/gax/batching/BatchingDescriptor.java | 3 +++ .../java/com/google/api/gax/batching/BatchingException.java | 3 +++ .../com/google/api/gax/batching/BatchingFlowController.java | 3 +++ .../com/google/api/gax/batching/BatchingRequestBuilder.java | 3 +++ .../java/com/google/api/gax/batching/BatchingSettings.java | 3 +++ .../java/com/google/api/gax/batching/BatchingThreshold.java | 3 +++ .../java/com/google/api/gax/batching/BatchingThresholds.java | 3 +++ .../java/com/google/api/gax/batching/BlockingSemaphore.java | 3 +++ .../java/com/google/api/gax/batching/DefaultBatchResource.java | 3 +++ .../google/api/gax/batching/DynamicFlowControlSettings.java | 3 +++ .../main/java/com/google/api/gax/batching/ElementCounter.java | 3 +++ .../com/google/api/gax/batching/FlowControlEventStats.java | 3 +++ .../java/com/google/api/gax/batching/FlowControlSettings.java | 3 +++ .../main/java/com/google/api/gax/batching/FlowController.java | 3 +++ .../java/com/google/api/gax/batching/NonBlockingSemaphore.java | 3 +++ .../java/com/google/api/gax/batching/NumericThreshold.java | 3 +++ .../main/java/com/google/api/gax/batching/PartitionKey.java | 3 +++ .../main/java/com/google/api/gax/batching/RequestBuilder.java | 3 +++ .../src/main/java/com/google/api/gax/batching/Semaphore64.java | 3 +++ .../com/google/api/gax/batching/ThresholdBatchReceiver.java | 3 +++ .../java/com/google/api/gax/batching/ThresholdBatcher.java | 3 +++ .../main/java/com/google/api/gax/core/BackgroundResource.java | 3 +++ .../com/google/api/gax/core/BackgroundResourceAggregation.java | 3 +++ .../java/com/google/api/gax/core/BaseBackgroundResource.java | 3 +++ .../main/java/com/google/api/gax/core/CredentialsProvider.java | 3 +++ .../src/main/java/com/google/api/gax/core/Distribution.java | 3 +++ .../com/google/api/gax/core/ExecutorAsBackgroundResource.java | 3 +++ .../main/java/com/google/api/gax/core/ExecutorProvider.java | 3 +++ .../java/com/google/api/gax/core/FixedCredentialsProvider.java | 3 +++ .../java/com/google/api/gax/core/FixedExecutorProvider.java | 3 +++ .../src/main/java/com/google/api/gax/core/GaxProperties.java | 3 +++ .../com/google/api/gax/core/GoogleCredentialsProvider.java | 3 +++ .../com/google/api/gax/core/InstantiatingExecutorProvider.java | 3 +++ .../java/com/google/api/gax/core/NoCredentialsProvider.java | 3 +++ .../java/com/google/api/gax/core/ResourceCloseException.java | 3 +++ .../gax/src/main/java/com/google/api/gax/logging/LogData.java | 3 +++ .../main/java/com/google/api/gax/logging/LoggerProvider.java | 3 +++ .../src/main/java/com/google/api/gax/logging/LoggingUtils.java | 3 +++ .../java/com/google/api/gax/logging/Slf4jLoggingHelpers.java | 3 +++ .../src/main/java/com/google/api/gax/logging/Slf4jUtils.java | 3 +++ .../java/com/google/api/gax/longrunning/OperationFuture.java | 3 +++ .../com/google/api/gax/longrunning/OperationFutureImpl.java | 3 +++ .../java/com/google/api/gax/longrunning/OperationFutures.java | 3 +++ .../api/gax/longrunning/OperationResponsePollAlgorithm.java | 3 +++ .../java/com/google/api/gax/longrunning/OperationSnapshot.java | 3 +++ .../api/gax/longrunning/OperationTimedPollAlgorithm.java | 3 +++ .../google/api/gax/nativeimage/GoogleJsonClientFeature.java | 3 +++ .../java/com/google/api/gax/nativeimage/NativeImageUtils.java | 3 +++ .../java/com/google/api/gax/nativeimage/OpenCensusFeature.java | 3 +++ .../com/google/api/gax/paging/AbstractFixedSizeCollection.java | 3 +++ .../src/main/java/com/google/api/gax/paging/AbstractPage.java | 3 +++ .../com/google/api/gax/paging/AbstractPagedListResponse.java | 3 +++ .../gax/src/main/java/com/google/api/gax/paging/AsyncPage.java | 3 +++ .../java/com/google/api/gax/paging/FixedSizeCollection.java | 3 +++ .../gax/src/main/java/com/google/api/gax/paging/Page.java | 3 +++ .../main/java/com/google/api/gax/paging/PagedListResponse.java | 3 +++ .../gax/src/main/java/com/google/api/gax/paging/Pages.java | 3 +++ .../com/google/api/gax/retrying/BasicResultRetryAlgorithm.java | 3 +++ .../java/com/google/api/gax/retrying/BasicRetryingFuture.java | 3 +++ .../google/api/gax/retrying/CallbackChainRetryingFuture.java | 3 +++ .../com/google/api/gax/retrying/DirectRetryingExecutor.java | 3 +++ .../com/google/api/gax/retrying/ExponentialPollAlgorithm.java | 3 +++ .../com/google/api/gax/retrying/ExponentialRetryAlgorithm.java | 3 +++ .../java/com/google/api/gax/retrying/NonCancellableFuture.java | 3 +++ .../java/com/google/api/gax/retrying/NoopRetryingContext.java | 3 +++ .../main/java/com/google/api/gax/retrying/PollException.java | 3 +++ .../java/com/google/api/gax/retrying/ResultRetryAlgorithm.java | 3 +++ .../api/gax/retrying/ResultRetryAlgorithmWithContext.java | 3 +++ .../main/java/com/google/api/gax/retrying/RetryAlgorithm.java | 3 +++ .../main/java/com/google/api/gax/retrying/RetrySettings.java | 3 +++ .../main/java/com/google/api/gax/retrying/RetryingContext.java | 3 +++ .../java/com/google/api/gax/retrying/RetryingExecutor.java | 3 +++ .../google/api/gax/retrying/RetryingExecutorWithContext.java | 3 +++ .../main/java/com/google/api/gax/retrying/RetryingFuture.java | 3 +++ .../com/google/api/gax/retrying/ScheduledRetryingExecutor.java | 3 +++ .../api/gax/retrying/ServerStreamingAttemptException.java | 3 +++ .../api/gax/retrying/SimpleStreamResumptionStrategy.java | 3 +++ .../com/google/api/gax/retrying/StreamResumptionStrategy.java | 3 +++ .../com/google/api/gax/retrying/StreamingRetryAlgorithm.java | 3 +++ .../java/com/google/api/gax/retrying/TimedAttemptSettings.java | 3 +++ .../java/com/google/api/gax/retrying/TimedRetryAlgorithm.java | 3 +++ .../api/gax/retrying/TimedRetryAlgorithmWithContext.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/AbortedException.java | 3 +++ .../java/com/google/api/gax/rpc/AlreadyExistsException.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/ApiCallContext.java | 3 +++ .../java/com/google/api/gax/rpc/ApiClientHeaderProvider.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/ApiException.java | 3 +++ .../main/java/com/google/api/gax/rpc/ApiExceptionFactory.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/ApiExceptions.java | 3 +++ .../java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java | 3 +++ .../main/java/com/google/api/gax/rpc/ApiStreamObserver.java | 3 +++ .../java/com/google/api/gax/rpc/ApiStreamObserverAdapter.java | 3 +++ .../main/java/com/google/api/gax/rpc/AsyncTaskException.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/AttemptCallable.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/Batch.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/BatchExecutor.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/BatchedFuture.java | 3 +++ .../main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/BatcherFactory.java | 3 +++ .../main/java/com/google/api/gax/rpc/BatchingCallSettings.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/BatchingCallable.java | 3 +++ .../main/java/com/google/api/gax/rpc/BatchingDescriptor.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/BidiStream.java | 3 +++ .../main/java/com/google/api/gax/rpc/BidiStreamObserver.java | 3 +++ .../java/com/google/api/gax/rpc/BidiStreamingCallable.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/Callables.java | 3 +++ .../main/java/com/google/api/gax/rpc/CancelledException.java | 3 +++ .../java/com/google/api/gax/rpc/CheckingAttemptCallable.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/ClientContext.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/ClientSettings.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/ClientStream.java | 3 +++ .../java/com/google/api/gax/rpc/ClientStreamReadyObserver.java | 3 +++ .../java/com/google/api/gax/rpc/ClientStreamingCallable.java | 3 +++ .../main/java/com/google/api/gax/rpc/DataLossException.java | 3 +++ .../java/com/google/api/gax/rpc/DeadlineExceededException.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/EndpointContext.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java | 3 +++ .../com/google/api/gax/rpc/FailedPreconditionException.java | 3 +++ .../main/java/com/google/api/gax/rpc/FirstElementCallable.java | 3 +++ .../com/google/api/gax/rpc/FirstElementResponseObserver.java | 3 +++ .../main/java/com/google/api/gax/rpc/FixedHeaderProvider.java | 3 +++ .../com/google/api/gax/rpc/FixedTransportChannelProvider.java | 3 +++ .../java/com/google/api/gax/rpc/FixedWatchdogProvider.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/HeaderProvider.java | 3 +++ .../com/google/api/gax/rpc/InstantiatingWatchdogProvider.java | 3 +++ .../main/java/com/google/api/gax/rpc/InternalException.java | 3 +++ .../java/com/google/api/gax/rpc/InvalidArgumentException.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/LibraryMetadata.java | 3 +++ .../main/java/com/google/api/gax/rpc/LongRunningClient.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java | 3 +++ .../main/java/com/google/api/gax/rpc/NotFoundException.java | 3 +++ .../java/com/google/api/gax/rpc/OperationCallSettings.java | 3 +++ .../main/java/com/google/api/gax/rpc/OperationCallable.java | 3 +++ .../java/com/google/api/gax/rpc/OperationCallableImpl.java | 3 +++ .../java/com/google/api/gax/rpc/OperationCheckingCallable.java | 3 +++ .../main/java/com/google/api/gax/rpc/OutOfRangeException.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/PageContext.java | 3 +++ .../main/java/com/google/api/gax/rpc/PagedCallSettings.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/PagedCallable.java | 3 +++ .../main/java/com/google/api/gax/rpc/PagedListDescriptor.java | 3 +++ .../java/com/google/api/gax/rpc/PagedListResponseFactory.java | 3 +++ .../java/com/google/api/gax/rpc/PermissionDeniedException.java | 3 +++ .../com/google/api/gax/rpc/ProtocolBufferParsingException.java | 3 +++ .../java/com/google/api/gax/rpc/QueuingResponseObserver.java | 3 +++ .../main/java/com/google/api/gax/rpc/RecheckingCallable.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/RequestMutator.java | 3 +++ .../main/java/com/google/api/gax/rpc/RequestParamsBuilder.java | 3 +++ .../main/java/com/google/api/gax/rpc/RequestParamsEncoder.java | 3 +++ .../java/com/google/api/gax/rpc/RequestParamsExtractor.java | 3 +++ .../java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java | 3 +++ .../com/google/api/gax/rpc/ResourceExhaustedException.java | 3 +++ .../java/com/google/api/gax/rpc/ResourceNameExtractor.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/ResponseObserver.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/RetryingCallable.java | 3 +++ .../google/api/gax/rpc/RetryingServerStreamingCallable.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/ServerStream.java | 3 +++ .../main/java/com/google/api/gax/rpc/ServerStreamIterator.java | 3 +++ .../com/google/api/gax/rpc/ServerStreamingAttemptCallable.java | 3 +++ .../com/google/api/gax/rpc/ServerStreamingCallSettings.java | 3 +++ .../java/com/google/api/gax/rpc/ServerStreamingCallable.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/SpoolingCallable.java | 3 +++ .../java/com/google/api/gax/rpc/SpoolingResponseObserver.java | 3 +++ .../com/google/api/gax/rpc/StateCheckingResponseObserver.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/StatusCode.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/StreamController.java | 3 +++ .../java/com/google/api/gax/rpc/StreamingCallSettings.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/StubSettings.java | 3 +++ .../java/com/google/api/gax/rpc/TranslatingUnaryCallable.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/TransportChannel.java | 3 +++ .../java/com/google/api/gax/rpc/TransportChannelProvider.java | 3 +++ .../main/java/com/google/api/gax/rpc/UnaryCallSettings.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/UnaryCallable.java | 3 +++ .../java/com/google/api/gax/rpc/UnauthenticatedException.java | 3 +++ .../main/java/com/google/api/gax/rpc/UnavailableException.java | 3 +++ .../java/com/google/api/gax/rpc/UnimplementedException.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/UnknownException.java | 3 +++ .../gax/src/main/java/com/google/api/gax/rpc/Watchdog.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/WatchdogProvider.java | 3 +++ .../google/api/gax/rpc/WatchdogServerStreamingCallable.java | 3 +++ .../java/com/google/api/gax/rpc/WatchdogTimeoutException.java | 3 +++ .../com/google/api/gax/rpc/internal/ApiCallContextOptions.java | 3 +++ .../com/google/api/gax/rpc/internal/EnvironmentProvider.java | 3 +++ .../src/main/java/com/google/api/gax/rpc/internal/Headers.java | 3 +++ .../api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java | 3 +++ .../com/google/api/gax/rpc/mtls/CertificateBasedAccess.java | 3 +++ .../com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java | 3 +++ .../main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java | 3 +++ .../src/main/java/com/google/api/gax/tracing/ApiTracer.java | 3 +++ .../main/java/com/google/api/gax/tracing/ApiTracerContext.java | 3 +++ .../main/java/com/google/api/gax/tracing/ApiTracerFactory.java | 3 +++ .../main/java/com/google/api/gax/tracing/BaseApiTracer.java | 3 +++ .../java/com/google/api/gax/tracing/BaseApiTracerFactory.java | 3 +++ .../main/java/com/google/api/gax/tracing/CompositeTracer.java | 3 +++ .../com/google/api/gax/tracing/CompositeTracerFactory.java | 3 +++ .../main/java/com/google/api/gax/tracing/ErrorTypeUtil.java | 3 +++ .../google/api/gax/tracing/GoldenSignalsMetricsRecorder.java | 3 +++ .../main/java/com/google/api/gax/tracing/LoggingTracer.java | 3 +++ .../java/com/google/api/gax/tracing/LoggingTracerFactory.java | 3 +++ .../src/main/java/com/google/api/gax/tracing/MethodName.java | 3 +++ .../main/java/com/google/api/gax/tracing/MetricsRecorder.java | 3 +++ .../main/java/com/google/api/gax/tracing/MetricsTracer.java | 3 +++ .../java/com/google/api/gax/tracing/MetricsTracerFactory.java | 3 +++ .../com/google/api/gax/tracing/ObservabilityAttributes.java | 3 +++ .../java/com/google/api/gax/tracing/ObservabilityUtils.java | 3 +++ .../google/api/gax/tracing/OpenTelemetryMetricsFactory.java | 3 +++ .../google/api/gax/tracing/OpenTelemetryMetricsRecorder.java | 3 +++ .../com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java | 3 +++ .../google/api/gax/tracing/OpenTelemetryTracingFactory.java | 3 +++ .../com/google/api/gax/tracing/OpenTelemetryTracingTracer.java | 3 +++ .../main/java/com/google/api/gax/tracing/OpencensusTracer.java | 3 +++ .../com/google/api/gax/tracing/OpencensusTracerFactory.java | 3 +++ .../gax/src/main/java/com/google/api/gax/tracing/SpanName.java | 3 +++ .../main/java/com/google/api/gax/tracing/TraceFinisher.java | 3 +++ .../com/google/api/gax/tracing/TracedBatchingCallable.java | 3 +++ .../java/com/google/api/gax/tracing/TracedBidiCallable.java | 3 +++ .../google/api/gax/tracing/TracedClientStreamingCallable.java | 3 +++ .../com/google/api/gax/tracing/TracedOperationCallable.java | 3 +++ .../google/api/gax/tracing/TracedOperationInitialCallable.java | 3 +++ .../com/google/api/gax/tracing/TracedResponseObserver.java | 3 +++ .../google/api/gax/tracing/TracedServerStreamingCallable.java | 3 +++ .../java/com/google/api/gax/tracing/TracedUnaryCallable.java | 3 +++ .../main/java/com/google/api/gax/util/TimeConversionUtils.java | 3 +++ 230 files changed, 690 insertions(+) diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java index 3e6e47013db6..41e75f493dcb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; /** A simple ThresholdBatchReceiver that just accumulates batches. */ +@NullMarked public final class AccumulatingBatchReceiver implements ThresholdBatchReceiver { private final ConcurrentLinkedQueue batches = new ConcurrentLinkedQueue<>(); private final ApiFuture retFuture; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java index 163eae9fd6fa..18e8f354a09c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.core.SettableApiFuture; import com.google.auto.value.AutoValue; @@ -42,6 +44,7 @@ * @param The type of each individual element to be batched. * @param The type of the result for each individual element. */ +@NullMarked @InternalApi("For google-cloud-java client use only.") @AutoValue public abstract class BatchEntry { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchMerger.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchMerger.java index 2d8005307bf1..3cd207a6afde 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchMerger.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchMerger.java @@ -29,6 +29,9 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + +@NullMarked public interface BatchMerger { void merge(B batch, B newBatch); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java index 91cd70c0d473..5cad91187cf9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -36,6 +38,7 @@ * other things to determine if adding a new element needs to be flow controlled or if the current * batch needs to be flushed. */ +@NullMarked @InternalApi("For google-cloud-java client use only.") public interface BatchResource { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java index 6f9f87890546..716e942b4789 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.rpc.ApiCallContext; @@ -48,6 +50,7 @@ * @param The type of each individual element to be batched. * @param The type of the result for each individual element. */ +@NullMarked @InternalExtensionOnly public interface Batcher extends AutoCloseable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java index 96be0ffbf9b5..fd392a499d03 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFuture; @@ -78,6 +80,7 @@ * @param The type of the request that will contain the accumulated elements. * @param The type of the response that will unpack into individual element results. */ +@NullMarked @InternalApi("For google-cloud-java client use only") public class BatcherImpl implements Batcher { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java index 20b0f95954ae..31b165f1f792 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.StatusCode.Code; import com.google.common.base.Joiner; @@ -45,6 +47,7 @@ * provides the count of individual exception failure and count of each failed {@link Code} occurred * in the batching process. */ +@NullMarked class BatcherStats { private final Map requestExceptionCounts = new HashMap<>(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java index f7a25ae77fcc..c0943d2248f6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.StatusCode; @@ -63,6 +65,7 @@ * @param The type of the request that will contain the accumulated elements. * @param The type of the response that will unpack into individual element results. */ +@NullMarked public final class BatchingCallSettings extends UnaryCallSettings { private final BatchingDescriptor diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java index 41861c79035b..0980b880f69d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.List; @@ -79,6 +81,7 @@ * @param The type of the request that will contain the accumulated elements * @param The type of the response that will be unpacked into individual element results */ +@NullMarked @InternalApi("For google-cloud-java client use only.") public interface BatchingDescriptor { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingException.java index 470c659d0d04..ed773cbd4960 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + /** Represents exception occurred during batching. */ +@NullMarked public final class BatchingException extends RuntimeException { BatchingException(String message) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java index 4252f7594157..64ef58374acb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.batching.FlowController.FlowControlException; import com.google.common.base.Preconditions; import com.google.common.primitives.Ints; /** Wraps a {@link FlowController} for use by batching. */ +@NullMarked public class BatchingFlowController { private final FlowController flowController; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java index 448e15c5b6cf..d10b6c2e6189 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -40,6 +42,7 @@ * @param The type of each individual element to be batched. * @param The type of the request that will contain the accumulated elements. */ +@NullMarked @InternalApi("For google-cloud-java client use only.") public interface BatchingRequestBuilder { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java index 7507f6c28407..c8b11892be0f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -92,6 +94,7 @@ * can occur if messages are created and added to batching faster than they can be processed. The * flow control behavior is controlled using FlowControlSettings. */ +@NullMarked @AutoValue public abstract class BatchingSettings { /** Get the element count threshold to use for batching. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThreshold.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThreshold.java index 02ceabdb1207..6a8ab4727bd5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThreshold.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThreshold.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + /** * The interface representing a threshold to be used in ThresholdBatcher. Thresholds do not need to * be thread-safe if they are only used inside ThresholdBatcher. */ +@NullMarked public interface BatchingThreshold { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java index 28409b00b79c..991409a798e7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.common.collect.ImmutableList; import java.util.List; /** Factory methods for general-purpose batching thresholds. */ +@NullMarked public final class BatchingThresholds { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java index 0271f7e8a3e3..484ddea78d45 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java @@ -30,9 +30,12 @@ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; /** A {@link Semaphore64} that blocks until permits become available. */ +@NullMarked class BlockingSemaphore implements Semaphore64 { private long availablePermits; private long limit; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java index e5ce99960a9c..a045bd441891 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; /** * The default implementation of {@link BatchResource} which tracks the elementCount and byteCount. */ +@NullMarked @AutoValue abstract class DefaultBatchResource implements BatchResource { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java index 4989f7213e00..b4c95a4212ba 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; @@ -36,6 +38,7 @@ import javax.annotation.Nullable; /** Settings for dynamic flow control */ +@NullMarked @AutoValue @InternalApi("For google-cloud-java client use only") public abstract class DynamicFlowControlSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ElementCounter.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ElementCounter.java index 40c271699b72..838c0c8d6c1b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ElementCounter.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ElementCounter.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + /** * Interface representing an object that provides a numerical count given an object of the * parameterized type. */ +@NullMarked public interface ElementCounter { /** Provides the numerical count associated with the given object. */ long count(E element); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java index 005b2bceddb7..bff830e65638 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.api.core.InternalApi; @@ -59,6 +61,7 @@ * } * } */ +@NullMarked @InternalApi("For google-cloud-java client use only") public class FlowControlEventStats { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java index b1634c2f6518..dcf09df2efe0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.batching.FlowController.FlowControlException; import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; @@ -36,6 +38,7 @@ import javax.annotation.Nullable; /** Settings for {@link FlowController}. */ +@NullMarked @AutoValue public abstract class FlowControlSettings { public static FlowControlSettings getDefaultInstance() { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java index 00bf6988da08..9f73224d2829 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowControlEventStats.FlowControlEvent; import com.google.common.base.Preconditions; @@ -37,6 +39,7 @@ import javax.annotation.Nullable; /** Provides flow control capability. */ +@NullMarked public class FlowController { /** Base exception that signals a flow control state. */ public abstract static class FlowControlException extends Exception { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java index 126d1bb7bced..951a9239e960 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java @@ -30,10 +30,13 @@ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; import java.util.concurrent.atomic.AtomicLong; /** A {@link Semaphore64} that immediately returns with failure if permits are not available. */ +@NullMarked class NonBlockingSemaphore implements Semaphore64 { private AtomicLong acquiredPermits; private AtomicLong limit; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java index 3012873ce9a1..815cc1db87b7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; /** A threshold which accumulates a count based on the provided ElementCounter. */ +@NullMarked public final class NumericThreshold implements BatchingThreshold { private final long threshold; private final ElementCounter extractor; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java index ad1ee483a138..5ff099787f31 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java @@ -30,8 +30,11 @@ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.common.collect.ImmutableList; +@NullMarked public final class PartitionKey { private final ImmutableList keys; private final int hash; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/RequestBuilder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/RequestBuilder.java index 1371069a82da..7b0e19fcc289 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/RequestBuilder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/RequestBuilder.java @@ -29,6 +29,9 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + +@NullMarked public interface RequestBuilder { void appendRequest(RequestT request); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Semaphore64.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Semaphore64.java index f0e751846770..7bec44fe9d73 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Semaphore64.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Semaphore64.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + /** * Semaphore64 is similar to {@link java.util.concurrent.Semaphore} but allows up to {@code 2^63-1} * permits. It also allows adding / reducing permits to the original limit and acquire partial @@ -38,6 +40,7 @@ * encouraged to use Java's {@code Semaphore} instead. It is almost certainly faster and less error * prone. */ +@NullMarked interface Semaphore64 { boolean acquire(long permits); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java index 5f655a8b50f9..bb43ad3d6bd1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; /** * Interface representing an object that receives batches from a ThresholdBatcher and takes action * on them. Implementations of ThresholdBatchReceiver should be thread-safe. */ +@NullMarked public interface ThresholdBatchReceiver { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java index b9f3e44aeeec..fc36b88b4545 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.batching; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; @@ -53,6 +55,7 @@ * Queues up elements until either a duration of time has passed or any threshold in a given set of * thresholds is breached, and then delivers the elements in a batch to the consumer. */ +@NullMarked public final class ThresholdBatcher { private class ReleaseResourcesFunction implements ApiFunction { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java index e279c2c03dcc..817f37a8a320 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.TimeUnit; /** * Represents a resource running in the background that needs to be shut down for resources to be * released. */ +@NullMarked public interface BackgroundResource extends AutoCloseable { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java index d168e6186525..49d5a47f234a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import java.util.List; import java.util.concurrent.TimeUnit; /** Treats a collection of background resources as a single background resource. */ +@NullMarked public class BackgroundResourceAggregation implements BackgroundResource { private final List resources; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java index 83c697975815..b9bb72ce0fcf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.TimeUnit; /** A Background resource that does nothing. */ +@NullMarked public class BaseBackgroundResource implements BackgroundResource { @Override diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java index f1db77004808..1abe9abb6efc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.auth.Credentials; import java.io.IOException; /** * Provides an interface to hold and acquire the credentials that will be used to call the service. */ +@NullMarked public interface CredentialsProvider { /** * Gets the credentials which will be used to call the service. If the credentials have not been diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java index 71d17c549684..2c3b84b255f5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.util.concurrent.atomic.AtomicInteger; @@ -40,6 +42,7 @@ * *

Methods may be called concurrently. */ +@NullMarked public class Distribution { private final AtomicLongArray buckets; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java index 4c67eec16549..8855ea01a956 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; @@ -37,6 +39,7 @@ * ExecutorAsBackgroundResource wraps an {@link ExecutorService} so that it can be used as a {@link * BackgroundResource}. */ +@NullMarked public class ExecutorAsBackgroundResource implements BackgroundResource { private final ExecutorService executor; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java index ae8336036687..f45fb06234ea 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.ScheduledExecutorService; /** * Provides an interface to either build a ScheduledExecutorService or provide a fixed * ScheduledExecutorService that will be used to make calls to a service. */ +@NullMarked public interface ExecutorProvider { /** Indicates whether the executor should be closed by the containing client class. */ boolean shouldAutoClose(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java index e95e11304806..e364655712fb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.auth.Credentials; import com.google.auto.value.AutoValue; import javax.annotation.Nullable; /** FixedCredentialsProvider is a CredentialsProvider which always provides the same credentials. */ +@NullMarked @AutoValue public abstract class FixedCredentialsProvider implements CredentialsProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java index 5ed3a87187de..186eb146ab23 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.ScheduledExecutorService; /** FixedExecutorProvider is an ExecutorProvider which always returns the same executor. */ +@NullMarked public final class FixedExecutorProvider implements ExecutorProvider { private final ScheduledExecutorService executor; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java index b76cb6af8643..75ef535e81cf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; @@ -42,6 +44,7 @@ import java.util.jar.JarFile; /** Provides properties of the GAX library. */ +@NullMarked @InternalApi public class GaxProperties { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java index aeb0ac4260a6..1fa4ab995780 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; @@ -48,6 +50,7 @@ * href="https://developers.google.com/identity/protocols/application-default-credentials"> * https://developers.google.com/identity/protocols/application-default-credentials. */ +@NullMarked @AutoValue public abstract class GoogleCredentialsProvider implements CredentialsProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java index 25c8213f0217..4a456f4bd5a8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.auto.value.AutoValue; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -41,6 +43,7 @@ * InstantiatingChannelProvider is an ExecutorProvider which constructs a new * ScheduledExecutorService every time getExecutor() is called. */ +@NullMarked @AutoValue public abstract class InstantiatingExecutorProvider implements ExecutorProvider { private static final Logger LOGGER = diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java index 2817f363d5aa..703b4bb21437 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + import com.google.auth.Credentials; /** NoCredentialsProvider is a CredentialsProvider which always returns null. */ +@NullMarked public final class NoCredentialsProvider implements CredentialsProvider { @Override public Credentials getCredentials() { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ResourceCloseException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ResourceCloseException.java index 5ed9ca885aa7..d7c62680ec8a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ResourceCloseException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ResourceCloseException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.core; +import org.jspecify.annotations.NullMarked; + /** An exception occurs when some background resource is not able to close properly. */ +@NullMarked public class ResourceCloseException extends RuntimeException { private static final long serialVersionUID = -283748743873637484L; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java index 368800dba06b..d353224b2362 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java @@ -30,6 +30,8 @@ package com.google.api.gax.logging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; import com.google.gson.Gson; @@ -37,6 +39,7 @@ import java.util.Map; import javax.annotation.Nullable; +@NullMarked @InternalApi @AutoValue public abstract class LogData { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java index 24745ee01ed4..478f7a9c3bc0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java @@ -30,9 +30,12 @@ package com.google.api.gax.logging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import org.slf4j.Logger; +@NullMarked @InternalApi public class LoggerProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java index f3d504ff59f4..a12b5e75e481 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java @@ -30,9 +30,12 @@ package com.google.api.gax.logging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.Map; +@NullMarked @InternalApi public class LoggingUtils { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java index 2a914f4bf62c..5f9e5294ad14 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java @@ -30,6 +30,8 @@ package com.google.api.gax.logging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.common.base.Strings; import com.google.gson.Gson; @@ -43,6 +45,7 @@ import org.slf4j.event.Level; /** Contains helper methods to log requests and responses */ +@NullMarked @InternalApi class Slf4jLoggingHelpers { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java index e9bce1101db8..a3e3ec58c742 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java @@ -30,6 +30,8 @@ package com.google.api.gax.logging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.Map; import java.util.Map.Entry; @@ -43,6 +45,7 @@ * Contains util methods to get SLF4J logger and log conditionally based SLF4J major version Actual * interaction with SLF4J happens only in this class. */ +@NullMarked @InternalApi class Slf4jUtils { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java index 7c15ff9e43d9..879be9c42dd1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.gax.retrying.RetryingFuture; import java.util.concurrent.ExecutionException; @@ -39,6 +41,7 @@ * *

Implementations are expected to be thread-safe. */ +@NullMarked public interface OperationFuture extends ApiFuture { /** * Returns the value of the name of the operation from the initial operation object returned from diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java index 769ec2adc7d1..75f5847b1eee 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; @@ -50,6 +52,7 @@ * *

This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi public final class OperationFutureImpl implements OperationFuture { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java index 16d167bd37de..ea0a370a4879 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.RetryingFuture; @@ -39,6 +41,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +@NullMarked public class OperationFutures { private OperationFutures() { // Utility class diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java index 00c3389bbd2c..644a1b375ed9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.retrying.ResultRetryAlgorithm; import com.google.api.gax.retrying.TimedAttemptSettings; @@ -36,6 +38,7 @@ * Operation polling algorithm, which keeps retrying until {@link OperationSnapshot#isDone()} is * true. */ +@NullMarked public class OperationResponsePollAlgorithm implements ResultRetryAlgorithm { @Override public TimedAttemptSettings createNextAttempt( diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java index 7f275970ed80..57b885183cf9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.rpc.StatusCode; /** @@ -37,6 +39,7 @@ *

The metadata and response will have a structure defined by the particular long-running * operation that was initiated. */ +@NullMarked public interface OperationSnapshot { /** The name of the operation. This is used for identifying the operation on the server. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java index 933d660dd730..f409cba6cab6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.longrunning; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; import com.google.api.core.NanoClock; @@ -45,6 +47,7 @@ * next polling operation should be executed. If the polling exceeds the total timeout this * algorithm cancels polling. */ +@NullMarked public class OperationTimedPollAlgorithm extends ExponentialRetryAlgorithm { @VisibleForTesting diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java index baa4bac92119..dc4472ad7239 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java @@ -30,11 +30,14 @@ package com.google.api.gax.nativeimage; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.nativeimage.NativeImageUtils.registerClassForReflection; import org.graalvm.nativeimage.hosted.Feature; /** Configures Native Image settings for the Google JSON Client. */ +@NullMarked final class GoogleJsonClientFeature implements Feature { private static final String GOOGLE_API_CLIENT_CLASS = diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java index 603d26e3c5f0..b4934c0b3ba4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java @@ -30,6 +30,8 @@ package com.google.api.gax.nativeimage; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -39,6 +41,7 @@ import org.graalvm.nativeimage.hosted.RuntimeReflection; /** Internal class offering helper methods for registering methods/classes for reflection. */ +@NullMarked @InternalApi public class NativeImageUtils { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java index a32cac4b3202..d1cc54ad1274 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java @@ -30,11 +30,14 @@ package com.google.api.gax.nativeimage; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.nativeimage.NativeImageUtils.registerForReflectiveInstantiation; import org.graalvm.nativeimage.hosted.Feature; /** Registers reflection usage in OpenCensus libraries. */ +@NullMarked final class OpenCensusFeature implements Feature { private static final String TAGS_COMPONENT_CLASS = "io.opencensus.impl.tags.TagsComponentImpl"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java index f843bc2dc956..6f8c883ec4a7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.util.Lists; import com.google.api.pathtemplate.ValidationException; import com.google.common.base.Preconditions; @@ -37,6 +39,7 @@ import java.util.List; /** Partial implementation of {@link FixedSizeCollection}. */ +@NullMarked public abstract class AbstractFixedSizeCollection< RequestT, ResponseT, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java index 805ec226ee30..649720770efe 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFunction; @@ -43,6 +45,7 @@ import java.util.Iterator; /** Partial implementation of {@link AsyncPage}. */ +@NullMarked public abstract class AbstractPage< RequestT, ResponseT, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java index 1d0597d4aca4..b6a90f0f1ca1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; import com.google.common.collect.AbstractIterator; import java.util.Iterator; import java.util.List; /** Partial implementation of {@link com.google.api.gax.paging.PagedListResponse}. */ +@NullMarked public abstract class AbstractPagedListResponse< RequestT, ResponseT, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java index 9f139911c2da..171bda54ab82 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; /** An AsyncPage extends a {@link Page} object with a getNextPageAsync method. */ +@NullMarked public interface AsyncPage extends Page { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/FixedSizeCollection.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/FixedSizeCollection.java index f3a7684e5cc2..a0091230f4e4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/FixedSizeCollection.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/FixedSizeCollection.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + /** * A FixedSizeCollection object wraps multiple API list method responses into a single collection * with a fixed number of elements. @@ -38,6 +40,7 @@ * passed to expandPage(), unless the API has no more elements to return. The FixedSizeCollection * object also provides methods to retrieve additional FixedSizeCollections using the page token. */ +@NullMarked public interface FixedSizeCollection { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java index de1cbc0ab9e2..d3cd1d7744f7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -39,6 +41,7 @@ * object also provides methods to retrieve additional pages using the page token, and to get the * API request and response objects. */ +@NullMarked public interface Page { /** Returns true if there are more pages that can be retrieved from the API. */ boolean hasNextPage(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/PagedListResponse.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/PagedListResponse.java index 551808987378..2ec90dfbd877 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/PagedListResponse.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/PagedListResponse.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + /** * Response for paged results from a list API method * @@ -36,6 +38,7 @@ * tokens can be handled automatically, or by the caller. Results can be accessed on a per-element * or per-page basis. */ +@NullMarked public interface PagedListResponse { /** * Returns an iterable that traverses all of the elements of the underlying data source. The data diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java index fcd8a593227a..b8892c2d6630 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.paging; +import org.jspecify.annotations.NullMarked; + import java.util.Collections; /** Utility class for {@link Page}s. */ +@NullMarked public class Pages { private Pages() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java index b33f131bea34..94355a0883f3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -38,6 +40,7 @@ * * @param attempt response type */ +@NullMarked public class BasicResultRetryAlgorithm implements ResultRetryAlgorithmWithContext { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java index ccf1bfe11c17..bdd15f5a7fd0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java @@ -30,6 +30,8 @@ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -53,6 +55,7 @@ * *

This class is thread-safe. */ +@NullMarked class BasicRetryingFuture extends AbstractFuture implements RetryingFuture { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java index f6714e23b009..f1f2d950757f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -51,6 +53,7 @@ * *

This class is thread-safe. */ +@NullMarked class CallbackChainRetryingFuture extends BasicRetryingFuture { private final ScheduledRetryingExecutor retryingExecutor; private volatile AttemptCompletionListener attemptFutureCompletionListener; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java index 4ad2d27daac1..a0ef6e149b3e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -45,6 +47,7 @@ * * @param response type */ +@NullMarked public class DirectRetryingExecutor implements RetryingExecutorWithContext { private final RetryAlgorithm retryAlgorithm; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java index 5a68da1a5bba..827fefd899fc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiClock; /** @@ -38,6 +40,7 @@ * *

This class is thread-safe. */ +@NullMarked public class ExponentialPollAlgorithm extends ExponentialRetryAlgorithm { /** * Creates a new exponential poll algorithm instance. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java index 6a4a892bd246..7a1fae562725 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiClock; @@ -41,6 +43,7 @@ * *

This class is thread-safe. */ +@NullMarked public class ExponentialRetryAlgorithm implements TimedRetryAlgorithmWithContext { private final RetrySettings globalSettings; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java index 19e3587a4292..3b9837f715ef 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.AbstractApiFuture; import com.google.api.core.InternalApi; @@ -39,6 +41,7 @@ * * @param future response type */ +@NullMarked @InternalApi public final class NonCancellableFuture extends AbstractApiFuture { @Override diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java index 840918ed3145..f506131d02dc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + // TODO(igorbernstein2): Remove this class once RetryingExecutor#createFuture(Callable) is // deprecated and removed. @@ -42,6 +44,7 @@ * Backwards compatibility class to aid in transition to adding operation state to {@link * RetryingFuture} implementations. */ +@NullMarked class NoopRetryingContext implements RetryingContext { public static RetryingContext create() { return new NoopRetryingContext(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/PollException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/PollException.java index 4534e100cea6..c470b307863e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/PollException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/PollException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + /** * {@code PollException} is thrown when polling algorithm exceeds total timeout or total number of * attempts. */ +@NullMarked public class PollException extends RuntimeException { private static final long serialVersionUID = -3666617975087303999L; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java index 53363f37aa84..1fa3d5a64e42 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -36,6 +38,7 @@ * RetryingContext}. Use {@link ResultRetryAlgorithmWithContext} instead of this interface when * possible. */ +@NullMarked public interface ResultRetryAlgorithm { /** * Same as {@link ResultRetryAlgorithmWithContext#createNextAttempt(RetryingContext, Throwable, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java index 2a347b13a7a8..970ed7308d21 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -49,6 +51,7 @@ * * @param response type */ +@NullMarked public interface ResultRetryAlgorithmWithContext extends ResultRetryAlgorithm { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java index 16d60d148d38..34ea78da3bf5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.BetaApi; @@ -42,6 +44,7 @@ * * @param response type */ +@NullMarked public class RetryAlgorithm { private final ResultRetryAlgorithm resultAlgorithm; private final TimedRetryAlgorithm timedAlgorithm; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java index 2bc0b91fc9eb..f6c9f60cf64b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -76,6 +78,7 @@ * configuration are the default values for the RetrySettings class if there are no RPC specific * configurations from the Service Team. */ +@NullMarked @AutoValue public abstract class RetrySettings implements Serializable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java index 6db53c4e25fa..9fbf214683b4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.gax.rpc.StatusCode; import com.google.api.gax.tracing.ApiTracer; @@ -41,6 +43,7 @@ * *

It provides state to individual {@link RetryingFuture}s via the {@link RetryingExecutor}. */ +@NullMarked @BetaApi("The surface for passing per operation state is not yet stable") public interface RetryingContext { /** Returns the {@link ApiTracer} associated with the current operation. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java index e8bab994a3d8..58d5a33675f4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import java.util.concurrent.Callable; @@ -45,6 +47,7 @@ * * @param response type */ +@NullMarked public interface RetryingExecutor { /** * Creates the {@link RetryingFuture}, which is a facade, returned to the client code to wait for diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java index f19ba5607993..89bef09d5709 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import java.util.concurrent.Callable; @@ -41,6 +43,7 @@ */ // TODO(igorbernstein2): Consider replacing this with a default implementation in RetryingExecutor // once support for java 7 is dropped +@NullMarked @BetaApi("The surface for per invocation state is unstable and will probably change in the future") @InternalExtensionOnly public interface RetryingExecutorWithContext extends RetryingExecutor { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java index 86b16eac6ee0..9b7ec7f76b12 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import java.util.concurrent.Callable; @@ -40,6 +42,7 @@ * * @param response type */ +@NullMarked public interface RetryingFuture extends ApiFuture { /** * Sets the attempt in a form of a future. This future represents a concrete retry attempt, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java index c796ebd0900e..8aa46a761c8e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -54,6 +56,7 @@ * * @param response type */ +@NullMarked public class ScheduledRetryingExecutor implements RetryingExecutorWithContext { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java index b54776f0b1bd..02aaa1739e90 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -38,6 +40,7 @@ * *

For internal use only - public for technical reasons. */ +@NullMarked @InternalApi public class ServerStreamingAttemptException extends RuntimeException { private final boolean canResume; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java index 7c5902129d64..0cda57e60305 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; /** * Simplest implementation of a {@link StreamResumptionStrategy} which returns the initial request * for unstarted streams. */ +@NullMarked public final class SimpleStreamResumptionStrategy implements StreamResumptionStrategy { private boolean seenFirstResponse; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java index 227b4b0ce4b9..e49b7c7fa6ce 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -38,6 +40,7 @@ * *

Implementations don't have to be threadsafe because all of the calls will be serialized. */ +@NullMarked public interface StreamResumptionStrategy { /** Creates a new instance of this StreamResumptionStrategy without accumulated state */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java index dc147f4c7e3c..825933ff3983 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.concurrent.CancellationException; @@ -41,6 +43,7 @@ * *

Internal use only - public for technical reasons. */ +@NullMarked @InternalApi("For internal use only") public final class StreamingRetryAlgorithm extends RetryAlgorithm { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java index 7b6a09b68513..2a3314d77c95 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -37,6 +39,7 @@ import com.google.auto.value.AutoValue; /** Timed attempt execution settings. Defines time-specific properties of a retry attempt. */ +@NullMarked @AutoValue public abstract class TimedAttemptSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java index 5cae22b20477..db34594b7bb9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java @@ -30,6 +30,8 @@ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -37,6 +39,7 @@ * RetryingContext}. Use {@link TimedRetryAlgorithmWithContext} instead of this interface when * possible. */ +@NullMarked public interface TimedRetryAlgorithm { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java index 72efda7f4445..91e7d30cf823 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java @@ -30,6 +30,8 @@ package com.google.api.gax.retrying; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -49,6 +51,7 @@ * *

Implementations of this interface must be be thread-save. */ +@NullMarked public interface TimedRetryAlgorithmWithContext extends TimedRetryAlgorithm { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AbortedException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AbortedException.java index 57b1b222c1be..e597facd29d7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AbortedException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AbortedException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the operation was aborted, typically due to a concurrency issue like * sequencer check failures, transaction aborts, etc. */ +@NullMarked public class AbortedException extends ApiException { public AbortedException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AlreadyExistsException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AlreadyExistsException.java index 91a61bb89b13..d758d7bf048c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AlreadyExistsException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AlreadyExistsException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when some entity that we attempted to create (e.g., file or directory) already * exists. */ +@NullMarked public class AlreadyExistsException extends ApiException { public AlreadyExistsException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java index 09af475e4833..ca20e3381892 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import com.google.api.core.ObsoleteApi; @@ -54,6 +56,7 @@ * *

This is transport specific and each transport has an implementation with its own options. */ +@NullMarked @InternalExtensionOnly public interface ApiCallContext extends RetryingContext { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java index 6421181a1ff5..0034727abe5c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.core.GaxProperties; import com.google.common.collect.ImmutableMap; import java.io.Serializable; @@ -40,6 +42,7 @@ * Implementation of HeaderProvider that provides headers describing the API client library making * API calls. */ +@NullMarked public class ApiClientHeaderProvider implements HeaderProvider, Serializable { private static final long serialVersionUID = -8876627296793342119L; static final String QUOTA_PROJECT_ID_HEADER_KEY = "x-goog-user-project"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java index be8d26811e26..3edc230f5978 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; import java.util.Map; /** Represents an exception thrown during an RPC call. */ +@NullMarked public class ApiException extends RuntimeException { private static final long serialVersionUID = -4375114339928877996L; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java index 2cc836b29579..35b1392f7a1b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * A factory class that returns the corresponding type of exception class from the given status * code. */ +@NullMarked public class ApiExceptionFactory { private ApiExceptionFactory() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java index 1559988e0cb5..d09120a593f6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.UncheckedExecutionException; /** A utility class for working with {@link ApiException}. */ +@NullMarked public class ApiExceptions { private ApiExceptions() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java index 688fc32cd14b..18a5fa85d952 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.retrying.BasicResultRetryAlgorithm; import com.google.api.gax.retrying.RetryingContext; /* Package-private for internal use. */ +@NullMarked class ApiResultRetryAlgorithm extends BasicResultRetryAlgorithm { /** Returns true if previousThrowable is an {@link ApiException} that is retryable. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserver.java index 6dd12c3119b2..776be7412634 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Receives notifications from an observable stream of messages. * @@ -50,6 +52,7 @@ *

This interface is a fork of io.grpc.stub.StreamObserver to enable shadowing of Guava, and also * to allow for a transport-agnostic interface that doesn't depend on gRPC. */ +@NullMarked public interface ApiStreamObserver { /** * Receives a value from the stream. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserverAdapter.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserverAdapter.java index 7df0e58b8807..c8415e92f9c6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserverAdapter.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiStreamObserverAdapter.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Backwards compatibility bridge from the new {@link ResponseObserver} api to the old {@link * ApiStreamObserver} api. @@ -38,6 +40,7 @@ * @param The type of the response. * @deprecated Use ResponseObserver directly */ +@NullMarked @Deprecated class ApiStreamObserverAdapter extends StateCheckingResponseObserver { private final ApiStreamObserver delegate; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AsyncTaskException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AsyncTaskException.java index ef3afb1d2887..6e91f2d237b8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AsyncTaskException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AsyncTaskException.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * This exception is used to preserve the caller's stacktrace when invoking an async task in a sync * context. It will be added as a suppressed exception when propagating the async exception. This * allows callers to catch ApiException thrown in an async operation, while still maintaining the * call site. */ +@NullMarked public class AsyncTaskException extends RuntimeException { AsyncTaskException() { super("Asynchronous task failed"); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java index 1fb461c5bbbc..e1076a053fa1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.NonCancellableFuture; @@ -45,6 +47,7 @@ * @param request type * @param response type */ +@NullMarked class AttemptCallable implements Callable { private final UnaryCallable callable; private final RequestT request; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java index b23069e89cc8..e836cfac5456 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.batching.BatchMerger; import com.google.api.gax.batching.ElementCounter; @@ -48,6 +50,7 @@ * *

This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi public class Batch { private final List> requestIssuerList; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java index c8d6405caf39..62436aa0d4fd 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFuture; @@ -50,6 +52,7 @@ * *

Package-private for internal use. */ +@NullMarked class BatchExecutor implements ThresholdBatchReceiver> { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java index 6f91230f8867..b8113d5c8c04 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.AbstractApiFuture; import com.google.api.core.InternalApi; @@ -37,6 +39,7 @@ * *

This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi public class BatchedFuture extends AbstractApiFuture { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java index 599fa518353c..2eb53c7eac2f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; /** @@ -37,6 +39,7 @@ * *

This class is designed to be used by generated code. */ +@NullMarked public final class BatchedRequestIssuer { private final BatchedFuture batchedFuture; private final long messageCount; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java index e324a21760f7..7a94cbaffd10 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.batching.BatchingFlowController; import com.google.api.gax.batching.BatchingSettings; @@ -53,6 +55,7 @@ * *

This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi public final class BatcherFactory { private final Map>> batchers = diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java index 922f4864030b..16e94a4d101d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.batching.FlowController; @@ -41,6 +43,7 @@ * A settings class to configure a {@link UnaryCallable} for calls to an API method that supports * batching. The settings are provided using an instance of {@link BatchingSettings}. */ +@NullMarked @InternalExtensionOnly public final class BatchingCallSettings extends UnaryCallSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java index 2d6a1f37a0da..9c600d3dc612 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowController.FlowControlException; @@ -44,6 +46,7 @@ * *

This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi("For use by transport-specific implementations") public class BatchingCallable extends UnaryCallable { private final UnaryCallable callable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java index ce4cf737caa8..d73cd04770a1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.batching.PartitionKey; import com.google.api.gax.batching.RequestBuilder; import java.util.Collection; @@ -42,6 +44,7 @@ * *

This class is designed to be used by generated code. */ +@NullMarked public interface BatchingDescriptor { /** Returns the value of the partition key for the given request. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java index a47468567941..ec87a848bf71 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -68,6 +70,7 @@ * @param The type of each request. * @param The type of each response. */ +@NullMarked public class BidiStream extends ServerStream implements ClientStream { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamObserver.java index 427a68068221..5bd45dcd45c4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamObserver.java @@ -29,5 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + +@NullMarked public interface BidiStreamObserver extends ResponseObserver, ClientStreamReadyObserver {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java index 38efb2da3755..f0bc6dec9908 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * A BidiStreamingCallable is an immutable object which is capable of making RPC calls to * bidirectional streaming API methods. Not all transports support streaming. @@ -37,6 +39,7 @@ * class is intended to be created by a generated client class, and configured by instances of * StreamingCallSettings.Builder which are exposed through the client settings class. */ +@NullMarked public abstract class BidiStreamingCallable { protected BidiStreamingCallable() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java index ab06d28aa610..49dd42bda355 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.longrunning.OperationResponsePollAlgorithm; @@ -46,6 +48,7 @@ *

The callable objects wrap a given direct callable with features like retry and exception * translation. */ +@NullMarked @BetaApi public class Callables { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CancelledException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CancelledException.java index f966c00315c3..50960e5487a1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CancelledException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CancelledException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** The exception thrown when the operation was cancelled (typically by the caller). */ +@NullMarked public class CancelledException extends ApiException { public CancelledException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java index 6e307d1f8106..7796f8981c42 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.NonCancellableFuture; @@ -45,6 +47,7 @@ * @param request type * @param response type */ +@NullMarked class CheckingAttemptCallable implements Callable { private final UnaryCallable callable; private final ApiCallContext originalCallContext; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java index fe448dd64a1b..863972a0addb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -73,6 +75,7 @@ *

Unlike {@link ClientSettings} which allows users to configure the client, {@code * ClientContext} is intended to be used in generated code. Most users will not need to use it. */ +@NullMarked @AutoValue public abstract class ClientContext { private static final String QUOTA_PROJECT_ID_HEADER_KEY = "x-goog-user-project"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java index c1e41b82e62a..85a4745cb567 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.ApiClock; @@ -52,6 +54,7 @@ *

If no ExecutorProvider is set, then InstantiatingExecutorProvider will be used, which creates * a default executor. */ +@NullMarked public abstract class ClientSettings> { private final StubSettings stubSettings; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStream.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStream.java index 0a451b68d9ee..088f24f0aee3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStream.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStream.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * A wrapper used to send requests to the server. * @@ -49,6 +51,7 @@ * * @param The type of each request. */ +@NullMarked public interface ClientStream { /** Sends a request to the server. It is an error to call this if the stream is already closed. */ void send(RequestT request); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java index d0c9f32d5b0d..4166b244fa07 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** A callback used to report that the {@link ClientStream} is ready to send more messages. */ +@NullMarked @FunctionalInterface public interface ClientStreamReadyObserver { void onReady(ClientStream stream); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java index 13ef1c64568b..0db848e5c943 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * A ClientStreamingCallable is an immutable object which is capable of making RPC calls to client * streaming API methods. Not all transports support streaming. @@ -37,6 +39,7 @@ * This class is intended to be created by a generated client class, and configured by instances of * StreamingCallSettings.Builder which are exposed through the client settings class. */ +@NullMarked public abstract class ClientStreamingCallable { protected ClientStreamingCallable() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DataLossException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DataLossException.java index f64d83c786bc..168aef46172e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DataLossException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DataLossException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** Exception thrown due to unrecoverable data loss or corruption. */ +@NullMarked public class DataLossException extends ApiException { public DataLossException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DeadlineExceededException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DeadlineExceededException.java index 1ac5a4cdcdcb..c9ca87ea795c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DeadlineExceededException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/DeadlineExceededException.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when deadline expired before operation could complete. For operations that * change the state of the system, this error may be returned even if the operation has completed * successfully. For example, a successful response from a server could have been delayed long * enough for the deadline to expire. */ +@NullMarked public class DeadlineExceededException extends ApiException { public DeadlineExceededException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java index 1f408497dc7c..c654f13560cc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.rpc.internal.EnvironmentProvider; import com.google.api.gax.rpc.mtls.CertificateBasedAccess; @@ -52,6 +54,7 @@ * *

Contains the fields required to resolve the endpoint and Universe Domain */ +@NullMarked @InternalApi @AutoValue public abstract class EndpointContext { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java index 45ba427b6e4a..a52e8ba01aa4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.Any; @@ -48,6 +50,7 @@ import javax.annotation.Nullable; /** This class contains a list of standard error messages that returns from server. */ +@NullMarked @AutoValue public abstract class ErrorDetails { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FailedPreconditionException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FailedPreconditionException.java index 56655d3a2483..6b9a4d5b9643 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FailedPreconditionException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FailedPreconditionException.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the operation was rejected because the system is not in a state required * for the operation's execution. For example, directory to be deleted may be non-empty, an rmdir * operation is applied to a non-directory, etc. */ +@NullMarked public class FailedPreconditionException extends ApiException { public FailedPreconditionException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java index 3446e9ffc5f9..81bb64664e32 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; /** @@ -40,6 +42,7 @@ * @param The type of the request. * @param The type of the item in the stream. */ +@NullMarked final class FirstElementCallable extends UnaryCallable { private final ServerStreamingCallable streamingCallable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java index d6e250176ef1..acedd8ace206 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.AbstractApiFuture; import com.google.api.core.ApiFuture; @@ -40,6 +42,7 @@ * * @param The type of the element in the stream. */ +@NullMarked class FirstElementResponseObserver extends StateCheckingResponseObserver { private final MyFuture future = new MyFuture(); private StreamController controller; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java index 8aa7816972da..a10dca85c553 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableMap; import java.io.Serializable; @@ -39,6 +41,7 @@ import javax.annotation.Nullable; /** An instance of HeaderProvider that always provides the same headers. */ +@NullMarked @AutoValue public abstract class FixedHeaderProvider implements HeaderProvider, Serializable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java index daa101910595..780d7cfd262a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; import com.google.auth.Credentials; import com.google.common.base.Preconditions; @@ -38,6 +40,7 @@ import java.util.concurrent.ScheduledExecutorService; /** An instance of TransportChannelProvider that always provides the same TransportChannel. */ +@NullMarked @InternalExtensionOnly public class FixedTransportChannelProvider implements TransportChannelProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java index 170e820c03f7..65b7746fd9fb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; import com.google.api.core.ObsoleteApi; @@ -44,6 +46,7 @@ *

This is the internal class and is public only for technical reasons. It may change any time * without notice, please do not depend on it explicitly. */ +@NullMarked @InternalApi public final class FixedWatchdogProvider implements WatchdogProvider { @Nullable private final Watchdog watchdog; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java index c20351c0a760..e8ab8875def8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import java.util.Map; /** Provider of headers to put on http requests. */ +@NullMarked public interface HeaderProvider { /** Get the headers to put on http requests. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java index 5b06f882a301..8d7874c8f241 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.ApiClock; @@ -45,6 +47,7 @@ *

This is the internal class and is public only for technical reasons. It may change any time * without notice, please do not depend on it explicitly. */ +@NullMarked @InternalApi public final class InstantiatingWatchdogProvider implements WatchdogProvider { @Nullable private final ApiClock clock; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InternalException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InternalException.java index af2c9fa80e3f..240889394b8d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InternalException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InternalException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown due to internal errors. Means some invariants expected by underlying system has * been broken. If you see one of these errors, something is very broken. */ +@NullMarked public class InternalException extends ApiException { public InternalException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InvalidArgumentException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InvalidArgumentException.java index 430640b976ed..de4e17182643 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InvalidArgumentException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InvalidArgumentException.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when client specified an invalid argument. Note that this differs from {@link * FailedPreconditionException}. This exception indicates arguments that are problematic regardless * of the state of the system (e.g., a malformed file name). */ +@NullMarked public class InvalidArgumentException extends ApiException { public InvalidArgumentException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java index eb8c48f5fefc..9c55689e18cf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java @@ -30,6 +30,8 @@ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; @@ -40,6 +42,7 @@ * *

For internal use only. */ +@NullMarked @InternalApi @BetaApi @AutoValue diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java index 87ebd26112ba..e27e33b9a404 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.longrunning.OperationSnapshot; /** Implementation-agnostic interface for managing long-running operations. */ +@NullMarked public interface LongRunningClient { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java index 48b8532ea047..3f3255077c43 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import java.io.Serializable; import java.util.Collections; import java.util.Map; /** Implementation of HeaderProvider that provides empty headers. */ +@NullMarked public class NoHeaderProvider implements HeaderProvider, Serializable { private static final long serialVersionUID = 7323717933589691233L; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NotFoundException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NotFoundException.java index 86e86a32af1e..209a532104de 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NotFoundException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NotFoundException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** Exception thrown when some requested entity (e.g., file or directory) was not found. */ +@NullMarked public class NotFoundException extends ApiException { public NotFoundException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java index 0236f59a515f..650b5aeae586 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFunction; @@ -39,6 +41,7 @@ * A settings class to configure an {@link OperationCallable} for calls to initiate, resume, and * cancel a long-running operation. */ +@NullMarked public final class OperationCallSettings { private final UnaryCallSettings initialCallSettings; private final TimedRetryAlgorithm pollingAlgorithm; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java index 75eac0e92ebc..34681cd57ddf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.gax.longrunning.OperationFuture; @@ -41,6 +43,7 @@ * class is intended to be created by a generated client class, and configured by instances of * OperationCallSettings.Builder which are exposed through the client settings class. */ +@NullMarked public abstract class OperationCallable { protected OperationCallable() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java index f1161851b20c..e4a98bd7f169 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFunction; @@ -46,6 +48,7 @@ * *

Package-private for internal use. */ +@NullMarked class OperationCallableImpl extends OperationCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java index 302e0fbae88a..142c9c462fe9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -46,6 +48,7 @@ * * @param type of the request */ +@NullMarked class OperationCheckingCallable extends UnaryCallable { private final LongRunningClient longRunningClient; private final ApiFuture initialFuture; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OutOfRangeException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OutOfRangeException.java index 10e68e12fb4a..0dc26a4455ee 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OutOfRangeException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OutOfRangeException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the operation was attempted past the valid range. E.g., seeking or reading * past end of file. */ +@NullMarked public class OutOfRangeException extends ApiException { public OutOfRangeException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java index a58238881f90..91fbf9e44c77 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.auto.value.AutoValue; /** The context for a page call. */ +@NullMarked @AutoValue public abstract class PageContext { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java index cff1ed0b7b19..ac9236c00e4e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.retrying.RetrySettings; import java.util.Set; @@ -37,6 +39,7 @@ * A settings class to configure a {@link UnaryCallable} for calls to an API method that supports * page streaming. */ +@NullMarked @InternalExtensionOnly public final class PagedCallSettings extends UnaryCallSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java index 5a2f47815c74..c36625c31996 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.InternalApi; import com.google.common.base.Preconditions; @@ -38,6 +40,7 @@ * *

Public for technical reasons - for advanced usage. */ +@NullMarked @InternalApi("For use by transport-specific implementations") public class PagedCallable extends UnaryCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListDescriptor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListDescriptor.java index ee272bb91c87..f118e390040a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListDescriptor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListDescriptor.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * An interface which provides the functionality to extract data from requests and inject data into * requests for the purposes of page streaming. * *

This class is designed to be used by generated code. */ +@NullMarked public interface PagedListDescriptor { /** Delivers the empty page token. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java index ed8d5551d1d8..f2a36064f07f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; /** @@ -36,6 +38,7 @@ * *

This class is designed to be used by generated code. */ +@NullMarked public interface PagedListResponseFactory { ApiFuture getFuturePagedResponse( diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PermissionDeniedException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PermissionDeniedException.java index 14e92d9d4fe0..d923fe729be1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PermissionDeniedException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PermissionDeniedException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** Exception thrown when the caller does not have permission to execute the specified operation. */ +@NullMarked public class PermissionDeniedException extends ApiException { public PermissionDeniedException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ProtocolBufferParsingException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ProtocolBufferParsingException.java index ce8f306a2914..ea5a26c79e66 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ProtocolBufferParsingException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ProtocolBufferParsingException.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** Exception thrown when parsing protocol buffer message failed */ +@NullMarked public class ProtocolBufferParsingException extends RuntimeException { public ProtocolBufferParsingException(String message, Throwable cause) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java index 36e5384bf0e9..a086caf7f497 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.collect.Queues; import java.util.concurrent.BlockingQueue; @@ -52,6 +54,7 @@ * * @param The item type. */ +@NullMarked final class QueuingResponseObserver extends StateCheckingResponseObserver { static final Object EOF_MARKER = new Object(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java index 9441223e42e8..f4fdd4130777 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.retrying.RetryingExecutorWithContext; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; @@ -41,6 +43,7 @@ * *

Package-private for internal use. */ +@NullMarked class RecheckingCallable extends UnaryCallable { private final UnaryCallable callable; private final RetryingExecutorWithContext executor; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java index d26949d87d73..dc806449dd4c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -40,6 +42,7 @@ * * @param request message type */ +@NullMarked @InternalApi("For use by transport-specific implementations") @FunctionalInterface public interface RequestMutator { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java index 9e3914309c70..7613ac1a7738 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.pathtemplate.PathTemplate; import com.google.common.collect.ImmutableMap; @@ -38,6 +40,7 @@ * This builder class builds a request params map that will be used by autogenerated implementation * of {@link RequestParamsExtractor}. */ +@NullMarked @BetaApi public class RequestParamsBuilder { private final ImmutableMap.Builder paramsBuilder; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java index 19f4742eb82c..6882e229935a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -38,6 +40,7 @@ * * @param request message type */ +@NullMarked @InternalApi("For use by transport-specific implementations") public interface RequestParamsEncoder { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java index eb52c6e92aa9..b2b44529c454 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.Map; @@ -43,6 +45,7 @@ * * @param request message type */ +@NullMarked @InternalApi("For use by transport-specific implementations") public interface RequestParamsExtractor { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java index 58762f6c7449..a585f7b8eb1b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.client.util.escape.PercentEscaper; @@ -41,6 +43,7 @@ * * @param request message type */ +@NullMarked @InternalApi("For use by transport-specific implementations") public class RequestUrlParamsEncoder implements RequestParamsEncoder { // Per RFC 3986 Section 2.3, these are the four unreserved characters that don't need to be diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceExhaustedException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceExhaustedException.java index 069100bb0d95..fea81371672f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceExhaustedException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceExhaustedException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when some resource has been exhausted, perhaps a per-user quota, or perhaps the * entire file system is out of space. */ +@NullMarked public class ResourceExhaustedException extends ApiException { public ResourceExhaustedException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java index 328d1c41740b..4ab4989e6e9c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.tracing.ObservabilityAttributes; @@ -42,6 +44,7 @@ * * @param request message type */ +@NullMarked @InternalApi("For use by transport-specific implementations") public interface ResourceNameExtractor { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResponseObserver.java index 77c7a82d3164..64e5c2e9957a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResponseObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Receives notifications from server-streaming calls. * @@ -48,6 +50,7 @@ * control by calling {@code disableAutoInboundFlowControl()} in {@code onStart}. After this, the * consumer must request responses by calling {@code request()}. */ +@NullMarked public interface ResponseObserver { /** diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java index e4fe13295a56..b163fccd0bb4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.retrying.RetryingExecutorWithContext; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; @@ -38,6 +40,7 @@ * *

Package-private for internal use. */ +@NullMarked class RetryingCallable extends UnaryCallable { private final ApiCallContext callContextPrototype; private final UnaryCallable callable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java index cb7e3bb7894c..59ad7255defe 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFutureCallback; @@ -52,6 +54,7 @@ * *

Package-private for internal use. */ +@NullMarked final class RetryingServerStreamingCallable extends ServerStreamingCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java index d1f9848631b6..56cff2bc9941 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import java.util.Iterator; import java.util.stream.Stream; @@ -66,6 +68,7 @@ * * @param The type of each response. */ +@NullMarked public class ServerStream implements Iterable { private final QueuingResponseObserver observer = new QueuingResponseObserver<>(); private final ServerStreamIterator iterator = new ServerStreamIterator<>(observer); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java index 17a912de8831..45baa0c20763 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.util.concurrent.UncheckedExecutionException; import java.util.Iterator; import java.util.NoSuchElementException; @@ -43,6 +45,7 @@ * * @param The type of items to be Iterated over. */ +@NullMarked final class ServerStreamIterator implements Iterator { private final QueuingResponseObserver observer; private Object last; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java index da0c8de632da..7274791adb39 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.SettableApiFuture; import com.google.api.gax.retrying.RetryingFuture; import com.google.api.gax.retrying.ServerStreamingAttemptException; @@ -93,6 +95,7 @@ * @param request type * @param response type */ +@NullMarked final class ServerStreamingAttemptCallable implements Callable { private final Object lock = new Object(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java index cbba46485f5f..8db0fd532d0f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -77,6 +79,7 @@ *

  • totalTimeout still applies to the entire stream. * */ +@NullMarked public final class ServerStreamingCallSettings extends StreamingCallSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java index 51eed9388819..2d15cd7596a1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import java.util.Iterator; import java.util.List; @@ -40,6 +42,7 @@ * This class is intended to be created by a generated client class, and configured by instances of * StreamingCallSettings.Builder which are exposed through the client settings class. */ +@NullMarked public abstract class ServerStreamingCallable { private final FirstElementCallable firstCallable; private final SpoolingCallable spoolingCallable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java index fbccc520ce20..71992c70bcd7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import java.util.List; @@ -43,6 +45,7 @@ * @param The type of the request. * @param The type of an item in the stream. */ +@NullMarked class SpoolingCallable extends UnaryCallable> { private final ServerStreamingCallable streamingCallable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java index dd1827f0b9dc..4c86caace1fc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.AbstractApiFuture; import com.google.api.core.ApiFuture; import com.google.common.collect.Lists; @@ -42,6 +44,7 @@ * * @param The type of the element in the stream. */ +@NullMarked class SpoolingResponseObserver extends StateCheckingResponseObserver { private final MyFuture future = new MyFuture(); private StreamController controller; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java index 46e76bd05d2e..9437f285210c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.Preconditions; /** Base implementation of {@link ResponseObserver} that performs state sanity checks. */ +@NullMarked public abstract class StateCheckingResponseObserver implements ResponseObserver { private boolean isStarted; private boolean isClosed; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java index 470f61cd13b6..b4df28c96428 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; /** @@ -38,6 +40,7 @@ * status codes, see * https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/Status.java */ +@NullMarked @InternalExtensionOnly public interface StatusCode { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java index 42a09efdc72a..9aa9ca08177a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import java.util.concurrent.CancellationException; /** @@ -39,6 +41,7 @@ * flow control. The receiver can also save a reference to the instance and terminate the stream * early using {@code cancel()}. */ +@NullMarked public interface StreamController { /** * Cancel the stream early. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java index 7f8895436ef1..881478ebb67e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; /** * A settings class to configure a streaming callable object for calls to a streaming API method. */ +@NullMarked @InternalExtensionOnly public class StreamingCallSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java index 4b2444bb4726..8e26f179ac01 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -64,6 +66,7 @@ *

    If no ExecutorProvider is set, then InstantiatingExecutorProvider will be used, which creates * a default executor. */ +@NullMarked public abstract class StubSettings> { static final String QUOTA_PROJECT_ID_HEADER_KEY = "x-goog-user-project"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java index 8cc1512383b3..90c3ddcef324 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFunction; @@ -38,6 +40,7 @@ /** * A UnaryCallable that translates request types and response types using the given transformers. */ +@NullMarked public class TranslatingUnaryCallable extends UnaryCallable { private final UnaryCallable innerUnaryCallable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java index d54352e9b246..0d44cb074e0b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.core.BackgroundResource; /** Class whose instances can issue RPCs on a particular transport. */ +@NullMarked @InternalExtensionOnly public interface TransportChannel extends BackgroundResource { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java index ebdcbc9f415c..b7581568ccd1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import com.google.auth.Credentials; @@ -58,6 +60,7 @@ * TransportChannel transportChannel = transportChannelProvider.getTransportChannel(); * */ +@NullMarked @InternalExtensionOnly public interface TransportChannelProvider { /** Indicates whether the TransportChannel should be closed by the containing client class. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java index f985650a5901..ca65cbf40484 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.InternalExtensionOnly; @@ -55,6 +57,7 @@ * builder class cannot be used to create an instance of UnaryCallSettings, because * UnaryCallSettings is an abstract class. */ +@NullMarked @InternalExtensionOnly public class UnaryCallSettings { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java index 4a53ec8dcd73..04c75cf50ad0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; /** @@ -65,6 +67,7 @@ * intended to be created by a generated client class, and configured by instances of * UnaryCallSettings.Builder which are exposed through the client settings class. */ +@NullMarked public abstract class UnaryCallable { protected UnaryCallable() {} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnauthenticatedException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnauthenticatedException.java index 9f6954d65a29..0c93f07e6b51 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnauthenticatedException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnauthenticatedException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the request does not have valid authentication credentials for the * operation. */ +@NullMarked public class UnauthenticatedException extends ApiException { public UnauthenticatedException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnavailableException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnavailableException.java index 7b564e085fde..eabb101f3ea0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnavailableException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnavailableException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the service is currently unavailable. This is a most likely a transient * condition and may be corrected by retrying with a backoff. */ +@NullMarked public class UnavailableException extends ApiException { public UnavailableException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnimplementedException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnimplementedException.java index 8c6c2f77f358..76e826642535 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnimplementedException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnimplementedException.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown when the operation is not implemented or not supported/enabled in this service. */ +@NullMarked public class UnimplementedException extends ApiException { public UnimplementedException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnknownException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnknownException.java index f6fe80138cfd..e501b0402028 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnknownException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnknownException.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * Exception thrown due to an unknown error. An example of where this error may be returned is if a * Status value received from another address space belongs to an error-space that is not known in * this address space. Also errors raised by APIs that do not return enough error information may be * converted to this error. */ +@NullMarked public class UnknownException extends ApiException { public UnknownException(Throwable cause, StatusCode statusCode, boolean retryable) { super(cause, statusCode, retryable); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java index f80a8a9034ae..2b435c164290 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -66,6 +68,7 @@ * had no outstanding demand. Duration.ZERO disables the timeout. * */ +@NullMarked public final class Watchdog implements Runnable, BackgroundResource { private static final Logger LOG = Logger.getLogger(Watchdog.class.getName()); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java index a31fc7b6f46a..ee3b7545e4d2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; import com.google.api.core.ApiClock; @@ -36,6 +38,7 @@ import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; +@NullMarked public interface WatchdogProvider { boolean needsClock(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java index 443bf11dd5fa..b861edf04414 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; @@ -42,6 +44,7 @@ * * @see Watchdog for more details */ +@NullMarked class WatchdogServerStreamingCallable extends ServerStreamingCallable { private final ServerStreamingCallable inner; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java index 15b0cc388b9d..bffa4825f922 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc; +import org.jspecify.annotations.NullMarked; + /** * The marker exception thrown when a timeout is exceeded. * @@ -42,6 +44,7 @@ * or next on {@link ServerStream#iterator()} (in case of blocking api). * */ +@NullMarked public class WatchdogTimeoutException extends ApiException { private static final long serialVersionUID = -777463630112442086L; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java index a0873f309a82..ed669529724c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc.internal; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.ApiCallContext.Key; @@ -38,6 +40,7 @@ /** * ApiCallContextOptions encapsulates additional call options to pass in a {@link ApiCallContext} */ +@NullMarked @InternalApi public final class ApiCallContextOptions { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java index af623f4b0ba7..87688258a0e7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java @@ -29,9 +29,12 @@ */ package com.google.api.gax.rpc.internal; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalExtensionOnly; /** Provides an interface to provide the environment variable values. */ +@NullMarked @InternalExtensionOnly public interface EnvironmentProvider { /** Returns the environment variable value. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java index 49d4c049ab69..3188a6a7bde8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java @@ -30,12 +30,15 @@ package com.google.api.gax.rpc.internal; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; +@NullMarked @InternalApi public class Headers { public static final String DYNAMIC_ROUTING_HEADER_KEY = "x-goog-request-params"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java index 8c9d2c579956..f99fb24c266b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.rpc.internal; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.util.Beta; import com.google.auth.Credentials; import com.google.common.collect.ImmutableMap; @@ -43,6 +45,7 @@ * *

    Ensure that a custom set quota project id takes priority over one detected by credentials. */ +@NullMarked @Beta public class QuotaProjectIdHidingCredentials extends Credentials { private static final String QUOTA_PROJECT_ID_HEADER_KEY = "x-goog-user-project"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java index 6f722bff6047..c5220bf47742 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java @@ -30,6 +30,8 @@ package com.google.api.gax.rpc.mtls; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.rpc.internal.EnvironmentProvider; @@ -39,6 +41,7 @@ *

    This class handles the processing of GOOGLE_API_USE_CLIENT_CERTIFICATE and * GOOGLE_API_USE_MTLS_ENDPOINT environment variables according to https://google.aip.dev/auth/4114 */ +@NullMarked @InternalApi public class CertificateBasedAccess { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java index 9e92ac5ce090..c7ab64696f05 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java @@ -30,6 +30,8 @@ package com.google.api.gax.rpc.mtls; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.json.GenericJson; import com.google.api.client.util.Key; import com.google.common.collect.ImmutableList; @@ -43,6 +45,7 @@ * *

    Note: This class is for Google cloud internal use only. */ +@NullMarked @Deprecated public class ContextAwareMetadataJson extends GenericJson { /** Cert provider command */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java index 88e423c47cd1..ca8401b45bf2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java @@ -30,6 +30,8 @@ package com.google.api.gax.rpc.mtls; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.json.JsonParser; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.SecurityUtils; @@ -54,6 +56,7 @@ * *

    Note: This class is for Google cloud internal use only. */ +@NullMarked @BetaApi @Deprecated public class MtlsProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java index a67cdc855506..3ea94134588f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; import com.google.api.core.InternalApi; @@ -43,6 +45,7 @@ * *

    For internal use only. google-cloud-java libraries should extend {@link BaseApiTracer}. */ +@NullMarked @InternalApi public interface ApiTracer { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java index 197483d482e0..94302840d5c2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.rpc.LibraryMetadata; import com.google.api.gax.tracing.ApiTracerFactory.OperationType; @@ -46,6 +48,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi @AutoValue public abstract class ApiTracerContext { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java index ee2bf66ab00b..e7739a274e4a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.core.InternalExtensionOnly; @@ -40,6 +42,7 @@ * *

    For internal use only. google-cloud-java libraries should extend {@link BaseApiTracerFactory}. */ +@NullMarked @InternalApi @InternalExtensionOnly public interface ApiTracerFactory { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java index cffa4c744ec5..96db9b07178c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.core.ObsoleteApi; @@ -40,6 +42,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public class BaseApiTracer implements ApiTracer { private static final ApiTracer INSTANCE = new BaseApiTracer(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java index 0b04bf872456..f35b620977ee 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; /** @@ -36,6 +38,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public class BaseApiTracerFactory implements ApiTracerFactory { private static final BaseApiTracerFactory INSTANCE = new BaseApiTracerFactory(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java index e4b28463d312..0b95543d1413 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -41,6 +43,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi class CompositeTracer extends BaseApiTracer { private final List children; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java index 3e4c0041e1fc..0c20bfd98a87 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; @@ -37,6 +39,7 @@ * A composite implementation of {@link ApiTracerFactory} that bundles multiple tracing factories * and produces a {@link CompositeTracer} out of them. */ +@NullMarked public class CompositeTracerFactory extends BaseApiTracerFactory { private final List apiTracerFactories; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java index 4a345f361496..e6ba25ff017f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.DeadlineExceededException; import com.google.api.gax.rpc.WatchdogTimeoutException; @@ -47,6 +49,7 @@ import javax.annotation.Nullable; import javax.net.ssl.SSLHandshakeException; +@NullMarked public class ErrorTypeUtil { enum ErrorType { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java index 19fec5879cf1..7ef8ac4054f5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.rpc.LibraryMetadata; import com.google.common.base.Strings; import io.opentelemetry.api.OpenTelemetry; @@ -46,6 +48,7 @@ * GoldenSignalsMetricsRecorder per client, all the methods in this class are expected to be called * from multiple threads, hence they need to be thread safe. */ +@NullMarked class GoldenSignalsMetricsRecorder { static final String CLIENT_REQUEST_DURATION_METRIC_NAME = "gcp.client.request.duration"; static final String CLIENT_REQUEST_DURATION_METRIC_DESCRIPTION = diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java index 1f56ace89b45..97f859ee5ae0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.logging.LoggerProvider; import com.google.api.gax.logging.LoggingUtils; import com.google.common.annotations.VisibleForTesting; @@ -42,6 +44,7 @@ * An {@link ApiTracer} that logs actionable errors using {@link LoggingUtils} when an RPC attempt * fails. */ +@NullMarked class LoggingTracer extends BaseApiTracer { private static final LoggerProvider LOGGER_PROVIDER = LoggerProvider.forClazz(LoggingTracer.class); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java index 53e2c6c4572a..19825e6a51b8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.logging.LoggingUtils; import com.google.common.annotations.VisibleForTesting; @@ -40,6 +42,7 @@ * managed automatically by the system, when {@link LoggingUtils#isLoggingEnabled()} returning * {@code true}. */ +@NullMarked @InternalApi public class LoggingTracerFactory implements ApiTracerFactory { private final ApiTracerContext apiTracerContext; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java index 1581c0ed38cd..5eba5bf2f9c0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.StubSettings; import com.google.auto.value.AutoValue; /** A value class to represent the name of the RPC method in an {@link ApiTracer}. */ +@NullMarked @BetaApi @InternalApi @AutoValue diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java index d2e221fb5b2a..386c621c1e39 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import java.util.Map; @@ -40,6 +42,7 @@ * all the methods in this class are expected to be called from multiple threads, hence the * implementation must be thread safe. */ +@NullMarked @BetaApi @InternalApi public interface MetricsRecorder { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java index 0bf2c047c29e..839720a53fdf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.BetaApi; @@ -50,6 +52,7 @@ * class should not have any knowledge about the observability framework used for metrics recording. * method_name and language will be autopopulated attributes. Default value of language is 'Java'. */ +@NullMarked @BetaApi @InternalApi public class MetricsTracer implements ApiTracer { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java index 3f826040a4ec..42e688570746 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.common.base.Preconditions; @@ -43,6 +45,7 @@ * *

    This class is expected to be initialized once during client initialization. */ +@NullMarked @BetaApi @InternalApi public class MetricsTracerFactory implements ApiTracerFactory { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java index 99981bd469fc..343d696fb04a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; @@ -38,6 +40,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi @BetaApi public class ObservabilityAttributes { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java index dfdfc4ccb459..4d838501025f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.StatusCode; import com.google.common.base.Joiner; @@ -42,6 +44,7 @@ import java.util.concurrent.CancellationException; import javax.annotation.Nullable; +@NullMarked final class ObservabilityUtils { /** Function to extract the status of the error as a canonical code. */ diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java index 8802889d6743..0b2a14190d64 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import io.opentelemetry.api.OpenTelemetry; /** @@ -36,6 +38,7 @@ * *

    This class is expected to be initialized once during client initialization. */ +@NullMarked public class OpenTelemetryMetricsFactory implements ApiTracerFactory { private final ApiTracerContext clientLevelTracerContext; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java index 1da633d60d83..d3037747be9d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.core.GaxProperties; @@ -51,6 +53,7 @@ * error). A single call (i.e. `EchoClient.echo()`) should have an operation_count of 1 and may have * an attempt_count of 1+ (depending on the retry configurations). */ +@NullMarked @BetaApi @InternalApi public class OpenTelemetryMetricsRecorder implements MetricsRecorder { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java index dfcf1b1d4a6c..e681ddc4c273 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; import com.google.common.base.Ticker; @@ -43,6 +45,7 @@ * GoldenSignalsMetricsRecorder}, hence this class should not have any knowledge about the * observability framework (e.g. OpenTelemetry). */ +@NullMarked class OpenTelemetryMetricsTracer implements ApiTracer { private final Stopwatch clientRequestTimer; private final GoldenSignalsMetricsRecorder metricsRecorder; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java index e7fcbfbdadd9..e668c83b9b92 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.util.Strings; import com.google.api.gax.rpc.LibraryMetadata; import com.google.common.annotations.VisibleForTesting; @@ -44,6 +46,7 @@ * *

    This class is expected to be initialized once during client initialization. */ +@NullMarked public class OpenTelemetryTracingFactory implements ApiTracerFactory { private final Tracer tracer; private final OpenTelemetry openTelemetry; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java index af99ab2af7c8..b8554c5b2ec1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java @@ -30,6 +30,8 @@ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.client.util.Strings; import com.google.api.core.InternalApi; import io.opentelemetry.api.trace.Span; @@ -41,6 +43,7 @@ import java.util.concurrent.CancellationException; /** An implementation of {@link ApiTracer} that uses OpenTelemetry to record traces. */ +@NullMarked class OpenTelemetryTracingTracer implements ApiTracer { static final String CONTENT_LENGTH_KEY = "Content-Length"; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java index c9f6b7cfc737..9c2d318462bd 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.BetaApi; @@ -208,6 +210,7 @@ * only one thread that invokes the operation* and attempt* methods. Please see {@link * com.google.api.gax.rpc.ApiStreamObserver} for more information. */ +@NullMarked @BetaApi("Surface for tracing is not yet stable") public class OpencensusTracer extends BaseApiTracer { private final Tracer tracer; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java index 46021b4c69ce..8f62acd206d2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -48,6 +50,7 @@ * *

    This class is thread safe. */ +@NullMarked @InternalApi("For google-cloud-java client use only") public final class OpencensusTracerFactory extends BaseApiTracerFactory { @Nonnull private final Tracer internalTracer; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java index efbc91fe89ce..0dd3e3769f01 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; @@ -37,6 +39,7 @@ import java.util.regex.Pattern; /** A value class to represent the name of the operation in an {@link ApiTracer}. */ +@NullMarked @BetaApi("Surface for tracing is not yet stable") @InternalApi("For google-cloud-java client use only") @AutoValue diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java index 292a827759d0..8380f4abebfc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java @@ -29,12 +29,15 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFutureCallback; import com.google.common.base.Preconditions; import java.util.concurrent.CancellationException; import javax.annotation.Nonnull; /** An {@link ApiFutureCallback} to mark a started operation trace as finished. */ +@NullMarked class TraceFinisher implements ApiFutureCallback { private final ApiTracer tracer; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java index bc00db0f1ce2..8ddd70651290 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -45,6 +47,7 @@ * *

    For internal use only. */ +@NullMarked @BetaApi("The surface for tracing is not stable and might change in the future") @InternalApi("For internal use by google-cloud-java clients only") public class TracedBatchingCallable diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java index 0be23594a4cc..049fe290d46a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -48,6 +50,7 @@ * *

    For internal use only. */ +@NullMarked @BetaApi("The surface for tracing is not stable and might change in the future") @InternalApi("For internal use by google-cloud-java clients only") public class TracedBidiCallable diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java index 62141aa239ad..4938a1306e94 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -49,6 +51,7 @@ * *

    For internal use only. */ +@NullMarked @BetaApi("The surface for tracing is not stable and might change in the future") @InternalApi public class TracedClientStreamingCallable diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java index 3b83d7fd7573..e1232808e60a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.InternalApi; @@ -44,6 +46,7 @@ * *

    For internal use only. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public class TracedOperationCallable extends OperationCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java index 680dce6af448..3df93de1edb1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; @@ -43,6 +45,7 @@ *

    It will trace it like a child unary RPC and will also contribute to the parent tracer (created * by {@link TracedOperationCallable}) the result of the call. */ +@NullMarked public class TracedOperationInitialCallable extends TracedUnaryCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java index ba72d2f5b761..40a8144f171e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ResponseObserver; import com.google.api.gax.rpc.StreamController; @@ -43,6 +45,7 @@ * that the span of the instrumentation will not include processing of the innerObserver's * onComplete. */ +@NullMarked @InternalApi class TracedResponseObserver implements ResponseObserver { private final ApiTracer tracer; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java index 0ee03ce7d247..b1e40cc5b4a5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -44,6 +46,7 @@ * *

    For internal use only. */ +@NullMarked @BetaApi("The surface for tracing is not stable and might change in the future") @InternalApi("For internal use by google-cloud-java clients only") public final class TracedServerStreamingCallable diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java index 34c1798a231c..9b3266282b31 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.tracing; +import org.jspecify.annotations.NullMarked; + import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -46,6 +48,7 @@ * *

    For internal use only. */ +@NullMarked @BetaApi("The surface for tracing is not stable and might change in the future") @InternalApi("For internal use by google-cloud-java clients only") public class TracedUnaryCallable extends UnaryCallable { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java index 5ee39874b7f8..7f96cf52d716 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java @@ -30,6 +30,9 @@ package com.google.api.gax.util; +import org.jspecify.annotations.NullMarked; + +@NullMarked public class TimeConversionUtils { public static java.time.Duration toJavaTimeDuration(org.threeten.bp.Duration source) { if (source == null) { From 9f25a79a4e2b503ae04784075f03b38365479169 Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Thu, 16 Jul 2026 20:51:14 +0000 Subject: [PATCH 2/3] running automation tool on gax-java --- .../gax/grpc/ApiStreamObserverDelegate.java | 2 ++ .../google/api/gax/grpc/CallOptionsUtil.java | 2 ++ .../google/api/gax/grpc/ChannelFactory.java | 2 ++ .../com/google/api/gax/grpc/ChannelPool.java | 2 ++ .../api/gax/grpc/ChannelPoolSettings.java | 2 ++ .../google/api/gax/grpc/ChannelPrimer.java | 2 ++ .../gax/grpc/ExceptionResponseObserver.java | 2 ++ .../api/gax/grpc/GaxGrpcProperties.java | 2 ++ .../api/gax/grpc/GrpcApiExceptionFactory.java | 2 ++ .../google/api/gax/grpc/GrpcCallContext.java | 2 ++ .../google/api/gax/grpc/GrpcCallSettings.java | 2 ++ .../api/gax/grpc/GrpcCallableFactory.java | 2 ++ .../gax/grpc/GrpcChannelUUIDInterceptor.java | 2 ++ .../google/api/gax/grpc/GrpcClientCalls.java | 2 ++ .../grpc/GrpcDirectBidiStreamingCallable.java | 2 ++ .../api/gax/grpc/GrpcDirectCallable.java | 2 ++ .../GrpcDirectClientStreamingCallable.java | 2 ++ .../GrpcDirectServerStreamingCallable.java | 2 ++ .../gax/grpc/GrpcDirectStreamController.java | 2 ++ .../GrpcExceptionBidiStreamingCallable.java | 2 ++ .../api/gax/grpc/GrpcExceptionCallable.java | 2 ++ .../GrpcExceptionClientStreamingCallable.java | 2 ++ .../GrpcExceptionServerStreamingCallable.java | 2 ++ ...rpcExceptionTranslatingStreamObserver.java | 2 ++ .../api/gax/grpc/GrpcHeaderInterceptor.java | 2 ++ .../api/gax/grpc/GrpcInterceptorProvider.java | 2 ++ .../api/gax/grpc/GrpcLoggingInterceptor.java | 2 ++ .../api/gax/grpc/GrpcLongRunningClient.java | 2 ++ .../grpc/GrpcMetadataHandlerInterceptor.java | 2 ++ .../api/gax/grpc/GrpcOperationSnapshot.java | 2 ++ .../grpc/GrpcOperationSnapshotCallable.java | 2 ++ .../api/gax/grpc/GrpcRawCallableFactory.java | 2 ++ .../api/gax/grpc/GrpcResponseMetadata.java | 2 ++ ...pcServerStreamingRequestParamCallable.java | 2 ++ .../google/api/gax/grpc/GrpcStatusCode.java | 2 ++ .../api/gax/grpc/GrpcStubCallableFactory.java | 2 ++ .../api/gax/grpc/GrpcTransportChannel.java | 2 ++ .../grpc/GrpcUnaryRequestParamCallable.java | 2 ++ .../InstantiatingGrpcChannelProvider.java | 2 ++ .../gax/grpc/ProtoOperationTransformers.java | 2 ++ .../api/gax/grpc/ResponseMetadataHandler.java | 2 ++ .../api/gax/grpc/StreamObserverDelegate.java | 2 ++ .../grpc/nativeimage/GrpcNettyFeature.java | 2 ++ .../google/longrunning/OperationsClient.java | 2 ++ .../longrunning/OperationsSettings.java | 2 ++ .../com/google/longrunning/package-info.java | 3 +++ .../stub/GrpcOperationsCallableFactory.java | 2 ++ .../longrunning/stub/GrpcOperationsStub.java | 2 ++ .../longrunning/stub/OperationsStub.java | 2 ++ .../stub/OperationsStubSettings.java | 2 ++ .../api/gax/httpjson/ApiMethodDescriptor.java | 2 ++ .../api/gax/httpjson/FieldsExtractor.java | 3 +++ .../ForwardingHttpJsonClientCall.java | 2 ++ .../ForwardingHttpJsonClientCallListener.java | 3 +++ .../gax/httpjson/GaxHttpJsonProperties.java | 2 ++ .../api/gax/httpjson/HttpHeadersUtils.java | 2 ++ .../httpjson/HttpJsonApiExceptionFactory.java | 2 ++ .../api/gax/httpjson/HttpJsonCallContext.java | 2 ++ .../api/gax/httpjson/HttpJsonCallOptions.java | 2 ++ .../gax/httpjson/HttpJsonCallSettings.java | 2 ++ .../gax/httpjson/HttpJsonCallableFactory.java | 2 ++ .../api/gax/httpjson/HttpJsonChannel.java | 3 +++ .../api/gax/httpjson/HttpJsonClientCall.java | 2 ++ .../gax/httpjson/HttpJsonClientCallImpl.java | 2 ++ .../api/gax/httpjson/HttpJsonClientCalls.java | 2 ++ .../httpjson/HttpJsonClientInterceptor.java | 3 +++ .../gax/httpjson/HttpJsonDirectCallable.java | 2 ++ ...HttpJsonDirectServerStreamingCallable.java | 2 ++ .../HttpJsonDirectStreamController.java | 2 ++ .../api/gax/httpjson/HttpJsonErrorParser.java | 2 ++ .../httpjson/HttpJsonExceptionCallable.java | 2 ++ .../HttpJsonExceptionResponseObserver.java | 2 ++ ...pJsonExceptionServerStreamingCallable.java | 2 ++ .../gax/httpjson/HttpJsonHeaderEnhancer.java | 2 ++ .../gax/httpjson/HttpJsonHeaderEnhancers.java | 2 ++ .../httpjson/HttpJsonHeaderInterceptor.java | 2 ++ .../httpjson/HttpJsonInterceptorProvider.java | 2 ++ .../httpjson/HttpJsonLoggingInterceptor.java | 2 ++ .../httpjson/HttpJsonLongRunningClient.java | 2 ++ .../api/gax/httpjson/HttpJsonMetadata.java | 2 ++ .../httpjson/HttpJsonOperationSnapshot.java | 2 ++ .../HttpJsonOperationSnapshotCallable.java | 2 ++ ...onServerStreamingRequestParamCallable.java | 2 ++ .../api/gax/httpjson/HttpJsonStatusCode.java | 2 ++ .../HttpJsonStatusRuntimeException.java | 3 +++ .../httpjson/HttpJsonStubCallableFactory.java | 2 ++ .../httpjson/HttpJsonTransportChannel.java | 2 ++ .../HttpJsonUnaryRequestParamCallable.java | 2 ++ .../gax/httpjson/HttpRequestFormatter.java | 2 ++ .../api/gax/httpjson/HttpRequestRunnable.java | 2 ++ .../api/gax/httpjson/HttpResponseParser.java | 2 ++ .../InstantiatingHttpJsonChannelProvider.java | 2 ++ .../gax/httpjson/ManagedHttpJsonChannel.java | 2 ++ .../ManagedHttpJsonInterceptorChannel.java | 2 ++ .../httpjson/OperationSnapshotFactory.java | 2 ++ .../gax/httpjson/PollingRequestFactory.java | 3 +++ .../ProtoMessageJsonStreamIterator.java | 2 ++ .../ProtoMessageRequestFormatter.java | 2 ++ .../httpjson/ProtoMessageResponseParser.java | 2 ++ .../httpjson/ProtoOperationTransformers.java | 2 ++ .../api/gax/httpjson/ProtoRestSerializer.java | 2 ++ .../httpjson/RestSerializationException.java | 3 +++ .../longrunning/OperationsClient.java | 2 ++ .../longrunning/OperationsSettings.java | 2 ++ .../HttpJsonOperationsCallableFactory.java | 2 ++ .../stub/HttpJsonOperationsStub.java | 2 ++ .../longrunning/stub/OperationsStub.java | 2 ++ .../stub/OperationsStubSettings.java | 2 ++ .../gax-java/gax/javac.20260715_171737.args | 1 + .../batching/AccumulatingBatchReceiver.java | 3 +-- .../google/api/gax/batching/BatchEntry.java | 3 +-- .../api/gax/batching/BatchResource.java | 3 +-- .../com/google/api/gax/batching/Batcher.java | 3 +-- .../google/api/gax/batching/BatcherImpl.java | 3 +-- .../google/api/gax/batching/BatcherStats.java | 3 +-- .../gax/batching/BatchingCallSettings.java | 3 +-- .../api/gax/batching/BatchingDescriptor.java | 3 +-- .../gax/batching/BatchingFlowController.java | 3 +-- .../gax/batching/BatchingRequestBuilder.java | 3 +-- .../api/gax/batching/BatchingSettings.java | 3 +-- .../api/gax/batching/BatchingThresholds.java | 3 +-- .../api/gax/batching/BlockingSemaphore.java | 3 +-- .../gax/batching/DefaultBatchResource.java | 3 +-- .../batching/DynamicFlowControlSettings.java | 3 +-- .../gax/batching/FlowControlEventStats.java | 3 +-- .../api/gax/batching/FlowControlSettings.java | 3 +-- .../api/gax/batching/FlowController.java | 3 +-- .../gax/batching/NonBlockingSemaphore.java | 3 +-- .../api/gax/batching/NumericThreshold.java | 3 +-- .../google/api/gax/batching/PartitionKey.java | 6 ++--- .../gax/batching/ThresholdBatchReceiver.java | 3 +-- .../api/gax/batching/ThresholdBatcher.java | 8 +++---- .../api/gax/core/BackgroundResource.java | 3 +-- .../core/BackgroundResourceAggregation.java | 3 +-- .../api/gax/core/BaseBackgroundResource.java | 3 +-- .../api/gax/core/CredentialsProvider.java | 3 +-- .../com/google/api/gax/core/Distribution.java | 3 +-- .../core/ExecutorAsBackgroundResource.java | 3 +-- .../google/api/gax/core/ExecutorProvider.java | 3 +-- .../gax/core/FixedCredentialsProvider.java | 3 +-- .../api/gax/core/FixedExecutorProvider.java | 3 +-- .../google/api/gax/core/GaxProperties.java | 3 +-- .../gax/core/GoogleCredentialsProvider.java | 3 +-- .../core/InstantiatingExecutorProvider.java | 3 +-- .../api/gax/core/NoCredentialsProvider.java | 6 ++--- .../com/google/api/gax/logging/LogData.java | 3 +-- .../api/gax/logging/LoggerProvider.java | 3 +-- .../google/api/gax/logging/LoggingUtils.java | 3 +-- .../api/gax/logging/Slf4jLoggingHelpers.java | 3 +-- .../google/api/gax/logging/Slf4jUtils.java | 3 +-- .../api/gax/longrunning/OperationFuture.java | 3 +-- .../gax/longrunning/OperationFutureImpl.java | 3 +-- .../api/gax/longrunning/OperationFutures.java | 3 +-- .../OperationResponsePollAlgorithm.java | 3 +-- .../gax/longrunning/OperationSnapshot.java | 3 +-- .../OperationTimedPollAlgorithm.java | 3 +-- .../nativeimage/GoogleJsonClientFeature.java | 3 +-- .../api/gax/nativeimage/NativeImageUtils.java | 3 +-- .../gax/nativeimage/OpenCensusFeature.java | 3 +-- .../paging/AbstractFixedSizeCollection.java | 3 +-- .../google/api/gax/paging/AbstractPage.java | 6 ++--- .../gax/paging/AbstractPagedListResponse.java | 3 +-- .../com/google/api/gax/paging/AsyncPage.java | 3 +-- .../java/com/google/api/gax/paging/Page.java | 3 +-- .../java/com/google/api/gax/paging/Pages.java | 6 ++--- .../retrying/BasicResultRetryAlgorithm.java | 3 +-- .../api/gax/retrying/BasicRetryingFuture.java | 11 +++++----- .../retrying/CallbackChainRetryingFuture.java | 8 +++---- .../gax/retrying/DirectRetryingExecutor.java | 3 +-- .../retrying/ExponentialPollAlgorithm.java | 3 +-- .../retrying/ExponentialRetryAlgorithm.java | 3 +-- .../gax/retrying/NonCancellableFuture.java | 3 +-- .../api/gax/retrying/NoopRetryingContext.java | 3 +-- .../gax/retrying/ResultRetryAlgorithm.java | 3 +-- .../ResultRetryAlgorithmWithContext.java | 3 +-- .../api/gax/retrying/RetryAlgorithm.java | 20 ++++++++--------- .../api/gax/retrying/RetrySettings.java | 3 +-- .../api/gax/retrying/RetryingContext.java | 3 +-- .../api/gax/retrying/RetryingExecutor.java | 3 +-- .../retrying/RetryingExecutorWithContext.java | 3 +-- .../api/gax/retrying/RetryingFuture.java | 3 +-- .../retrying/ScheduledRetryingExecutor.java | 3 +-- .../ServerStreamingAttemptException.java | 3 +-- .../SimpleStreamResumptionStrategy.java | 3 +-- .../retrying/StreamResumptionStrategy.java | 3 +-- .../gax/retrying/StreamingRetryAlgorithm.java | 8 +++---- .../gax/retrying/TimedAttemptSettings.java | 3 +-- .../api/gax/retrying/TimedRetryAlgorithm.java | 3 +-- .../TimedRetryAlgorithmWithContext.java | 3 +-- .../google/api/gax/rpc/ApiCallContext.java | 3 +-- .../api/gax/rpc/ApiClientHeaderProvider.java | 18 +++++++-------- .../com/google/api/gax/rpc/ApiException.java | 17 ++++++++------ .../api/gax/rpc/ApiExceptionFactory.java | 8 +++++-- .../com/google/api/gax/rpc/ApiExceptions.java | 3 +-- .../api/gax/rpc/ApiResultRetryAlgorithm.java | 3 +-- .../google/api/gax/rpc/AttemptCallable.java | 3 +-- .../java/com/google/api/gax/rpc/Batch.java | 3 +-- .../com/google/api/gax/rpc/BatchExecutor.java | 3 +-- .../com/google/api/gax/rpc/BatchedFuture.java | 3 +-- .../api/gax/rpc/BatchedRequestIssuer.java | 8 +++---- .../google/api/gax/rpc/BatcherFactory.java | 3 +-- .../api/gax/rpc/BatchingCallSettings.java | 3 +-- .../google/api/gax/rpc/BatchingCallable.java | 3 +-- .../api/gax/rpc/BatchingDescriptor.java | 3 +-- .../com/google/api/gax/rpc/BidiStream.java | 3 +-- .../api/gax/rpc/BidiStreamingCallable.java | 10 +++++---- .../com/google/api/gax/rpc/Callables.java | 3 +-- .../api/gax/rpc/CheckingAttemptCallable.java | 3 +-- .../com/google/api/gax/rpc/ClientContext.java | 9 ++++---- .../google/api/gax/rpc/ClientSettings.java | 5 ++--- .../api/gax/rpc/ClientStreamingCallable.java | 3 ++- .../google/api/gax/rpc/EndpointContext.java | 6 +++-- .../com/google/api/gax/rpc/ErrorDetails.java | 3 +-- .../api/gax/rpc/FirstElementCallable.java | 3 +-- .../gax/rpc/FirstElementResponseObserver.java | 3 +-- .../api/gax/rpc/FixedHeaderProvider.java | 3 +-- .../rpc/FixedTransportChannelProvider.java | 3 +-- .../api/gax/rpc/FixedWatchdogProvider.java | 3 +-- .../google/api/gax/rpc/HeaderProvider.java | 3 +-- .../rpc/InstantiatingWatchdogProvider.java | 3 +-- .../google/api/gax/rpc/LibraryMetadata.java | 3 +-- .../google/api/gax/rpc/LongRunningClient.java | 3 +-- .../google/api/gax/rpc/NoHeaderProvider.java | 3 +-- .../api/gax/rpc/OperationCallSettings.java | 3 +-- .../google/api/gax/rpc/OperationCallable.java | 10 ++++----- .../api/gax/rpc/OperationCallableImpl.java | 3 +-- .../gax/rpc/OperationCheckingCallable.java | 3 +-- .../com/google/api/gax/rpc/PageContext.java | 3 +-- .../google/api/gax/rpc/PagedCallSettings.java | 3 +-- .../com/google/api/gax/rpc/PagedCallable.java | 3 +-- .../api/gax/rpc/PagedListResponseFactory.java | 3 +-- .../api/gax/rpc/QueuingResponseObserver.java | 3 +-- .../api/gax/rpc/RecheckingCallable.java | 3 +-- .../google/api/gax/rpc/RequestMutator.java | 3 +-- .../api/gax/rpc/RequestParamsBuilder.java | 3 +-- .../api/gax/rpc/RequestParamsEncoder.java | 3 +-- .../api/gax/rpc/RequestParamsExtractor.java | 3 +-- .../api/gax/rpc/RequestUrlParamsEncoder.java | 3 +-- .../api/gax/rpc/ResourceNameExtractor.java | 3 +-- .../google/api/gax/rpc/RetryingCallable.java | 6 ++--- .../rpc/RetryingServerStreamingCallable.java | 3 +-- .../com/google/api/gax/rpc/ServerStream.java | 3 +-- .../api/gax/rpc/ServerStreamIterator.java | 6 ++--- .../rpc/ServerStreamingAttemptCallable.java | 3 +-- .../gax/rpc/ServerStreamingCallSettings.java | 3 +-- .../api/gax/rpc/ServerStreamingCallable.java | 15 ++++++++----- .../google/api/gax/rpc/SpoolingCallable.java | 3 +-- .../api/gax/rpc/SpoolingResponseObserver.java | 3 +-- .../rpc/StateCheckingResponseObserver.java | 3 +-- .../com/google/api/gax/rpc/StatusCode.java | 3 +-- .../google/api/gax/rpc/StreamController.java | 3 +-- .../api/gax/rpc/StreamingCallSettings.java | 3 +-- .../com/google/api/gax/rpc/StubSettings.java | 22 ++++++++++--------- .../api/gax/rpc/TranslatingUnaryCallable.java | 3 +-- .../google/api/gax/rpc/TransportChannel.java | 3 +-- .../api/gax/rpc/TransportChannelProvider.java | 3 +-- .../google/api/gax/rpc/UnaryCallSettings.java | 6 ++--- .../com/google/api/gax/rpc/UnaryCallable.java | 7 +++--- .../java/com/google/api/gax/rpc/Watchdog.java | 3 +-- .../google/api/gax/rpc/WatchdogProvider.java | 3 +-- .../rpc/WatchdogServerStreamingCallable.java | 3 +-- .../api/gax/rpc/WatchdogTimeoutException.java | 3 ++- .../rpc/internal/ApiCallContextOptions.java | 3 +-- .../gax/rpc/internal/EnvironmentProvider.java | 3 +-- .../google/api/gax/rpc/internal/Headers.java | 3 +-- .../QuotaProjectIdHidingCredentials.java | 6 ++--- .../gax/rpc/mtls/CertificateBasedAccess.java | 3 +-- .../rpc/mtls/ContextAwareMetadataJson.java | 3 +-- .../google/api/gax/rpc/mtls/MtlsProvider.java | 8 +++---- .../com/google/api/gax/tracing/ApiTracer.java | 3 +-- .../api/gax/tracing/ApiTracerContext.java | 3 +-- .../api/gax/tracing/ApiTracerFactory.java | 3 +-- .../google/api/gax/tracing/BaseApiTracer.java | 3 +-- .../api/gax/tracing/BaseApiTracerFactory.java | 3 +-- .../api/gax/tracing/CompositeTracer.java | 3 +-- .../gax/tracing/CompositeTracerFactory.java | 3 +-- .../google/api/gax/tracing/ErrorTypeUtil.java | 3 +-- .../tracing/GoldenSignalsMetricsRecorder.java | 3 +-- .../google/api/gax/tracing/LoggingTracer.java | 3 +-- .../api/gax/tracing/LoggingTracerFactory.java | 3 +-- .../google/api/gax/tracing/MethodName.java | 3 +-- .../api/gax/tracing/MetricsRecorder.java | 3 +-- .../google/api/gax/tracing/MetricsTracer.java | 3 +-- .../api/gax/tracing/MetricsTracerFactory.java | 3 +-- .../gax/tracing/ObservabilityAttributes.java | 3 +-- .../api/gax/tracing/ObservabilityUtils.java | 3 +-- .../tracing/OpenTelemetryMetricsFactory.java | 3 +-- .../tracing/OpenTelemetryMetricsRecorder.java | 3 +-- .../tracing/OpenTelemetryMetricsTracer.java | 6 ++--- .../tracing/OpenTelemetryTracingFactory.java | 6 ++--- .../tracing/OpenTelemetryTracingTracer.java | 8 +++---- .../api/gax/tracing/OpencensusTracer.java | 6 ++--- .../gax/tracing/OpencensusTracerFactory.java | 6 ++--- .../com/google/api/gax/tracing/SpanName.java | 3 +-- .../google/api/gax/tracing/TraceFinisher.java | 3 +-- .../gax/tracing/TracedBatchingCallable.java | 3 +-- .../api/gax/tracing/TracedBidiCallable.java | 3 +-- .../TracedClientStreamingCallable.java | 3 +-- .../gax/tracing/TracedOperationCallable.java | 3 +-- .../TracedOperationInitialCallable.java | 3 +-- .../gax/tracing/TracedResponseObserver.java | 3 +-- .../TracedServerStreamingCallable.java | 3 +-- .../api/gax/tracing/TracedUnaryCallable.java | 3 +-- .../api/gax/util/TimeConversionUtils.java | 9 ++++---- 304 files changed, 542 insertions(+), 459 deletions(-) create mode 100644 sdk-platform-java/gax-java/gax/javac.20260715_171737.args diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ApiStreamObserverDelegate.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ApiStreamObserverDelegate.java index c19818751b1d..fd8c6abb0813 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ApiStreamObserverDelegate.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ApiStreamObserverDelegate.java @@ -31,12 +31,14 @@ import com.google.api.gax.rpc.ApiStreamObserver; import io.grpc.stub.StreamObserver; +import org.jspecify.annotations.NullMarked; /** * A delegate class that transfers calls to the ApiStreamObserver object. * *

    Package-private for internal use. */ +@NullMarked class ApiStreamObserverDelegate implements StreamObserver { private final ApiStreamObserver delegate; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/CallOptionsUtil.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/CallOptionsUtil.java index 9d6e85bdaac3..4904e34f0990 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/CallOptionsUtil.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/CallOptionsUtil.java @@ -37,8 +37,10 @@ import io.grpc.Metadata.Key; import java.util.Collections; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** A utility class that provides helper functions to work with custom call options. */ +@NullMarked class CallOptionsUtil { // this is a call option name, not a header name, it is not transferred over the wire private static final CallOptions.Key, String>> DYNAMIC_HEADERS_CALL_OPTION_KEY = diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelFactory.java index 416ce44699fe..3ecedd5201e8 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelFactory.java @@ -32,12 +32,14 @@ import com.google.api.core.InternalApi; import io.grpc.ManagedChannel; import java.io.IOException; +import org.jspecify.annotations.NullMarked; /** * This interface represents a factory for creating one ManagedChannel * *

    This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public interface ChannelFactory { ManagedChannel createSingleChannel() throws IOException; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java index d611c96ff4c8..f76d550e8ba7 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java @@ -57,6 +57,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A {@link ManagedChannel} that will send requests round-robin via a set of channels. @@ -68,6 +69,7 @@ * *

    Package-private for internal use. */ +@NullMarked class ChannelPool extends ManagedChannel { static final String CHANNEL_POOL_CONSECUTIVE_RESIZING_WARNING = "The gRPC ChannelPool used in the client has been flagged to be repeatedly resizing (5+ times). See https://github.com/googleapis/google-cloud-java/blob/main/docs/grpc_channel_pool_guide.md for more information about this behavior."; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPoolSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPoolSettings.java index 559e1197bc59..443caaa429af 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPoolSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPoolSettings.java @@ -34,6 +34,7 @@ import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import java.time.Duration; +import org.jspecify.annotations.NullMarked; /** * Settings to control {@link ChannelPool} behavior. @@ -52,6 +53,7 @@ * *

    The settings in this class will be applied every minute. */ +@NullMarked @BetaApi("surface for channel pool sizing is not yet stable") @AutoValue public abstract class ChannelPoolSettings { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPrimer.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPrimer.java index 5964de957c71..12e05fdf72c5 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPrimer.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPrimer.java @@ -31,12 +31,14 @@ import com.google.api.core.InternalApi; import io.grpc.ManagedChannel; +import org.jspecify.annotations.NullMarked; /** * An interface to prepare a ManagedChannel for normal requests by priming the channel * *

    This is public only for technical reasons, for advanced usage. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public interface ChannelPrimer { void primeChannel(ManagedChannel managedChannel); diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ExceptionResponseObserver.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ExceptionResponseObserver.java index f9357f9d5dec..bc329581864e 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ExceptionResponseObserver.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ExceptionResponseObserver.java @@ -33,8 +33,10 @@ import com.google.api.gax.rpc.StateCheckingResponseObserver; import com.google.api.gax.rpc.StreamController; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** Package-private for internal use. */ +@NullMarked class ExceptionResponseObserver extends StateCheckingResponseObserver { private ResponseObserver innerObserver; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GaxGrpcProperties.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GaxGrpcProperties.java index e36665501789..74aada53fb3d 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GaxGrpcProperties.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GaxGrpcProperties.java @@ -33,8 +33,10 @@ import com.google.api.gax.core.GaxProperties; import io.grpc.Channel; import java.util.regex.Pattern; +import org.jspecify.annotations.NullMarked; /** Provides properties of the GAX-GRPC library. */ +@NullMarked @InternalApi public class GaxGrpcProperties { private static final String GAX_GRPC_VERSION = diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcApiExceptionFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcApiExceptionFactory.java index 9c3dd0a8433e..6721fcb31cf4 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcApiExceptionFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcApiExceptionFactory.java @@ -41,6 +41,7 @@ import io.grpc.StatusException; import io.grpc.StatusRuntimeException; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * Core logic for transforming GRPC exceptions into {@link ApiException}s. This logic is shared @@ -48,6 +49,7 @@ * *

    Package-private for internal use. */ +@NullMarked class GrpcApiExceptionFactory { @VisibleForTesting static final String ERROR_DETAIL_KEY = "grpc-status-details-bin"; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java index 7ff7c54de6f0..b5dacde8ade1 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java @@ -66,6 +66,7 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * GrpcCallContext encapsulates context data used to make a grpc call. @@ -75,6 +76,7 @@ * #withTransportChannel}, return copies of the object, but with one field changed. The immutability * and thread safety of the arguments solely depends on the arguments themselves. */ +@NullMarked @BetaApi("Reference ApiCallContext instead - this class is likely to experience breaking changes") public final class GrpcCallContext implements ApiCallContext { private static final GrpcStatusCode UNAUTHENTICATED_STATUS_CODE = diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallSettings.java index 7f2cc2826a44..9e2206df6d0b 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallSettings.java @@ -34,8 +34,10 @@ import com.google.api.gax.rpc.RequestParamsExtractor; import com.google.api.gax.rpc.ResourceNameExtractor; import io.grpc.MethodDescriptor; +import org.jspecify.annotations.NullMarked; /** Grpc-specific settings for creating callables. */ +@NullMarked public class GrpcCallSettings { private final MethodDescriptor methodDescriptor; private final RequestParamsExtractor paramsExtractor; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallableFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallableFactory.java index ef2efa9663b1..0a92a1796689 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallableFactory.java @@ -61,8 +61,10 @@ import com.google.longrunning.stub.OperationsStub; import io.grpc.MethodDescriptor; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** Class with utility methods to create grpc-based direct callables. */ +@NullMarked public class GrpcCallableFactory { private GrpcCallableFactory() {} diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcChannelUUIDInterceptor.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcChannelUUIDInterceptor.java index ac450689e07a..4a1e534c107b 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcChannelUUIDInterceptor.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcChannelUUIDInterceptor.java @@ -36,7 +36,9 @@ import io.grpc.ClientInterceptor; import io.grpc.MethodDescriptor; import java.util.UUID; +import org.jspecify.annotations.NullMarked; +@NullMarked class GrpcChannelUUIDInterceptor implements ClientInterceptor { private final String uuid = UUID.randomUUID().toString(); diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcClientCalls.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcClientCalls.java index 47e62ae9f658..87c6d2f7bdec 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcClientCalls.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcClientCalls.java @@ -48,12 +48,14 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; +import org.jspecify.annotations.NullMarked; /** * {@code GrpcClientCalls} creates a new {@code ClientCall} from the given call context. * *

    Package-private for internal use. */ +@NullMarked class GrpcClientCalls { private static final Logger LOGGER = Logger.getLogger(GrpcDirectCallable.class.getName()); diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectBidiStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectBidiStreamingCallable.java index 178044dc9229..d5000b391eec 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectBidiStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectBidiStreamingCallable.java @@ -37,6 +37,7 @@ import com.google.common.base.Preconditions; import io.grpc.ClientCall; import io.grpc.MethodDescriptor; +import org.jspecify.annotations.NullMarked; /** * {@code GrpcDirectBidiStreamingCallable} creates bidirectional streaming gRPC calls. @@ -45,6 +46,7 @@ * *

    Package-private for internal use. */ +@NullMarked class GrpcDirectBidiStreamingCallable extends BidiStreamingCallable { private final MethodDescriptor descriptor; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectCallable.java index 33041145dd4e..dd29e663cb36 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectCallable.java @@ -38,12 +38,14 @@ import io.grpc.ClientCall; import io.grpc.MethodDescriptor; import io.grpc.stub.ClientCalls; +import org.jspecify.annotations.NullMarked; /** * {@code GrpcDirectCallable} creates gRPC calls. * *

    Package-private for internal use. */ +@NullMarked @InternalApi class GrpcDirectCallable extends UnaryCallable { private final MethodDescriptor descriptor; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectClientStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectClientStreamingCallable.java index 93c1a956276c..d3bc55f6c5ae 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectClientStreamingCallable.java @@ -36,6 +36,7 @@ import io.grpc.ClientCall; import io.grpc.MethodDescriptor; import io.grpc.stub.ClientCalls; +import org.jspecify.annotations.NullMarked; /** * {@code GrpcDirectClientStreamingCallable} creates client-streaming gRPC calls. @@ -44,6 +45,7 @@ * *

    Package-private for internal use. */ +@NullMarked class GrpcDirectClientStreamingCallable extends ClientStreamingCallable { private final MethodDescriptor descriptor; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectServerStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectServerStreamingCallable.java index 2b562f07ac44..624d67bd38d0 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectServerStreamingCallable.java @@ -36,6 +36,7 @@ import com.google.common.base.Preconditions; import io.grpc.ClientCall; import io.grpc.MethodDescriptor; +import org.jspecify.annotations.NullMarked; /** * {@code GrpcDirectServerStreamingCallable} creates server-streaming gRPC calls. @@ -48,6 +49,7 @@ * *

    Package-private for internal use. */ +@NullMarked class GrpcDirectServerStreamingCallable extends ServerStreamingCallable { private final MethodDescriptor descriptor; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectStreamController.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectStreamController.java index 83c09d48045e..61054d8ddb48 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectStreamController.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcDirectStreamController.java @@ -36,6 +36,7 @@ import io.grpc.Metadata; import io.grpc.Status; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Wraps a GRPC ClientCall in a {@link StreamController}. It feeds events to a {@link @@ -43,6 +44,7 @@ * *

    Package-private for internal use. */ +@NullMarked class GrpcDirectStreamController implements StreamController { private static final Runnable NOOP_RUNNABLE = new Runnable() { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionBidiStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionBidiStreamingCallable.java index b6a9ee024a02..55fc37d31839 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionBidiStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionBidiStreamingCallable.java @@ -37,12 +37,14 @@ import com.google.api.gax.rpc.ResponseObserver; import com.google.api.gax.rpc.StatusCode; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a call into an instance of {@link ApiException}. * *

    Package-private for internal use. */ +@NullMarked final class GrpcExceptionBidiStreamingCallable extends BidiStreamingCallable { private final BidiStreamingCallable innerCallable; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionCallable.java index b069294d0001..7c084bbb1a07 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionCallable.java @@ -42,12 +42,14 @@ import com.google.common.base.Preconditions; import java.util.Set; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a call into an instance of {@link ApiException}. * *

    Package-private for internal use. */ +@NullMarked class GrpcExceptionCallable extends UnaryCallable { private final UnaryCallable callable; private final GrpcApiExceptionFactory exceptionFactory; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionClientStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionClientStreamingCallable.java index d3a785638029..1bd8aad41e4e 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionClientStreamingCallable.java @@ -35,12 +35,14 @@ import com.google.api.gax.rpc.ClientStreamingCallable; import com.google.api.gax.rpc.StatusCode; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a call into an instance of {@link ApiException}. * *

    Package-private for internal use. */ +@NullMarked final class GrpcExceptionClientStreamingCallable extends ClientStreamingCallable { private final ClientStreamingCallable innerCallable; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionServerStreamingCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionServerStreamingCallable.java index 088817487aa1..2bf7d0cd05c2 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionServerStreamingCallable.java @@ -35,12 +35,14 @@ import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.StatusCode.Code; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a call into an instance of {@link ApiException}. * *

    Package-private for internal use. */ +@NullMarked class GrpcExceptionServerStreamingCallable extends ServerStreamingCallable { private final ServerStreamingCallable inner; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionTranslatingStreamObserver.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionTranslatingStreamObserver.java index 7725344eda04..eb230aaec592 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionTranslatingStreamObserver.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcExceptionTranslatingStreamObserver.java @@ -30,6 +30,7 @@ package com.google.api.gax.grpc; import com.google.api.gax.rpc.ApiStreamObserver; +import org.jspecify.annotations.NullMarked; /** * An {@link ApiStreamObserver} that wraps grpc's errors into {@link @@ -39,6 +40,7 @@ * * @param */ +@NullMarked final class GrpcExceptionTranslatingStreamObserver implements ApiStreamObserver { private final ApiStreamObserver innerObserver; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcHeaderInterceptor.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcHeaderInterceptor.java index 9e74538daf79..b02fb6b745f0 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcHeaderInterceptor.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcHeaderInterceptor.java @@ -41,12 +41,14 @@ import io.grpc.MethodDescriptor; import java.util.Map; import java.util.Map.Entry; +import org.jspecify.annotations.NullMarked; /** * An interceptor to handle custom headers. * *

    Package-private for internal usage. */ +@NullMarked @InternalApi public class GrpcHeaderInterceptor implements ClientInterceptor { private final Map, String> staticHeaders; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcInterceptorProvider.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcInterceptorProvider.java index f3d4de8bacdc..f16cf35a83f5 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcInterceptorProvider.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcInterceptorProvider.java @@ -31,8 +31,10 @@ import io.grpc.ClientInterceptor; import java.util.List; +import org.jspecify.annotations.NullMarked; /** Provider of custom gRPC ClientInterceptors. */ +@NullMarked public interface GrpcInterceptorProvider { /** diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLoggingInterceptor.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLoggingInterceptor.java index 9c305261cbc7..d0f545078d6e 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLoggingInterceptor.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLoggingInterceptor.java @@ -51,7 +51,9 @@ import io.grpc.Status; import java.util.HashMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; +@NullMarked @InternalApi public class GrpcLoggingInterceptor implements ClientInterceptor { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLongRunningClient.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLongRunningClient.java index fca5e73b9448..f81b3c35e263 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLongRunningClient.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcLongRunningClient.java @@ -40,12 +40,14 @@ import com.google.longrunning.Operation; import com.google.longrunning.stub.OperationsStub; import com.google.protobuf.Empty; +import org.jspecify.annotations.NullMarked; /** * Implementation of LongRunningClient based on gRPC. * *

    Package-private for internal usage. */ +@NullMarked class GrpcLongRunningClient implements LongRunningClient { private final OperationsStub operationsStub; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcMetadataHandlerInterceptor.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcMetadataHandlerInterceptor.java index c3940f4db9e5..1e933eb2575e 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcMetadataHandlerInterceptor.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcMetadataHandlerInterceptor.java @@ -39,12 +39,14 @@ import io.grpc.Metadata; import io.grpc.MethodDescriptor; import io.grpc.Status; +import org.jspecify.annotations.NullMarked; /** * An interceptor to handle receiving the response headers. * *

    Package-private for internal usage. */ +@NullMarked @InternalApi class GrpcMetadataHandlerInterceptor implements ClientInterceptor { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshot.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshot.java index 4483ef1cf83f..9f271e57f0b8 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshot.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshot.java @@ -33,12 +33,14 @@ import com.google.api.gax.rpc.StatusCode; import com.google.longrunning.Operation; import io.grpc.Status; +import org.jspecify.annotations.NullMarked; /** * Implementation of OperationSnapshot based on gRPC. * *

    Package-private for internal usage. */ +@NullMarked class GrpcOperationSnapshot implements OperationSnapshot { private final Operation operation; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshotCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshotCallable.java index a7f467a9903f..fb0e72c9e947 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshotCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcOperationSnapshotCallable.java @@ -38,6 +38,7 @@ import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.UnaryCallable; import com.google.longrunning.Operation; +import org.jspecify.annotations.NullMarked; /** * A {@code UnaryCallable} that wraps a UnaryCallable returning an Operation and returns an @@ -45,6 +46,7 @@ * *

    Package-private for internal usage. */ +@NullMarked class GrpcOperationSnapshotCallable extends UnaryCallable { private final UnaryCallable innerCallable; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcRawCallableFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcRawCallableFactory.java index 318f096291a2..444485d96065 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcRawCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcRawCallableFactory.java @@ -36,8 +36,10 @@ import com.google.api.gax.rpc.StatusCode; import com.google.api.gax.rpc.UnaryCallable; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** Class with utility methods to create low level grpc-based direct callables. */ +@NullMarked @InternalApi("For internal use by google-cloud-java clients only") public class GrpcRawCallableFactory { private GrpcRawCallableFactory() {} diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcResponseMetadata.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcResponseMetadata.java index 9e018eefb648..95c976581147 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcResponseMetadata.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcResponseMetadata.java @@ -32,6 +32,7 @@ import com.google.api.gax.rpc.ApiCallContext; import com.google.common.base.Preconditions; import io.grpc.Metadata; +import org.jspecify.annotations.NullMarked; /** * GrpcResponseMetadata provides a mechanism to access the headers and trailers returned by a gRPC @@ -52,6 +53,7 @@ * * */ +@NullMarked public class GrpcResponseMetadata implements ResponseMetadataHandler { private volatile Metadata responseMetadata; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcServerStreamingRequestParamCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcServerStreamingRequestParamCallable.java index 27b4c564543f..9d709cb9a4bb 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcServerStreamingRequestParamCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcServerStreamingRequestParamCallable.java @@ -35,6 +35,7 @@ import com.google.api.gax.rpc.ResponseObserver; import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A {@code ServerStreamingCallable} that extracts values from the fields of the request and inserts @@ -42,6 +43,7 @@ * *

    Package-private for internal usage. */ +@NullMarked class GrpcServerStreamingRequestParamCallable extends ServerStreamingCallable { private final ServerStreamingCallable callable; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStatusCode.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStatusCode.java index b3db79edabc0..782c409b3d84 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStatusCode.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStatusCode.java @@ -33,8 +33,10 @@ import com.google.api.gax.rpc.StatusCode; import com.google.auto.value.AutoValue; import io.grpc.Status; +import org.jspecify.annotations.NullMarked; /** A failure code specific to a gRPC call. */ +@NullMarked @InternalExtensionOnly @AutoValue public abstract class GrpcStatusCode implements StatusCode { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStubCallableFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStubCallableFactory.java index 131dafc1f861..5925022746a7 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStubCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcStubCallableFactory.java @@ -43,7 +43,9 @@ import com.google.api.gax.rpc.UnaryCallable; import com.google.longrunning.Operation; import com.google.longrunning.stub.OperationsStub; +import org.jspecify.annotations.NullMarked; +@NullMarked public interface GrpcStubCallableFactory { /** diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcTransportChannel.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcTransportChannel.java index 2fa0908f17bc..e0a520facb17 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcTransportChannel.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcTransportChannel.java @@ -36,8 +36,10 @@ import io.grpc.Channel; import io.grpc.ManagedChannel; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** Implementation of TransportChannel based on gRPC. */ +@NullMarked @AutoValue @InternalExtensionOnly public abstract class GrpcTransportChannel implements TransportChannel { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcUnaryRequestParamCallable.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcUnaryRequestParamCallable.java index 22bbd8409bc8..ff69e5716ef5 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcUnaryRequestParamCallable.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcUnaryRequestParamCallable.java @@ -35,6 +35,7 @@ import com.google.api.gax.rpc.RequestUrlParamsEncoder; import com.google.api.gax.rpc.UnaryCallable; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A {@code UnaryCallable} that extracts values from the fields of the request and inserts them into @@ -42,6 +43,7 @@ * *

    Package-private for internal usage. */ +@NullMarked class GrpcUnaryRequestParamCallable extends UnaryCallable { private final UnaryCallable callable; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java index 56f44fa7ae0a..286ae47a69aa 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java @@ -84,6 +84,7 @@ import java.util.logging.Logger; import javax.annotation.Nullable; import javax.net.ssl.KeyManagerFactory; +import org.jspecify.annotations.NullMarked; /** * InstantiatingGrpcChannelProvider is a TransportChannelProvider which constructs a gRPC @@ -97,6 +98,7 @@ *

    The client lib header and generator header values are used to form a value that goes into the * http header of requests to the service. */ +@NullMarked public final class InstantiatingGrpcChannelProvider implements TransportChannelProvider { private static String systemProductName; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ProtoOperationTransformers.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ProtoOperationTransformers.java index e3d990d9e99e..425842b17499 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ProtoOperationTransformers.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ProtoOperationTransformers.java @@ -36,8 +36,10 @@ import com.google.protobuf.Any; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; +import org.jspecify.annotations.NullMarked; /** Public for technical reasons; intended for use by generated code. */ +@NullMarked public class ProtoOperationTransformers { private ProtoOperationTransformers() {} diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ResponseMetadataHandler.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ResponseMetadataHandler.java index 4ce195602989..4b867c5f2bd2 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ResponseMetadataHandler.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ResponseMetadataHandler.java @@ -30,12 +30,14 @@ package com.google.api.gax.grpc; import io.grpc.Metadata; +import org.jspecify.annotations.NullMarked; /** * An interface to handle metadata returned from an RPC. A ResponseMetadataHandler is used by the * GrpcMetadataHandlerInterceptor class to provide custom handling of the returned headers and * trailers. */ +@NullMarked public interface ResponseMetadataHandler { /** Handle the headers returned by an RPC. */ diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/StreamObserverDelegate.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/StreamObserverDelegate.java index 3b66ba1ca63d..8c3ac600b519 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/StreamObserverDelegate.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/StreamObserverDelegate.java @@ -31,12 +31,14 @@ import com.google.api.gax.rpc.ApiStreamObserver; import io.grpc.stub.StreamObserver; +import org.jspecify.annotations.NullMarked; /** * A delegate class that transfers calls to the StreamObserver object. * *

    Package-private for internal use. */ +@NullMarked class StreamObserverDelegate implements ApiStreamObserver { private final StreamObserver delegate; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/nativeimage/GrpcNettyFeature.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/nativeimage/GrpcNettyFeature.java index 88266332dc57..1a9aa49029b7 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/nativeimage/GrpcNettyFeature.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/nativeimage/GrpcNettyFeature.java @@ -36,8 +36,10 @@ import static com.google.api.gax.nativeimage.NativeImageUtils.registerForUnsafeFieldAccess; import org.graalvm.nativeimage.hosted.Feature; +import org.jspecify.annotations.NullMarked; /** Configures Native Image settings for the grpc-netty-shaded dependency. */ +@NullMarked final class GrpcNettyFeature implements Feature { private static final String GRPC_NETTY_SHADED_CLASS = diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java index 024950cda3ba..a14f9dc3af04 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java @@ -46,6 +46,7 @@ import java.io.IOException; import java.util.List; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** * Service Description: Manages long-running operations with an API service. @@ -108,6 +109,7 @@ * * */ +@NullMarked public class OperationsClient implements BackgroundResource { private final OperationsSettings settings; private final OperationsStub stub; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java index 22ea7e5a1d48..e3a5f4215459 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java @@ -41,8 +41,10 @@ import com.google.longrunning.stub.OperationsStubSettings; import com.google.protobuf.Empty; import java.io.IOException; +import org.jspecify.annotations.NullMarked; /** Settings class to configure an instance of {@link OperationsClient}. */ +@NullMarked public class OperationsSettings extends ClientSettings { /** Returns the object with the settings used for calls to getOperation. */ public UnaryCallSettings getOperationSettings() { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/package-info.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/package-info.java index 7e509fca0bc9..6d7998bd6751 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/package-info.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/package-info.java @@ -44,4 +44,7 @@ * service that returns long-running operations should implement the `Operations` interface so * developers can have a consistent client experience. */ +@NullMarked package com.google.longrunning; + +import org.jspecify.annotations.NullMarked; diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsCallableFactory.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsCallableFactory.java index 8a18008c0a30..d4072d7fcb58 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsCallableFactory.java @@ -45,12 +45,14 @@ import com.google.api.gax.rpc.UnaryCallSettings; import com.google.api.gax.rpc.UnaryCallable; import com.google.longrunning.Operation; +import org.jspecify.annotations.NullMarked; /** * gRPC callable factory implementation for Google Long Running Operations API. * *

    This class is for advanced usage. */ +@NullMarked public class GrpcOperationsCallableFactory implements GrpcStubCallableFactory { @Override public UnaryCallable createUnaryCallable( diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java index c00574e88951..63abcaf8563d 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java @@ -52,12 +52,14 @@ import java.io.IOException; import java.util.Map; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** * gRPC stub implementation for Google Long Running Operations API. * *

    This class is for advanced usage and reflects the underlying API directly. */ +@NullMarked public class GrpcOperationsStub extends OperationsStub { private static final MethodDescriptor diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStub.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStub.java index 467572b001a1..ca6a9181b9b7 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStub.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStub.java @@ -41,12 +41,14 @@ import com.google.longrunning.Operation; import com.google.longrunning.WaitOperationRequest; import com.google.protobuf.Empty; +import org.jspecify.annotations.NullMarked; /** * Base stub class for Google Long Running Operations API. * *

    This class is for advanced usage and reflects the underlying API directly. */ +@NullMarked public abstract class OperationsStub implements BackgroundResource { public UnaryCallable getOperationCallable() { diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java index 47c3a981b8d9..6443430311a7 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java @@ -63,8 +63,10 @@ import com.google.longrunning.WaitOperationRequest; import com.google.protobuf.Empty; import java.io.IOException; +import org.jspecify.annotations.NullMarked; /** Settings class to configure an instance of {@link OperationsStub}. */ +@NullMarked public class OperationsStubSettings extends StubSettings { private final UnaryCallSettings getOperationSettings; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java index 69e2e0fff7e1..a03314c6f9b1 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java @@ -31,9 +31,11 @@ import com.google.auto.value.AutoValue; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; @AutoValue /* Method descriptor for messages to be transmitted over HTTP. */ +@NullMarked public abstract class ApiMethodDescriptor { public enum MethodType { UNARY, diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java index aa42604596fc..463acb9aebed 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * A functional interface to be implemented for each request message to extract specific fields from * it. For advanced usage only. */ +@NullMarked @FunctionalInterface public interface FieldsExtractor { ParamsT extract(RequestT request); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java index 09e97a61c86c..27311df4919f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java @@ -30,11 +30,13 @@ package com.google.api.gax.httpjson; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A {@link HttpJsonClientCall} which forwards all of its methods to another {@link * HttpJsonClientCall}. */ +@NullMarked public abstract class ForwardingHttpJsonClientCall extends HttpJsonClientCall { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCallListener.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCallListener.java index 1d6eb2599a6a..26ecc1895f9f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCallListener.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCallListener.java @@ -30,10 +30,13 @@ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * A {@link HttpJsonClientCall.Listener} which forwards all of its methods to another {@link * HttpJsonClientCall.Listener}. */ +@NullMarked public abstract class ForwardingHttpJsonClientCallListener extends HttpJsonClientCall.Listener { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/GaxHttpJsonProperties.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/GaxHttpJsonProperties.java index a12f771fdc3f..af4503fe9257 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/GaxHttpJsonProperties.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/GaxHttpJsonProperties.java @@ -31,8 +31,10 @@ import com.google.api.core.InternalApi; import java.util.regex.Pattern; +import org.jspecify.annotations.NullMarked; /** Provides properties of the GAX-HTTPJSON library. */ +@NullMarked @InternalApi public class GaxHttpJsonProperties { private static final Pattern DEFAULT_API_CLIENT_HEADER_PATTERN = diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java index 8f1ce432ef66..54bc59c76d8f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java @@ -36,8 +36,10 @@ import com.google.common.collect.ImmutableList; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** This class is for internal use only and is public for technical reasons. */ +@NullMarked @InternalApi public class HttpHeadersUtils { public static String getUserAgentValue(Map headersMap) { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonApiExceptionFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonApiExceptionFactory.java index 55c9a68b52b9..bbd7e3ea58cd 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonApiExceptionFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonApiExceptionFactory.java @@ -39,7 +39,9 @@ import com.google.rpc.Status; import java.util.Set; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; +@NullMarked class HttpJsonApiExceptionFactory { private final Set retryableCodes; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java index c946e9aab03d..7c48b22af5b0 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java @@ -57,6 +57,7 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * HttpJsonCallContext encapsulates context data used to make an http-json call. @@ -66,6 +67,7 @@ * copies of the object, but with one field changed. The immutability and thread safety of the * arguments solely depends on the arguments themselves. */ +@NullMarked public final class HttpJsonCallContext implements ApiCallContext { private static final HttpJsonStatusCode UNAUTHENTICATED_STATUS_CODE = HttpJsonStatusCode.of(StatusCode.Code.UNAUTHENTICATED); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java index 1f0022bb4390..0bc069b67007 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java @@ -40,8 +40,10 @@ import com.google.auto.value.AutoValue; import com.google.protobuf.TypeRegistry; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** Options for an http-json call, including deadline and credentials. */ +@NullMarked @AutoValue public abstract class HttpJsonCallOptions { public static final HttpJsonCallOptions DEFAULT = newBuilder().build(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallSettings.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallSettings.java index 835fe5c92346..36ba46069e37 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallSettings.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallSettings.java @@ -34,8 +34,10 @@ import com.google.api.gax.rpc.RequestParamsExtractor; import com.google.api.gax.rpc.ResourceNameExtractor; import com.google.protobuf.TypeRegistry; +import org.jspecify.annotations.NullMarked; /** HTTP-specific settings for creating callables. */ +@NullMarked public class HttpJsonCallSettings { private final ApiMethodDescriptor methodDescriptor; private final RequestParamsExtractor paramsExtractor; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallableFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallableFactory.java index 447fc46dd9e0..3baeb3d284c2 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallableFactory.java @@ -46,8 +46,10 @@ import com.google.api.gax.tracing.ApiTracerContext; import com.google.api.gax.tracing.TracedUnaryCallable; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** Class with utility methods to create http/json-based direct callables. */ +@NullMarked public class HttpJsonCallableFactory { private HttpJsonCallableFactory() {} diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonChannel.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonChannel.java index bea8c5ea8021..4d6249e2b7e2 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonChannel.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonChannel.java @@ -29,7 +29,10 @@ */ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** HttpJsonChannel contains the functionality to issue http-json calls. */ +@NullMarked public interface HttpJsonChannel { HttpJsonClientCall newCall( ApiMethodDescriptor methodDescriptor, HttpJsonCallOptions callOptions); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java index e70a6eb8576f..5006dbbccdc0 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java @@ -30,6 +30,7 @@ package com.google.api.gax.httpjson; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; // This class mimics the structure and behavior of the corresponding ClientCall from gRPC package as // closely as possible. @@ -57,6 +58,7 @@ * @param type of message sent to the server * @param type of message received one or more times from the server */ +@NullMarked public abstract class HttpJsonClientCall { /** * Callbacks for receiving metadata, response messages and completion status from the server. diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java index 53a4dd66d3ad..4d8ad21f7a2b 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java @@ -48,6 +48,7 @@ import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This class serves as main implementation of {@link HttpJsonClientCall} for REST transport and is @@ -60,6 +61,7 @@ * @param call request type * @param call response type */ +@NullMarked final class HttpJsonClientCallImpl extends HttpJsonClientCall implements ResultListener { // diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCalls.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCalls.java index 6a2f97401101..221e4fa2d8d0 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCalls.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCalls.java @@ -34,12 +34,14 @@ import com.google.api.gax.rpc.ApiCallContext; import java.util.logging.Level; import java.util.logging.Logger; +import org.jspecify.annotations.NullMarked; /** * {@code HttpJsonClientCalls} creates a new {@code HttpJsonClientCall} from the given call context. * *

    Package-private for internal use. */ +@NullMarked class HttpJsonClientCalls { private static final Logger LOGGER = Logger.getLogger(HttpJsonClientCalls.class.getName()); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientInterceptor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientInterceptor.java index 08dbe2970beb..c621a0c9455e 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientInterceptor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientInterceptor.java @@ -29,6 +29,8 @@ */ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * Interface for intercepting outgoing calls before they are dispatched by a {@link * HttpJsonChannel}. @@ -36,6 +38,7 @@ *

    The interceptor may be called for multiple {@link HttpJsonClientCall calls} by one or more * threads without completing the previous ones first. The implementations must be thread-safe. */ +@NullMarked public interface HttpJsonClientInterceptor { /** * Intercept {@link HttpJsonClientCall} creation by the {@code next} {@link HttpJsonChannel}. diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java index abf3290067d8..6784291a4f8e 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java @@ -34,12 +34,14 @@ import com.google.api.gax.rpc.UnaryCallable; import com.google.common.base.Preconditions; import com.google.protobuf.TypeRegistry; +import org.jspecify.annotations.NullMarked; /** * {@code HttpJsonDirectCallable} creates HTTP calls. * *

    Package-private for internal use. */ +@NullMarked class HttpJsonDirectCallable extends UnaryCallable { private final ApiMethodDescriptor descriptor; private final TypeRegistry typeRegistry; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallable.java index 2f98ac177eaf..04db4b091198 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectServerStreamingCallable.java @@ -34,6 +34,7 @@ import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.StreamController; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * {@code HttpJsonDirectServerStreamingCallable} creates server-streaming REST calls. @@ -45,6 +46,7 @@ * *

    Package-private for internal use. */ +@NullMarked class HttpJsonDirectServerStreamingCallable extends ServerStreamingCallable { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectStreamController.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectStreamController.java index 9e1b23b25741..6596888e7712 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectStreamController.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectStreamController.java @@ -34,6 +34,7 @@ import com.google.api.gax.rpc.StreamController; import com.google.common.base.Preconditions; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Wraps a HttpJsonClientCall in a {@link StreamController}. It feeds events to a {@link @@ -41,6 +42,7 @@ * *

    Package-private for internal use. */ +@NullMarked class HttpJsonDirectStreamController implements StreamController { private final HttpJsonClientCall clientCall; private final ResponseObserver responseObserver; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonErrorParser.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonErrorParser.java index 329a7542b96b..6ba0be8f8f1b 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonErrorParser.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonErrorParser.java @@ -50,6 +50,7 @@ import com.google.rpc.ResourceInfo; import com.google.rpc.RetryInfo; import com.google.rpc.Status; +import org.jspecify.annotations.NullMarked; /** * Utility for parsing Google Cloud error responses from JSON. @@ -59,6 +60,7 @@ * href="https://google.aip.dev/193#http11-json-representation">AIP-193. The payload typically * contains a top-level "error" object with a "details" list. */ +@NullMarked @InternalApi class HttpJsonErrorParser { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionCallable.java index ede9ce3437fd..6360a9404b19 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionCallable.java @@ -42,12 +42,14 @@ import com.google.common.base.Preconditions; import java.util.Set; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a call into an instance of {@link ApiException}. * *

    Package-private for internal use. */ +@NullMarked class HttpJsonExceptionCallable extends UnaryCallable { private final UnaryCallable callable; private final HttpJsonApiExceptionFactory exceptionFactory; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionResponseObserver.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionResponseObserver.java index 0264a33f080a..b8998b65500e 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionResponseObserver.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionResponseObserver.java @@ -33,8 +33,10 @@ import com.google.api.gax.rpc.StateCheckingResponseObserver; import com.google.api.gax.rpc.StreamController; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** Package-private for internal use. */ +@NullMarked class HttpJsonExceptionResponseObserver extends StateCheckingResponseObserver { private final ResponseObserver innerObserver; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionServerStreamingCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionServerStreamingCallable.java index 7c82b2fb1353..7d56ec59d544 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonExceptionServerStreamingCallable.java @@ -36,6 +36,7 @@ import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.StatusCode.Code; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * Transforms all {@code Throwable}s thrown during a rest call into an instance of {@link @@ -43,6 +44,7 @@ * *

    Package-private for internal use. */ +@NullMarked class HttpJsonExceptionServerStreamingCallable extends ServerStreamingCallable { private final ServerStreamingCallable inner; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancer.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancer.java index 0efa599b8b01..2e9be2eb3788 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancer.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancer.java @@ -30,8 +30,10 @@ package com.google.api.gax.httpjson; import com.google.api.client.http.HttpHeaders; +import org.jspecify.annotations.NullMarked; /** Interface for functionality to enhance headers for an http-json call. */ +@NullMarked public interface HttpJsonHeaderEnhancer { void enhance(HttpHeaders headers); } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancers.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancers.java index 074cfc29b25a..bbd609293f78 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancers.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderEnhancers.java @@ -30,8 +30,10 @@ package com.google.api.gax.httpjson; import com.google.api.client.http.HttpHeaders; +import org.jspecify.annotations.NullMarked; /** Utility class that creates instances of {@link HttpJsonHeaderEnhancer}. */ +@NullMarked public class HttpJsonHeaderEnhancers { private HttpJsonHeaderEnhancers() {} diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderInterceptor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderInterceptor.java index 0f58181cb61b..a07931572250 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderInterceptor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonHeaderInterceptor.java @@ -32,12 +32,14 @@ import com.google.api.gax.httpjson.ForwardingHttpJsonClientCall.SimpleForwardingHttpJsonClientCall; import com.google.common.collect.ImmutableMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * An interceptor to handle custom headers. * *

    Package-private for internal usage. */ +@NullMarked class HttpJsonHeaderInterceptor implements HttpJsonClientInterceptor { private final Map staticHeaders; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonInterceptorProvider.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonInterceptorProvider.java index e8bb906d699e..fcbbdc15173a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonInterceptorProvider.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonInterceptorProvider.java @@ -30,8 +30,10 @@ package com.google.api.gax.httpjson; import java.util.List; +import org.jspecify.annotations.NullMarked; /** Provider of custom REST ClientInterceptors. */ +@NullMarked public interface HttpJsonInterceptorProvider { /** diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptor.java index 5a1b1b8c2b0f..0e5477c64143 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLoggingInterceptor.java @@ -43,7 +43,9 @@ import com.google.api.gax.logging.LoggerProvider; import java.util.HashMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; +@NullMarked @InternalApi public class HttpJsonLoggingInterceptor implements HttpJsonClientInterceptor { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLongRunningClient.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLongRunningClient.java index 55bb5733cf88..b73f202c1c3f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLongRunningClient.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonLongRunningClient.java @@ -35,12 +35,14 @@ import com.google.api.gax.rpc.LongRunningClient; import com.google.api.gax.rpc.TranslatingUnaryCallable; import com.google.api.gax.rpc.UnaryCallable; +import org.jspecify.annotations.NullMarked; /** * Implementation of LongRunningClient based on REST transport. * *

    Public for technical reasons. For internal use only. */ +@NullMarked @InternalApi public class HttpJsonLongRunningClient implements LongRunningClient { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java index 558217a9b084..374e9b3fb62e 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java @@ -36,7 +36,9 @@ import java.util.List; import java.util.Map; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; +@NullMarked @AutoValue @InternalExtensionOnly public abstract class HttpJsonMetadata { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshot.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshot.java index 599f2e231c5e..d709b680a9b6 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshot.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshot.java @@ -34,12 +34,14 @@ import com.google.api.gax.rpc.StatusCode; import com.google.api.gax.rpc.StatusCode.Code; import com.google.longrunning.Operation; +import org.jspecify.annotations.NullMarked; /** * Implementation of OperationSnapshot based on REST transport. * *

    Public for technical reasons. For internal use only. */ +@NullMarked @InternalApi public class HttpJsonOperationSnapshot implements OperationSnapshot { private final String name; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshotCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshotCallable.java index c0a61a521366..db5ff2617395 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshotCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonOperationSnapshotCallable.java @@ -38,6 +38,7 @@ import com.google.api.gax.longrunning.OperationSnapshot; import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.UnaryCallable; +import org.jspecify.annotations.NullMarked; /** * A {@code UnaryCallable} that wraps a UnaryCallable returning an Operation and returns an @@ -45,6 +46,7 @@ * *

    Public for technical reasons. For internal use only. */ +@NullMarked @InternalApi public class HttpJsonOperationSnapshotCallable extends UnaryCallable { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonServerStreamingRequestParamCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonServerStreamingRequestParamCallable.java index 7b1d61596199..4beb85a2b31b 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonServerStreamingRequestParamCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonServerStreamingRequestParamCallable.java @@ -38,7 +38,9 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import org.jspecify.annotations.NullMarked; +@NullMarked public class HttpJsonServerStreamingRequestParamCallable extends ServerStreamingCallable { private final ServerStreamingCallable callable; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java index ab680db169d3..2ea9d6652e4b 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java @@ -32,8 +32,10 @@ import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.rpc.StatusCode; import java.util.Objects; +import org.jspecify.annotations.NullMarked; /** A failure code specific to an HTTP call. */ +@NullMarked @InternalExtensionOnly public class HttpJsonStatusCode implements StatusCode { private final int httpStatus; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusRuntimeException.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusRuntimeException.java index a1b9b1c1b4de..af357e0952eb 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusRuntimeException.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusRuntimeException.java @@ -30,10 +30,13 @@ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * HTTP status code in RuntimeException form, for propagating status code information via * exceptions. */ +@NullMarked public class HttpJsonStatusRuntimeException extends RuntimeException { private static final long serialVersionUID = -5390915748330242256L; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStubCallableFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStubCallableFactory.java index a12ca89ebccf..b022ac080a9c 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStubCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStubCallableFactory.java @@ -40,7 +40,9 @@ import com.google.api.gax.rpc.StreamingCallSettings; import com.google.api.gax.rpc.UnaryCallSettings; import com.google.api.gax.rpc.UnaryCallable; +import org.jspecify.annotations.NullMarked; +@NullMarked public interface HttpJsonStubCallableFactory< OperationT, OperationsStub extends BackgroundResource> { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonTransportChannel.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonTransportChannel.java index 355193964555..813622b6a97e 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonTransportChannel.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonTransportChannel.java @@ -33,8 +33,10 @@ import com.google.api.gax.rpc.TransportChannel; import com.google.auto.value.AutoValue; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** Implementation of TransportChannel based on http/json. */ +@NullMarked @AutoValue @InternalExtensionOnly public abstract class HttpJsonTransportChannel implements TransportChannel { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonUnaryRequestParamCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonUnaryRequestParamCallable.java index 3770872e8753..e93c819d7a0a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonUnaryRequestParamCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonUnaryRequestParamCallable.java @@ -38,6 +38,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import org.jspecify.annotations.NullMarked; /** * A {@code UnaryCallable} that extracts values from the fields of the request and inserts them into @@ -45,6 +46,7 @@ * *

    Package-private for internal usage. */ +@NullMarked class HttpJsonUnaryRequestParamCallable extends UnaryCallable { private final UnaryCallable callable; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestFormatter.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestFormatter.java index c85307d4cd27..94b8f9c63f3c 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestFormatter.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestFormatter.java @@ -33,8 +33,10 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** Interface for classes that create parts of HTTP requests from a parameterized message. */ +@NullMarked public interface HttpRequestFormatter { /** * Return a map where each entry is the name of a query param mapped to the values of the param. diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java index b3b5b2612d18..1d9f00f9066c 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java @@ -57,8 +57,10 @@ import java.util.Map; import java.util.Map.Entry; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** A runnable object that creates and executes an HTTP request. */ +@NullMarked class HttpRequestRunnable implements Runnable { private final RequestT request; private final ApiMethodDescriptor methodDescriptor; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpResponseParser.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpResponseParser.java index b2c3d5fc87d4..700a2543b0d6 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpResponseParser.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpResponseParser.java @@ -34,8 +34,10 @@ import com.google.protobuf.TypeRegistry; import java.io.InputStream; import java.io.Reader; +import org.jspecify.annotations.NullMarked; /** Interface for classes that parse parts of HTTP responses into the parameterized message type. */ +@NullMarked @InternalExtensionOnly public interface HttpResponseParser { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java index 495fec1ed450..06eed05a53e5 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java @@ -51,6 +51,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * InstantiatingHttpJsonChannelProvider is a TransportChannelProvider which constructs a {@link @@ -64,6 +65,7 @@ *

    The client lib header and generator header values are used to form a value that goes into the * http header of requests to the service. */ +@NullMarked @InternalExtensionOnly public final class InstantiatingHttpJsonChannelProvider implements TransportChannelProvider { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java index bd3bed855608..cae63ee1b9e3 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java @@ -42,8 +42,10 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** Implementation of HttpJsonChannel which can issue http-json calls. */ +@NullMarked public class ManagedHttpJsonChannel implements HttpJsonChannel, BackgroundResource { private final Executor executor; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonInterceptorChannel.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonInterceptorChannel.java index 3e71031f1c9d..eaaa8c3a7c56 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonInterceptorChannel.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonInterceptorChannel.java @@ -31,7 +31,9 @@ import com.google.common.annotations.VisibleForTesting; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; +@NullMarked class ManagedHttpJsonInterceptorChannel extends ManagedHttpJsonChannel { private final ManagedHttpJsonChannel channel; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/OperationSnapshotFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/OperationSnapshotFactory.java index 21a746c51e09..1917c56095f2 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/OperationSnapshotFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/OperationSnapshotFactory.java @@ -30,6 +30,7 @@ package com.google.api.gax.httpjson; import com.google.api.gax.longrunning.OperationSnapshot; +import org.jspecify.annotations.NullMarked; /** * A factory which creates an {@link OperationSnapshot} from an initial request message (the one @@ -41,6 +42,7 @@ * @param initial request message type * @param initial or polling response type */ +@NullMarked public interface OperationSnapshotFactory { OperationSnapshot create(RequestT request, OperationT response); } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/PollingRequestFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/PollingRequestFactory.java index f5a6e9c8d072..01f1d8750557 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/PollingRequestFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/PollingRequestFactory.java @@ -29,11 +29,14 @@ */ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * A factory which creates a subsequent polling request from a compund operation id. * * @param polling request type */ +@NullMarked public interface PollingRequestFactory { /** * Creates a polling request message from a {@code compoundOperationId}. diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageJsonStreamIterator.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageJsonStreamIterator.java index 84167de5e91a..3cd74470dbec 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageJsonStreamIterator.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageJsonStreamIterator.java @@ -38,8 +38,10 @@ import java.io.PipedWriter; import java.io.Reader; import java.util.Iterator; +import org.jspecify.annotations.NullMarked; /** This class is not thread-safe and is expected to be used under external synchronization. */ +@NullMarked class ProtoMessageJsonStreamIterator implements Closeable, Iterator { private volatile boolean arrayStarted; private final JsonReader jsonReader; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatter.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatter.java index aa3db693f5e3..efdf41131c01 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatter.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageRequestFormatter.java @@ -36,8 +36,10 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import org.jspecify.annotations.NullMarked; /** Creates parts of a HTTP request from a protobuf message. */ +@NullMarked public class ProtoMessageRequestFormatter implements HttpRequestFormatter { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java index 815d19c7a904..7ed0602129e6 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoMessageResponseParser.java @@ -36,8 +36,10 @@ import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.StandardCharsets; +import org.jspecify.annotations.NullMarked; /** The implementation of {@link HttpResponseParser} which works with protobuf messages. */ +@NullMarked public class ProtoMessageResponseParser implements HttpResponseParser { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoOperationTransformers.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoOperationTransformers.java index a5a3e436cf98..d5092cbad9ec 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoOperationTransformers.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoOperationTransformers.java @@ -36,8 +36,10 @@ import com.google.protobuf.Any; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.Message; +import org.jspecify.annotations.NullMarked; /** Public for technical reasons; intended for use by generated code. */ +@NullMarked public class ProtoOperationTransformers { private ProtoOperationTransformers() {} diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java index 5d12920fea76..6dcb31dd03d7 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ProtoRestSerializer.java @@ -42,6 +42,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * This class serializes/deserializes protobuf {@link Message} for REST interactions. It serializes @@ -49,6 +50,7 @@ * URL path parameters, and query parameters. It deserializes JSON responses into response protobuf * message. */ +@NullMarked public class ProtoRestSerializer { private final TypeRegistry registry; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/RestSerializationException.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/RestSerializationException.java index cbf13723873a..3aa97826cb6b 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/RestSerializationException.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/RestSerializationException.java @@ -29,10 +29,13 @@ */ package com.google.api.gax.httpjson; +import org.jspecify.annotations.NullMarked; + /** * An exception thrown when a protobuf message cannot be serialized/deserialized for REST * interactions. */ +@NullMarked public class RestSerializationException extends RuntimeException { private static final long serialVersionUID = -6485633460933364916L; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java index 71982aacd058..56b0bc082d98 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java @@ -51,6 +51,7 @@ import java.io.IOException; import java.util.List; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -119,6 +120,7 @@ * *

    Please refer to the GitHub repository's samples for more quickstart code snippets. */ +@NullMarked public class OperationsClient implements BackgroundResource { private final OperationsSettings settings; private final OperationsStub stub; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java index 99cbc48d9259..28c3827a0454 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java @@ -51,6 +51,7 @@ import com.google.protobuf.Empty; import java.io.IOException; import java.util.List; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -83,6 +84,7 @@ * OperationsSettings operationsSettings = operationsSettingsBuilder.build(); * } */ +@NullMarked public class OperationsSettings extends ClientSettings { /** Returns the object with the settings used for calls to listOperations. */ diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java index 176e6e98c64d..a2056c2e4e7a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsCallableFactory.java @@ -41,6 +41,7 @@ import com.google.api.gax.rpc.UnaryCallSettings; import com.google.api.gax.rpc.UnaryCallable; import com.google.longrunning.Operation; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -48,6 +49,7 @@ * *

    This class is for advanced usage. */ +@NullMarked public class HttpJsonOperationsCallableFactory implements HttpJsonStubCallableFactory { diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java index f185b98fe2c7..e53bfcb80755 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/HttpJsonOperationsStub.java @@ -61,6 +61,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -71,6 +72,7 @@ *

    Note: This OperationsClient was originally auto-generated by the generator. There has been a * few handwritten changes since then and has not been regenerated. */ +@NullMarked public class HttpJsonOperationsStub extends OperationsStub { private static final String LRO_LIST_OPERATIONS = "google.longrunning.Operations.ListOperations"; private static final String LRO_GET_OPERATION = "google.longrunning.Operations.GetOperation"; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java index bbfec5bdee67..6482998d3e91 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStub.java @@ -40,6 +40,7 @@ import com.google.longrunning.ListOperationsResponse; import com.google.longrunning.Operation; import com.google.protobuf.Empty; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -47,6 +48,7 @@ * *

    This class is for advanced usage and reflects the underlying API directly. */ +@NullMarked public abstract class OperationsStub implements BackgroundResource { public UnaryCallable diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java index b1664088a54c..a02de436ca7a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java @@ -65,6 +65,7 @@ import com.google.protobuf.Empty; import java.io.IOException; import java.util.List; +import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -97,6 +98,7 @@ * OperationsStubSettings operationsSettings = operationsSettingsBuilder.build(); * } */ +@NullMarked public class OperationsStubSettings extends StubSettings { /** The default scopes of the service. */ private static final ImmutableList DEFAULT_SERVICE_SCOPES = diff --git a/sdk-platform-java/gax-java/gax/javac.20260715_171737.args b/sdk-platform-java/gax-java/gax/javac.20260715_171737.args new file mode 100644 index 000000000000..63ca25128e68 --- /dev/null +++ b/sdk-platform-java/gax-java/gax/javac.20260715_171737.args @@ -0,0 +1 @@ +@/tmp/org.codehaus.plexus.compiler.javac.JavacCompiler7653064300311673901arguments diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java index 41e75f493dcb..95bcead82d6b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/AccumulatingBatchReceiver.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; +import org.jspecify.annotations.NullMarked; /** A simple ThresholdBatchReceiver that just accumulates batches. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java index 18e8f354a09c..cc943ceda37e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.core.SettableApiFuture; import com.google.auto.value.AutoValue; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This class contains the element and its corresponding unresolved future, which would be resolved diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java index 5cad91187cf9..575d0e99b473 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchResource.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * Represent the resource used by a batch including element and byte. It can also be extended to diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java index 716e942b4789..d38e07d41f00 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.rpc.ApiCallContext; import java.time.Duration; import java.util.concurrent.TimeoutException; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Represents a batching context where individual elements will be accumulated and flushed in a diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java index fd392a499d03..c10a543da446 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFuture; @@ -68,6 +66,7 @@ import java.util.logging.Logger; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Queues up the elements until {@link #flush()} is called; once batching is over, returned future diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java index 31b165f1f792..6c81cc6a045d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.StatusCode.Code; import com.google.common.base.Joiner; @@ -41,6 +39,7 @@ import java.util.List; import java.util.Map; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Keeps the statistics about failed operations(both at RPC and ElementT) in {@link Batcher}. This diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java index c0943d2248f6..24c43702fbbf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingCallSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.rpc.StatusCode; @@ -39,6 +37,7 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * This is an extension of {@link UnaryCallSettings} class to configure a {@link UnaryCallable} for diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java index 0980b880f69d..08ca59b86e52 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingDescriptor.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * An adapter that packs and unpacks the elements in and out of batch requests and responses. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java index 64ef58374acb..baeb0560b24e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingFlowController.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.batching.FlowController.FlowControlException; import com.google.common.base.Preconditions; import com.google.common.primitives.Ints; +import org.jspecify.annotations.NullMarked; /** Wraps a {@link FlowController} for use by batching. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java index d10b6c2e6189..7a2f61e21f01 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingRequestBuilder.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * Adapter to pack individual elements into a larger batch request. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java index c8b11892be0f..7f2f7102aaaf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -40,6 +38,7 @@ import com.google.common.base.Preconditions; import java.time.Duration; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Represents the batching settings to use for an API method that is capable of batching. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java index 991409a798e7..9bb481273355 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingThresholds.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.common.collect.ImmutableList; import java.util.List; +import org.jspecify.annotations.NullMarked; /** Factory methods for general-purpose batching thresholds. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java index 484ddea78d45..ab876fa9f667 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BlockingSemaphore.java @@ -30,9 +30,8 @@ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** A {@link Semaphore64} that blocks until permits become available. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java index a045bd441891..59404e89a367 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DefaultBatchResource.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * The default implementation of {@link BatchResource} which tracks the elementCount and byteCount. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java index b4c95a4212ba..764f5a203f29 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** Settings for dynamic flow control */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java index bff830e65638..54c04dcec480 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.api.core.InternalApi; @@ -39,6 +37,7 @@ import com.google.common.base.Preconditions; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Record the statistics of flow control events. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java index dcf09df2efe0..a83a4275b6a3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.batching.FlowController.FlowControlException; import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** Settings for {@link FlowController}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java index 9f73224d2829..e3eac9327114 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowControlEventStats.FlowControlEvent; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** Provides flow control capability. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java index 951a9239e960..d594d3b25347 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NonBlockingSemaphore.java @@ -30,10 +30,9 @@ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; import java.util.concurrent.atomic.AtomicLong; +import org.jspecify.annotations.NullMarked; /** A {@link Semaphore64} that immediately returns with failure if permits are not available. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java index 815cc1db87b7..82e91bd5fdf5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/NumericThreshold.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** A threshold which accumulates a count based on the provided ElementCounter. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java index 5ff099787f31..31847d79637c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/PartitionKey.java @@ -30,9 +30,9 @@ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.common.collect.ImmutableList; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked public final class PartitionKey { @@ -55,7 +55,7 @@ public int hashCode() { } @Override - public boolean equals(Object obj) { + public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java index bb43ad3d6bd1..b4ddc3eeeadd 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatchReceiver.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; /** * Interface representing an object that receives batches from a ThresholdBatcher and takes action diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java index fc36b88b4545..cb02da03408a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/ThresholdBatcher.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.batching; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; @@ -50,6 +48,8 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Queues up elements until either a duration of time has passed or any threshold in a given set of @@ -91,8 +91,8 @@ public void run() { // - lock gates all accesses to members below // - currentOpenBatch and currentAlarmFuture are either both null or both non-null private final ReentrantLock lock = new ReentrantLock(); - private E currentOpenBatch; - private Future currentAlarmFuture; + private @Nullable E currentOpenBatch; + private @Nullable Future currentAlarmFuture; private ThresholdBatcher(Builder builder) { this.thresholds = new ArrayList<>(builder.thresholds); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java index 817f37a8a320..8d57831f7ae5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResource.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** * Represents a resource running in the background that needs to be shut down for resources to be diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java index 49d5a47f234a..a192b85f844b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BackgroundResourceAggregation.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import java.util.List; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** Treats a collection of background resources as a single background resource. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java index b9bb72ce0fcf..925581fa3919 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/BaseBackgroundResource.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** A Background resource that does nothing. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java index 1abe9abb6efc..982291c2e0b6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/CredentialsProvider.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.auth.Credentials; import java.io.IOException; +import org.jspecify.annotations.NullMarked; /** * Provides an interface to hold and acquire the credentials that will be used to call the service. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java index 2c3b84b255f5..fdac0a0b11ff 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/Distribution.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLongArray; +import org.jspecify.annotations.NullMarked; /** * Distribution records values from {@code 0} (inclusive) to {@code endValue} (exclusive) and diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java index 8855ea01a956..7bb8f51837df 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorAsBackgroundResource.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** * ExecutorAsBackgroundResource wraps an {@link ExecutorService} so that it can be used as a {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java index f45fb06234ea..886821b1c968 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/ExecutorProvider.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.ScheduledExecutorService; +import org.jspecify.annotations.NullMarked; /** * Provides an interface to either build a ScheduledExecutorService or provide a fixed diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java index e364655712fb..4bb96520dbf4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.auth.Credentials; import com.google.auto.value.AutoValue; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** FixedCredentialsProvider is a CredentialsProvider which always provides the same credentials. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java index 186eb146ab23..96a0e8d63498 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedExecutorProvider.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.ScheduledExecutorService; +import org.jspecify.annotations.NullMarked; /** FixedExecutorProvider is an ExecutorProvider which always returns the same executor. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java index 75ef535e81cf..e36e3146d8b0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GaxProperties.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; @@ -42,6 +40,7 @@ import java.util.Properties; import java.util.jar.Attributes; import java.util.jar.JarFile; +import org.jspecify.annotations.NullMarked; /** Provides properties of the GAX library. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java index 1fa4ab995780..47c8e3dd61f4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.auth.Credentials; import com.google.auth.oauth2.GoogleCredentials; @@ -42,6 +40,7 @@ import java.io.IOException; import java.util.List; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * GoogleCredentialsProvider acquires credentials using Application Default Credentials. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java index 4a456f4bd5a8..e2177b15b8b8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/InstantiatingExecutorProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.auto.value.AutoValue; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -38,6 +36,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; +import org.jspecify.annotations.NullMarked; /** * InstantiatingChannelProvider is an ExecutorProvider which constructs a new diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java index 703b4bb21437..8cd531dcd175 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/NoCredentialsProvider.java @@ -29,15 +29,15 @@ */ package com.google.api.gax.core; -import org.jspecify.annotations.NullMarked; - import com.google.auth.Credentials; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** NoCredentialsProvider is a CredentialsProvider which always returns null. */ @NullMarked public final class NoCredentialsProvider implements CredentialsProvider { @Override - public Credentials getCredentials() { + public @Nullable Credentials getCredentials() { return null; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java index d353224b2362..45aeebd6fa81 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java @@ -30,14 +30,13 @@ package com.google.api.gax.logging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; @NullMarked @InternalApi diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java index 478f7a9c3bc0..3231b5afe852 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggerProvider.java @@ -30,9 +30,8 @@ package com.google.api.gax.logging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; import org.slf4j.Logger; @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java index a12b5e75e481..455781b70a0e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LoggingUtils.java @@ -30,10 +30,9 @@ package com.google.api.gax.logging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.Map; +import org.jspecify.annotations.NullMarked; @NullMarked @InternalApi diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java index 5f9e5294ad14..6e24b532dc02 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jLoggingHelpers.java @@ -30,8 +30,6 @@ package com.google.api.gax.logging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.common.base.Strings; import com.google.gson.Gson; @@ -41,6 +39,7 @@ import com.google.protobuf.util.JsonFormat; import java.util.Map; import java.util.function.Consumer; +import org.jspecify.annotations.NullMarked; import org.slf4j.Logger; import org.slf4j.event.Level; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java index a3e3ec58c742..c6ca5c984c81 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/Slf4jUtils.java @@ -30,11 +30,10 @@ package com.google.api.gax.logging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.Map; import java.util.Map.Entry; +import org.jspecify.annotations.NullMarked; import org.slf4j.ILoggerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java index 879be9c42dd1..21509ff2cadf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFuture.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.gax.retrying.RetryingFuture; import java.util.concurrent.ExecutionException; +import org.jspecify.annotations.NullMarked; /** * An ApiFuture which tracks polling of a service. The polling is done periodically, based on the diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java index 75f5847b1eee..08ba0ae78370 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutureImpl.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; @@ -43,6 +41,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import org.jspecify.annotations.NullMarked; /** * An ApiFuture which tracks polling of a service. The polling is done periodically, based on the diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java index ea0a370a4879..dac5e9cbf2b6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationFutures.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.RetryingFuture; @@ -40,6 +38,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; @NullMarked public class OperationFutures { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java index 644a1b375ed9..c690efd88ddc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationResponsePollAlgorithm.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.retrying.ResultRetryAlgorithm; import com.google.api.gax.retrying.TimedAttemptSettings; +import org.jspecify.annotations.NullMarked; /** * Operation polling algorithm, which keeps retrying until {@link OperationSnapshot#isDone()} is diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java index 57b885183cf9..92f7aa04cbf3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationSnapshot.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.rpc.StatusCode; +import org.jspecify.annotations.NullMarked; /** * A snapshot of a long-running operation. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java index f409cba6cab6..d6075c3eb410 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/longrunning/OperationTimedPollAlgorithm.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.longrunning; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; import com.google.api.core.NanoClock; @@ -41,6 +39,7 @@ import java.util.concurrent.CancellationException; import java.util.logging.Level; import java.util.logging.Logger; +import org.jspecify.annotations.NullMarked; /** * Operation timed polling algorithm, which uses exponential backoff factor for determining when the diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java index dc4472ad7239..18f839547888 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/GoogleJsonClientFeature.java @@ -30,11 +30,10 @@ package com.google.api.gax.nativeimage; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.nativeimage.NativeImageUtils.registerClassForReflection; import org.graalvm.nativeimage.hosted.Feature; +import org.jspecify.annotations.NullMarked; /** Configures Native Image settings for the Google JSON Client. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java index b4934c0b3ba4..3365daa3aee9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/NativeImageUtils.java @@ -30,8 +30,6 @@ package com.google.api.gax.nativeimage; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -39,6 +37,7 @@ import java.util.logging.Logger; import org.graalvm.nativeimage.hosted.Feature.FeatureAccess; import org.graalvm.nativeimage.hosted.RuntimeReflection; +import org.jspecify.annotations.NullMarked; /** Internal class offering helper methods for registering methods/classes for reflection. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java index d1cc54ad1274..6023d49cece7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/nativeimage/OpenCensusFeature.java @@ -30,11 +30,10 @@ package com.google.api.gax.nativeimage; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.nativeimage.NativeImageUtils.registerForReflectiveInstantiation; import org.graalvm.nativeimage.hosted.Feature; +import org.jspecify.annotations.NullMarked; /** Registers reflection usage in OpenCensus libraries. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java index 6f8c883ec4a7..4ca5113f932a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractFixedSizeCollection.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.util.Lists; import com.google.api.pathtemplate.ValidationException; import com.google.common.base.Preconditions; import com.google.common.collect.AbstractIterator; import java.util.Iterator; import java.util.List; +import org.jspecify.annotations.NullMarked; /** Partial implementation of {@link FixedSizeCollection}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java index 649720770efe..0029a57aaabf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPage.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFunction; @@ -43,6 +41,8 @@ import com.google.common.collect.AbstractIterator; import com.google.common.collect.Iterables; import java.util.Iterator; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Partial implementation of {@link AsyncPage}. */ @NullMarked @@ -110,7 +110,7 @@ public ApiFuture getNextPageAsync() { } } - private PageT getNextPageImpl(Integer pageSize) { + private PageT getNextPageImpl(@Nullable Integer pageSize) { if (hasNextPage()) { RequestT request = context.getPageDescriptor().injectToken(context.getRequest(), getNextPageToken()); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java index b6a90f0f1ca1..ff3b96860483 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AbstractPagedListResponse.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; import com.google.common.collect.AbstractIterator; import java.util.Iterator; import java.util.List; +import org.jspecify.annotations.NullMarked; /** Partial implementation of {@link com.google.api.gax.paging.PagedListResponse}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java index 171bda54ab82..5152d3fce77f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/AsyncPage.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; /** An AsyncPage extends a {@link Page} object with a getNextPageAsync method. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java index d3cd1d7744f7..cb056f0a4cc7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Page.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import java.util.stream.Stream; import java.util.stream.StreamSupport; +import org.jspecify.annotations.NullMarked; /** * A Page object wraps an API list method response. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java index b8892c2d6630..a374ad35082a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/paging/Pages.java @@ -29,9 +29,9 @@ */ package com.google.api.gax.paging; -import org.jspecify.annotations.NullMarked; - import java.util.Collections; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Utility class for {@link Page}s. */ @NullMarked @@ -52,7 +52,7 @@ public String getNextPageToken() { } @Override - public Page getNextPage() { + public @Nullable Page getNextPage() { return null; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java index 94355a0883f3..ffc10db70ea5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicResultRetryAlgorithm.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * A basic implementation of {@link ResultRetryAlgorithm}. Using this implementation would mean that diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java index bdd15f5a7fd0..d6a8688b7091 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/BasicRetryingFuture.java @@ -30,8 +30,6 @@ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -46,6 +44,8 @@ import java.util.concurrent.RejectedExecutionException; import java.util.logging.Level; import java.util.logging.Logger; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * For internal use only. @@ -69,7 +69,7 @@ class BasicRetryingFuture extends AbstractFuture private volatile TimedAttemptSettings attemptSettings; private volatile ApiFuture latestCompletedAttemptResult; - private volatile ApiFuture attemptResult; + private volatile @Nullable ApiFuture attemptResult; private static final Logger LOG = Logger.getLogger(BasicRetryingFuture.class.getName()); @@ -147,7 +147,7 @@ void clearAttemptServiceData() { } // "super." is used here to avoid infinite loops of callback chains - void handleAttempt(Throwable throwable, ResponseT response) { + void handleAttempt(@Nullable Throwable throwable, ResponseT response) { ApiTracer tracer = retryingContext.getTracer(); synchronized (lock) { @@ -232,7 +232,8 @@ void handleAttempt(Throwable throwable, ResponseT response) { // getAttemptResult() call will return a new future, tracking the new attempt. Otherwise // attemptResult is set to the same result as the one returned by peekAttemptResult(), indicating // that the ultimate unmodifiable result of the whole future was reached. - private void setAttemptResult(Throwable throwable, ResponseT response, boolean shouldRetry) { + private void setAttemptResult( + @Nullable Throwable throwable, ResponseT response, boolean shouldRetry) { ApiFuture prevAttemptResult = attemptResult; try { if (throwable instanceof CancellationException) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java index f1f2d950757f..05f35bc0021c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/CallbackChainRetryingFuture.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -38,6 +36,8 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * For internal use only. @@ -56,7 +56,7 @@ @NullMarked class CallbackChainRetryingFuture extends BasicRetryingFuture { private final ScheduledRetryingExecutor retryingExecutor; - private volatile AttemptCompletionListener attemptFutureCompletionListener; + private volatile @Nullable AttemptCompletionListener attemptFutureCompletionListener; CallbackChainRetryingFuture( Callable callable, @@ -123,7 +123,7 @@ public void run() { } } - private void handle(Throwable t, ResponseT response) { + private void handle(@Nullable Throwable t, ResponseT response) { // Essential check, to ensure that we do not execute callback of an abandoned attempt. // First before the lock, to increase performance and reduce chance of deadlocking // (should never happen, but being extra cautious is appropriate here). diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java index a0ef6e149b3e..aeff549e7542 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/DirectRetryingExecutor.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; @@ -38,6 +36,7 @@ import java.io.InterruptedIOException; import java.nio.channels.ClosedByInterruptException; import java.util.concurrent.Callable; +import org.jspecify.annotations.NullMarked; /** * The retry executor which executes attempts in the current thread, potentially causing the current diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java index 827fefd899fc..adebd897cc0e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialPollAlgorithm.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiClock; +import org.jspecify.annotations.NullMarked; /** * The timed poll algorithm which uses jittered exponential backoff factor for calculating the next diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java index 7a1fae562725..c18486c614b7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ExponentialRetryAlgorithm.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; import java.util.concurrent.ThreadLocalRandom; +import org.jspecify.annotations.NullMarked; /** * The timed retry algorithm which uses jittered exponential backoff factor for calculating the next diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java index 3b9837f715ef..520e107e61d1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NonCancellableFuture.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.AbstractApiFuture; import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * A future which cannot be cancelled from the external package. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java index f506131d02dc..5fe5f8781fd9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - // TODO(igorbernstein2): Remove this class once RetryingExecutor#createFuture(Callable) is // deprecated and removed. @@ -39,6 +37,7 @@ import com.google.api.gax.tracing.BaseApiTracer; import java.util.Set; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * Backwards compatibility class to aid in transition to adding operation state to {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java index 1fa3d5a64e42..3f1a67554722 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithm.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Same as {@link ResultRetryAlgorithmWithContext}, but without methods that accept a {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java index 970ed7308d21..032a477d34f9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ResultRetryAlgorithmWithContext.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * A result retry algorithm is responsible for the following operations (based on the response diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java index 34ea78da3bf5..ac145ba94caa 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryAlgorithm.java @@ -29,12 +29,12 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.BetaApi; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * The retry algorithm, which makes decision based either on the thrown exception or the returned @@ -46,10 +46,10 @@ */ @NullMarked public class RetryAlgorithm { - private final ResultRetryAlgorithm resultAlgorithm; - private final TimedRetryAlgorithm timedAlgorithm; - private final ResultRetryAlgorithmWithContext resultAlgorithmWithContext; - private final TimedRetryAlgorithmWithContext timedAlgorithmWithContext; + private final @Nullable ResultRetryAlgorithm resultAlgorithm; + private final @Nullable TimedRetryAlgorithm timedAlgorithm; + private final @Nullable ResultRetryAlgorithmWithContext resultAlgorithmWithContext; + private final @Nullable TimedRetryAlgorithmWithContext timedAlgorithmWithContext; /** * Creates a new retry algorithm instance, which uses thrown exception or returned response and @@ -110,7 +110,7 @@ public TimedAttemptSettings createFirstAttempt() { * RetrySettings} * @return first attempt settings */ - public TimedAttemptSettings createFirstAttempt(RetryingContext context) { + public TimedAttemptSettings createFirstAttempt(@Nullable RetryingContext context) { if (timedAlgorithmWithContext != null && context != null) { return timedAlgorithmWithContext.createFirstAttempt(context); } @@ -151,8 +151,8 @@ public TimedAttemptSettings createNextAttempt( * @param previousSettings previous attempt settings * @return next attempt settings, can be {@code null}, if there should be no new attempt */ - public TimedAttemptSettings createNextAttempt( - RetryingContext context, + public @Nullable TimedAttemptSettings createNextAttempt( + @Nullable RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings) { @@ -230,7 +230,7 @@ public boolean shouldRetry( * @return {@code true} if another attempt should be made, or {@code false} otherwise */ public boolean shouldRetry( - RetryingContext context, + @Nullable RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings) diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java index f6c9f60cf64b..d69fd310c2c0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetrySettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -39,6 +37,7 @@ import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import java.io.Serializable; +import org.jspecify.annotations.NullMarked; /** * Holds the parameters for retry or poll logic with jitter, timeout and exponential diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java index 9fbf214683b4..adcf449145d6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.gax.rpc.StatusCode; import com.google.api.gax.tracing.ApiTracer; import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Context for a retryable operation. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java index 58d5a33675f4..5998fd79d361 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutor.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import java.util.concurrent.Callable; +import org.jspecify.annotations.NullMarked; /** * A retrying executor is responsible for the following operations: diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java index 89bef09d5709..2d13ef78c6ad 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingExecutorWithContext.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import java.util.concurrent.Callable; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * A {@link RetryingExecutor} that accepts a per-operation context. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java index 9b7ec7f76b12..0e5f4dc5c0f0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingFuture.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import java.util.concurrent.Callable; +import org.jspecify.annotations.NullMarked; /** * Represents a retrying future. This is a facade hiding all the complications of an diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java index 8aa46a761c8e..91a21fb9ff68 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ScheduledRetryingExecutor.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -42,6 +40,7 @@ import java.util.concurrent.RejectedExecutionException; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; /** * The retry executor which uses {@link ScheduledExecutorService} to schedule an attempt tasks. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java index 02aaa1739e90..d68d7892b499 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/ServerStreamingAttemptException.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * A wrapper exception thrown by {@code ServerStreamingAttemptCallable} to communicate additional diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java index 0cda57e60305..7dc398700c14 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/SimpleStreamResumptionStrategy.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * Simplest implementation of a {@link StreamResumptionStrategy} which returns the initial request diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java index e49b7c7fa6ce..3cd71b53b73f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This is part of the server streaming retry api. Its implementers are responsible for tracking the diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java index 825933ff3983..0acaf64173db 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamingRetryAlgorithm.java @@ -29,10 +29,10 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * The streaming retry algorithm, which makes decision based either on the thrown exception and the @@ -92,7 +92,7 @@ public TimedAttemptSettings createNextAttempt( */ @Override public TimedAttemptSettings createNextAttempt( - RetryingContext context, + @Nullable RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings previousSettings) { @@ -138,7 +138,7 @@ public boolean shouldRetry( */ @Override public boolean shouldRetry( - RetryingContext context, + @Nullable RetryingContext context, Throwable previousThrowable, ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings) diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java index 2a3314d77c95..53a863bcedfb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedAttemptSettings.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; import com.google.api.core.ApiClock; import com.google.api.core.ObsoleteApi; import com.google.auto.value.AutoValue; +import org.jspecify.annotations.NullMarked; /** Timed attempt execution settings. Defines time-specific properties of a retry attempt. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java index db34594b7bb9..1bb331bee74d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithm.java @@ -30,9 +30,8 @@ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Same as {@link TimedRetryAlgorithmWithContext}, but without methods that accept a {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java index 91e7d30cf823..4a697e6c5d4d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/TimedRetryAlgorithmWithContext.java @@ -30,9 +30,8 @@ package com.google.api.gax.retrying; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * A timed retry algorithm is responsible for the following operations, based on the previous diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java index ca20e3381892..cc5f56194639 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import com.google.api.core.ObsoleteApi; @@ -45,6 +43,7 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Context for an API call. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java index 0034727abe5c..cca86cf8d0c6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiClientHeaderProvider.java @@ -29,14 +29,14 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.core.GaxProperties; import com.google.common.collect.ImmutableMap; import java.io.Serializable; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Implementation of HeaderProvider that provides headers describing the API client library making @@ -131,17 +131,17 @@ public static String getDefaultResourceHeaderKey() { public static class Builder { private String apiClientHeaderKey; private String jvmToken; - private String clientLibToken; - private String generatedLibToken; + private @Nullable String clientLibToken; + private @Nullable String generatedLibToken; private String generatedRuntimeToken; - private String transportToken; - private String quotaProjectIdToken; + private @Nullable String transportToken; + private @Nullable String quotaProjectIdToken; private final String protobufRuntimeToken; private String resourceHeaderKey; - private String resourceToken; + private @Nullable String resourceToken; - private String apiVersionToken; + private @Nullable String apiVersionToken; protected Builder() { // Initialize with default values @@ -253,7 +253,7 @@ public Builder setApiVersionToken(String apiVersionToken) { return this; } - private String constructToken(String name, String version) { + private @Nullable String constructToken(String name, String version) { if (version == null) { return null; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java index 3edc230f5978..5a3696074a60 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiException.java @@ -29,10 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; import java.util.Map; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Represents an exception thrown during an RPC call. */ @NullMarked @@ -40,7 +40,7 @@ public class ApiException extends RuntimeException { private static final long serialVersionUID = -4375114339928877996L; - private final ErrorDetails errorDetails; + private final @Nullable ErrorDetails errorDetails; private final StatusCode statusCode; private final boolean retryable; @@ -56,7 +56,10 @@ public ApiException(String message, Throwable cause, StatusCode statusCode, bool } public ApiException( - Throwable cause, StatusCode statusCode, boolean retryable, ErrorDetails errorDetails) { + Throwable cause, + StatusCode statusCode, + boolean retryable, + @Nullable ErrorDetails errorDetails) { super(cause); this.statusCode = Preconditions.checkNotNull(statusCode); this.retryable = retryable; @@ -89,7 +92,7 @@ public StatusCode getStatusCode() { * Returns the reason of the exception. This is a constant value that identifies the proximate * cause of the error. e.g. SERVICE_DISABLED */ - public String getReason() { + public @Nullable String getReason() { if (isErrorInfoEmpty()) { return null; } @@ -100,7 +103,7 @@ public String getReason() { * Returns the logical grouping to which the "reason" belongs. The error domain is typically the * registered service name of the tool or product that generates the error. e.g. googleapis.com */ - public String getDomain() { + public @Nullable String getDomain() { if (isErrorInfoEmpty()) { return null; } @@ -108,7 +111,7 @@ public String getDomain() { } /** Returns additional structured details about this exception. */ - public Map getMetadata() { + public @Nullable Map getMetadata() { if (isErrorInfoEmpty()) { return null; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java index 35b1392f7a1b..da34185c7fbb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptionFactory.java @@ -30,6 +30,7 @@ package com.google.api.gax.rpc; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A factory class that returns the corresponding type of exception class from the given status @@ -85,13 +86,16 @@ public static ApiException createException( } public static ApiException createException( - Throwable cause, StatusCode statusCode, boolean retryable, ErrorDetails errorDetails) { + Throwable cause, + StatusCode statusCode, + boolean retryable, + @Nullable ErrorDetails errorDetails) { return createException( cause == null ? null : cause.toString(), cause, statusCode, retryable, errorDetails); } public static ApiException createException( - String message, + @Nullable String message, Throwable cause, StatusCode statusCode, boolean retryable, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java index d09120a593f6..5a3d15812e8d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiExceptions.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.UncheckedExecutionException; +import org.jspecify.annotations.NullMarked; /** A utility class for working with {@link ApiException}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java index 18a5fa85d952..7d04d38d2605 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiResultRetryAlgorithm.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.retrying.BasicResultRetryAlgorithm; import com.google.api.gax.retrying.RetryingContext; +import org.jspecify.annotations.NullMarked; /* Package-private for internal use. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java index e1076a053fa1..897e1f2dae8e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/AttemptCallable.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.NonCancellableFuture; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; import java.util.concurrent.Callable; +import org.jspecify.annotations.NullMarked; /** * A callable representing an attempt to make an RPC call. This class is used from {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java index e836cfac5456..754f39d7b960 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Batch.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.batching.BatchMerger; import com.google.api.gax.batching.ElementCounter; import com.google.api.gax.batching.RequestBuilder; import java.util.ArrayList; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * A Batch contains a collection of requests that are to be batched into a single API call. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java index 62436aa0d4fd..cd01a999a4a9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchExecutor.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFuture; @@ -40,6 +38,7 @@ import com.google.api.gax.batching.ThresholdBatchReceiver; import com.google.common.base.Preconditions; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * A ThresholdBatchReceiver which uses a provided {@link BatchingDescriptor} to merge the items from diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java index b8113d5c8c04..db3972aad775 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedFuture.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.AbstractApiFuture; import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * An ApiFuture to be used with batching. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java index 2eb53c7eac2f..c91a707e563b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchedRequestIssuer.java @@ -29,9 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * BatchedRequestIssuer receives a response or an exception and waits to set the given batchedFuture @@ -43,9 +43,9 @@ public final class BatchedRequestIssuer { private final BatchedFuture batchedFuture; private final long messageCount; - private ResponseT responseToSend; + private @Nullable ResponseT responseToSend; private boolean hasResponse; - private Throwable throwableToSend; + private @Nullable Throwable throwableToSend; public BatchedRequestIssuer(BatchedFuture batchedFuture, long messageCount) { this.batchedFuture = batchedFuture; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java index 7a94cbaffd10..8dd44b925a47 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatcherFactory.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.batching.BatchingFlowController; import com.google.api.gax.batching.BatchingSettings; @@ -47,6 +45,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledExecutorService; +import org.jspecify.annotations.NullMarked; /** * A Factory class which, for each unique partitionKey, creates a trio including a ThresholdBatcher, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java index 16e94a4d101d..dcc47b01c7fc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.batching.FlowController; @@ -38,6 +36,7 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * A settings class to configure a {@link UnaryCallable} for calls to an API method that supports diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java index 9c600d3dc612..caad5f2e7838 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.InternalApi; import com.google.api.gax.batching.FlowController.FlowControlException; @@ -38,6 +36,7 @@ import com.google.api.gax.batching.PartitionKey; import com.google.api.gax.batching.ThresholdBatcher; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A {@link UnaryCallable} which will batch requests based on the given BatchingDescriptor and diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java index d73cd04770a1..f9b8f3e4b432 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BatchingDescriptor.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.batching.PartitionKey; import com.google.api.gax.batching.RequestBuilder; import java.util.Collection; +import org.jspecify.annotations.NullMarked; /** * Interface which represents an object that transforms request/response data for the purposes of diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java index ec87a848bf71..183f8b6e4838 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStream.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * A wrapper around a bidirectional stream. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java index f0bc6dec9908..97e22d6ee41f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java @@ -30,6 +30,7 @@ package com.google.api.gax.rpc; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A BidiStreamingCallable is an immutable object which is capable of making RPC calls to @@ -102,7 +103,8 @@ public void call(final BidiStreamObserver bidiObserver) { /** Listens to server responses and send requests when the network is free. */ public void call( - final BidiStreamObserver bidiObserver, ApiCallContext context) { + final BidiStreamObserver bidiObserver, + @Nullable ApiCallContext context) { internalCall(bidiObserver, bidiObserver, context); } @@ -132,7 +134,7 @@ public BidiStream call() { * *

    This returns a live stream that must either be fully consumed or cancelled. */ - public BidiStream call(ApiCallContext context) { + public BidiStream call(@Nullable ApiCallContext context) { BidiStream stream = new BidiStream<>(); ClientStream clientStream = splitCall(stream.observer(), context); stream.setClientStream(clientStream); @@ -175,7 +177,7 @@ public ClientStream splitCall(ResponseObserver responseObse /** Send requests to the server and listens to responses. */ public ClientStream splitCall( - ResponseObserver responseObserver, ApiCallContext context) { + ResponseObserver responseObserver, @Nullable ApiCallContext context) { return internalCall( responseObserver, stream -> { @@ -194,7 +196,7 @@ public ClientStream splitCall( */ @Deprecated public ApiStreamObserver bidiStreamingCall( - ApiStreamObserver responseObserver, ApiCallContext context) { + ApiStreamObserver responseObserver, @Nullable ApiCallContext context) { final ClientStream stream = splitCall(new ApiStreamObserverAdapter<>(responseObserver), context); return new ApiStreamObserver() { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java index 49dd42bda355..17a7ff6b55e3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Callables.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.gax.batching.BatchingSettings; import com.google.api.gax.longrunning.OperationResponsePollAlgorithm; @@ -41,6 +39,7 @@ import com.google.api.gax.retrying.ScheduledRetryingExecutor; import com.google.api.gax.retrying.StreamingRetryAlgorithm; import java.util.Collection; +import org.jspecify.annotations.NullMarked; /** * Class with utility methods to create callable objects using provided settings. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java index 7796f8981c42..6631700151ca 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/CheckingAttemptCallable.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.retrying.NonCancellableFuture; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; import java.util.concurrent.Callable; +import org.jspecify.annotations.NullMarked; /** * A callable representing an attempt to check the status of something by issuing a call to a diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java index 863972a0addb..f4678bdc1cb5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -68,6 +66,7 @@ import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Encapsulates client state, including executor, credentials, and transport channel. @@ -438,9 +437,9 @@ public abstract static class Builder { public abstract Builder setEndpoint(String endpoint); - public abstract Builder setQuotaProjectId(String QuotaProjectId); + public abstract Builder setQuotaProjectId(@Nullable String QuotaProjectId); - public abstract Builder setStreamWatchdog(Watchdog watchdog); + public abstract Builder setStreamWatchdog(@Nullable Watchdog watchdog); /** * This method is obsolete. Use {@link @@ -470,7 +469,7 @@ public final Builder setStreamWatchdogCheckInterval(org.threeten.bp.Duration dur * * @param gdchApiAudience the audience to be used - must be a valid URI string */ - public abstract Builder setGdchApiAudience(String gdchApiAudience); + public abstract Builder setGdchApiAudience(@Nullable String gdchApiAudience); /** Package-Private as this is to be shared to StubSettings */ abstract Builder setEndpointContext(EndpointContext endpointContext); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java index 85a4745cb567..1bff71ea3870 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.ApiClock; @@ -43,6 +41,7 @@ import java.util.concurrent.Executor; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A base settings class to configure a client class. @@ -171,7 +170,7 @@ protected Builder(ClientSettings settings) { } /** Create a builder from a StubSettings object. */ - protected Builder(StubSettings.Builder stubSettings) { + protected Builder(@Nullable StubSettings.Builder stubSettings) { this.stubSettings = stubSettings; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java index 0db848e5c943..854ce3fd5de8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamingCallable.java @@ -30,6 +30,7 @@ package com.google.api.gax.rpc; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A ClientStreamingCallable is an immutable object which is capable of making RPC calls to client @@ -52,7 +53,7 @@ protected ClientStreamingCallable() {} * @return {@link ApiStreamObserver} which is used for making streaming requests. */ public abstract ApiStreamObserver clientStreamingCall( - ApiStreamObserver responseObserver, ApiCallContext context); + ApiStreamObserver responseObserver, @Nullable ApiCallContext context); /** * Conduct a client streaming call diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java index c654f13560cc..74e081cbe15a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.rpc.internal.EnvironmentProvider; import com.google.api.gax.rpc.mtls.CertificateBasedAccess; @@ -47,6 +45,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * EndpointContext is an internal class used by the client library to resolve the endpoint. It is @@ -406,6 +405,7 @@ boolean shouldUseS2A() { return mtlsEndpoint().contains(Credentials.GOOGLE_DEFAULT_UNIVERSE); } + @Nullable private String parseServerAddress(String endpoint) { if (endpoint.isEmpty()) { return endpoint; @@ -417,6 +417,7 @@ private String parseServerAddress(String endpoint) { return hostAndPort.getHost(); } + @Nullable private Integer parseServerPort(String endpoint) { if (endpoint.isEmpty()) { return null; @@ -428,6 +429,7 @@ private Integer parseServerPort(String endpoint) { return hostAndPort.getPort(); } + @Nullable private HostAndPort parseServerHostAndPort(String endpoint) { String hostPort = endpoint; if (hostPort.contains("://")) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java index a52e8ba01aa4..847c810bc692 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.protobuf.Any; @@ -48,6 +46,7 @@ import com.google.rpc.RetryInfo; import java.util.List; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** This class contains a list of standard error messages that returns from server. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java index 81bb64664e32..21de98d59a3f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementCallable.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; /** * Wraps a {@link ServerStreamingCallable} in a {@link UnaryCallable} that returns the first diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java index acedd8ace206..ea7a1bea4a8f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FirstElementResponseObserver.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.AbstractApiFuture; import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; /** * A {@link ResponseObserver} that wraps a future. The future will resolved upon receiving the first diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java index a10dca85c553..8c86df85dbca 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableMap; import java.io.Serializable; @@ -39,6 +37,7 @@ import java.util.Map; import java.util.Set; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** An instance of HeaderProvider that always provides the same headers. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java index 780d7cfd262a..f91317d5ec86 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedTransportChannelProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; import com.google.auth.Credentials; import com.google.common.base.Preconditions; @@ -38,6 +36,7 @@ import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; +import org.jspecify.annotations.NullMarked; /** An instance of TransportChannelProvider that always provides the same TransportChannel. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java index 65b7746fd9fb..d9da3520e5e2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiClock; import com.google.api.core.InternalApi; import com.google.api.core.ObsoleteApi; @@ -38,6 +36,7 @@ import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A watchdog provider which always returns the same watchdog instance provided to the provider diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java index e8ab8875def8..b8d6629100a9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/HeaderProvider.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import java.util.Map; +import org.jspecify.annotations.NullMarked; /** Provider of headers to put on http requests. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java index 8d7874c8f241..4ca704972af7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.ApiClock; @@ -40,6 +38,7 @@ import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A watchdog provider which instantiates a new provider on every request. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java index 9c55689e18cf..774c6cd709df 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java @@ -30,12 +30,11 @@ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A context object that contains information about the GAPIC library. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java index e27e33b9a404..cc946c457309 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LongRunningClient.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.longrunning.OperationSnapshot; +import org.jspecify.annotations.NullMarked; /** Implementation-agnostic interface for managing long-running operations. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java index 3f3255077c43..5def6ad5ff31 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/NoHeaderProvider.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import java.io.Serializable; import java.util.Collections; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** Implementation of HeaderProvider that provides empty headers. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java index 650b5aeae586..4ad4a25cd672 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallSettings.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFunction; import com.google.api.gax.longrunning.OperationSnapshot; import com.google.api.gax.retrying.TimedRetryAlgorithm; +import org.jspecify.annotations.NullMarked; /** * A settings class to configure an {@link OperationCallable} for calls to initiate, resume, and diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java index 34681cd57ddf..c904c96c273d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallable.java @@ -29,10 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.gax.longrunning.OperationFuture; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * An OperationCallable is an immutable object which is capable of initiating RPC calls to @@ -56,7 +56,7 @@ protected OperationCallable() {} * @return {@link OperationFuture} for the call result */ public abstract OperationFuture futureCall( - RequestT request, ApiCallContext context); + RequestT request, @Nullable ApiCallContext context); /** * Same as {@link #futureCall(Object, ApiCallContext)}, with a null context. @@ -103,7 +103,7 @@ public ResponseT call(RequestT request) { * @return {@link OperationFuture} for the call result. */ public abstract OperationFuture resumeFutureCall( - String operationName, ApiCallContext context); + String operationName, @Nullable ApiCallContext context); /** * Creates a new {@link OperationFuture} to watch an operation that has been initiated previously. @@ -124,7 +124,7 @@ public OperationFuture resumeFutureCall(String operationNa * @param context {@link ApiCallContext} to make the call with * @return the future which completes once the operation is canceled on the server side. */ - public abstract ApiFuture cancel(String operationName, ApiCallContext context); + public abstract ApiFuture cancel(String operationName, @Nullable ApiCallContext context); /** * Sends a cancellation request to the server for the operation with name {@code operationName}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java index e4a98bd7f169..1e0bd8b82ac8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCallableImpl.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFunction; @@ -40,6 +38,7 @@ import com.google.api.gax.longrunning.OperationSnapshot; import com.google.api.gax.retrying.RetryingExecutorWithContext; import com.google.api.gax.retrying.RetryingFuture; +import org.jspecify.annotations.NullMarked; /** * An OperationCallableImpl is an immutable object which is capable of initiating RPC calls to diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java index 142c9c462fe9..6daef90ef7b2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/OperationCheckingCallable.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.gax.longrunning.OperationSnapshot; import java.util.concurrent.ExecutionException; +import org.jspecify.annotations.NullMarked; /** * A future callable which relies on callback chaining to execute server polling (asking for a diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java index 91fbf9e44c77..9426e7b86075 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PageContext.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.auto.value.AutoValue; +import org.jspecify.annotations.NullMarked; /** The context for a page call. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java index ac9236c00e4e..ddd99b0d5435 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallSettings.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.retrying.RetrySettings; import java.util.Set; +import org.jspecify.annotations.NullMarked; /** * A settings class to configure a {@link UnaryCallable} for calls to an API method that supports diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java index c36625c31996..e17d6cc759d4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedCallable.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.InternalApi; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A UnaryCallable which provides page streaming functionality for unary calls. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java index f2a36064f07f..b39a0f9db816 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/PagedListResponseFactory.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; /** * Interface for constructing futures which return PagedListResponse objects. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java index a086caf7f497..baf287208aa3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/QueuingResponseObserver.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.collect.Queues; import java.util.concurrent.BlockingQueue; +import org.jspecify.annotations.NullMarked; /** * A back pressure aware bridge from a {@link ResponseObserver} to a {@link BlockingQueue}. The diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java index f4fdd4130777..9db0e2d8f231 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RecheckingCallable.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.retrying.RetryingExecutorWithContext; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A UnaryCallable that will keep issuing calls to an inner callable until a terminal condition is diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java index dc806449dd4c..cc9b9597b3fc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestMutator.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * A request mutator takes a {@code request} message, applies some Function to it, and then returns diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java index 7613ac1a7738..a77e4508a5e6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsBuilder.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.pathtemplate.PathTemplate; import com.google.common.collect.ImmutableMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * This builder class builds a request params map that will be used by autogenerated implementation diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java index 6882e229935a..7b758079293c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsEncoder.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * A request params encoder takes a {@code request} object and encodes some (or all) of its diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java index b2b44529c454..0c521b3d2808 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestParamsExtractor.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * A request params extractor takes a {@code request} message, extracts specific field values from diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java index a585f7b8eb1b..ce12a2f14bc3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RequestUrlParamsEncoder.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.client.util.escape.PercentEscaper; import com.google.api.core.InternalApi; import com.google.common.annotations.VisibleForTesting; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * The request params encoder, which encodes URL-encoded parameters in one URL parameters string. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java index 4ab4989e6e9c..67d813f649a4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ResourceNameExtractor.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.tracing.ObservabilityAttributes; +import org.jspecify.annotations.NullMarked; /** * A resource name extractor takes a request message and extracts the resource name from it. This diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java index b163fccd0bb4..ed33962e65c1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingCallable.java @@ -29,11 +29,11 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.retrying.RetryingExecutorWithContext; import com.google.api.gax.retrying.RetryingFuture; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A UnaryCallable that will keep issuing calls to an inner callable until it succeeds or times out. @@ -59,7 +59,7 @@ class RetryingCallable extends UnaryCallable callable, RetryingExecutorWithContext executor, - RequestMutator requestMutator) { + @Nullable RequestMutator requestMutator) { this.callContextPrototype = Preconditions.checkNotNull(callContextPrototype); this.callable = Preconditions.checkNotNull(callable); this.executor = Preconditions.checkNotNull(executor); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java index 59ad7255defe..61641c65d2e3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/RetryingServerStreamingCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFutureCallback; @@ -39,6 +37,7 @@ import com.google.api.gax.retrying.ScheduledRetryingExecutor; import com.google.api.gax.retrying.ServerStreamingAttemptException; import com.google.api.gax.retrying.StreamResumptionStrategy; +import org.jspecify.annotations.NullMarked; /** * A ServerStreamingCallable that implements resumable retries. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java index 56cff2bc9941..1653d0ab758c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStream.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import java.util.Iterator; import java.util.stream.Stream; import java.util.stream.StreamSupport; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * A blocking Iterable-style wrapper around server stream responses. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java index 45baa0c20763..020748f87a77 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamIterator.java @@ -29,11 +29,11 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.util.concurrent.UncheckedExecutionException; import java.util.Iterator; import java.util.NoSuchElementException; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Internal implementation of a blocking Iterator, which will coordinate with the @@ -48,7 +48,7 @@ @NullMarked final class ServerStreamIterator implements Iterator { private final QueuingResponseObserver observer; - private Object last; + private @Nullable Object last; ServerStreamIterator(QueuingResponseObserver observer) { this.observer = observer; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java index 7274791adb39..af6e8014e38a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingAttemptCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.SettableApiFuture; import com.google.api.gax.retrying.RetryingFuture; import com.google.api.gax.retrying.ServerStreamingAttemptException; @@ -39,6 +37,7 @@ import com.google.errorprone.annotations.concurrent.GuardedBy; import java.util.concurrent.Callable; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * A callable that generates Server Streaming attempts. At any one time, it is responsible for at diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java index 8db0fd532d0f..155178ed7d4e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -46,6 +44,7 @@ import java.time.Duration; import java.util.Set; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * A settings class to configure a {@link ServerStreamingCallable}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java index 2d15cd7596a1..772526678e35 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ServerStreamingCallable.java @@ -29,10 +29,10 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import java.util.Iterator; import java.util.List; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A ServerStreamingCallable is an immutable object which is capable of making RPC calls to server @@ -123,7 +123,7 @@ public ServerStream call(RequestT request) { * @param context the context * @return {@link ServerStream} which is used for iterating the responses. */ - public ServerStream call(RequestT request, ApiCallContext context) { + public ServerStream call(RequestT request, @Nullable ApiCallContext context) { ServerStream stream = new ServerStream<>(); call(request, stream.observer(), context); @@ -138,7 +138,9 @@ public ServerStream call(RequestT request, ApiCallContext context) { * @param context {@link ApiCallContext} to provide context information for the RPC call. */ public abstract void call( - RequestT request, ResponseObserver responseObserver, ApiCallContext context); + RequestT request, + ResponseObserver responseObserver, + @Nullable ApiCallContext context); /** * Conduct a server streaming call @@ -162,7 +164,7 @@ public void call(RequestT request, ResponseObserver responseObserver) public void serverStreamingCall( RequestT request, final ApiStreamObserver responseObserver, - ApiCallContext context) { + @Nullable ApiCallContext context) { call(request, new ApiStreamObserverAdapter<>(responseObserver), context); } @@ -188,7 +190,8 @@ public void serverStreamingCall(RequestT request, ApiStreamObserver r * @deprecated Please use call() instead. */ @Deprecated - public Iterator blockingServerStreamingCall(RequestT request, ApiCallContext context) { + public Iterator blockingServerStreamingCall( + RequestT request, @Nullable ApiCallContext context) { return call(request, context).iterator(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java index 71992c70bcd7..b037aaed3fbf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingCallable.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * Wraps a {@link ServerStreamingCallable} in a buffering {@link UnaryCallable}. The {@link diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java index 4c86caace1fc..d6b8fd20dce4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/SpoolingResponseObserver.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.AbstractApiFuture; import com.google.api.core.ApiFuture; import com.google.common.collect.Lists; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * A {@link ResponseObserver} that buffers the results from a {@link ServerStreamingCallable} in an diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java index 9437f285210c..f738c76c1950 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StateCheckingResponseObserver.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** Base implementation of {@link ResponseObserver} that performs state sanity checks. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java index b4df28c96428..7e946f6a08bb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StatusCode.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; +import org.jspecify.annotations.NullMarked; /** * Transport-specific status code. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java index 9aa9ca08177a..0a1b8e9c1a6a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamController.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; /** * Allows the implementer of {@link ResponseObserver} to control the flow of responses. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java index 881478ebb67e..2b237bc72710 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StreamingCallSettings.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; +import org.jspecify.annotations.NullMarked; /** * A settings class to configure a streaming callable object for calls to a streaming API method. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java index 8e26f179ac01..ffab13c4d79e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -55,6 +53,7 @@ import java.util.concurrent.Executor; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A base settings class to configure a client stub class. @@ -138,6 +137,7 @@ private EndpointContext buildEndpointContext(Builder builder) { /** * @deprecated Please use {@link #getBackgroundExecutorProvider()}. */ + @Nullable @Deprecated public final ExecutorProvider getExecutorProvider() { return deprecatedExecutorProviderSet ? backgroundExecutorProvider : null; @@ -293,20 +293,20 @@ public abstract static class Builder< private CredentialsProvider credentialsProvider; private HeaderProvider headerProvider; private HeaderProvider internalHeaderProvider; - private TransportChannelProvider transportChannelProvider; + @Nullable private TransportChannelProvider transportChannelProvider; private ApiClock clock; - private String clientSettingsEndpoint; - private String transportChannelProviderEndpoint; - private String mtlsEndpoint; - private String quotaProjectId; + @Nullable private String clientSettingsEndpoint; + @Nullable private String transportChannelProviderEndpoint; + @Nullable private String mtlsEndpoint; + @Nullable private String quotaProjectId; @Nullable private String gdchApiAudience; @Nullable private WatchdogProvider streamWatchdogProvider; @Nonnull private java.time.Duration streamWatchdogCheckInterval; @Nonnull private ApiTracerFactory tracerFactory; private boolean deprecatedExecutorProviderSet; - private String universeDomain; + @Nullable private String universeDomain; private final EndpointContext endpointContext; - private String apiKey; + @Nullable private String apiKey; /** * Indicate when creating transport whether it is allowed to use mTLS endpoint instead of the @@ -348,6 +348,7 @@ protected Builder(StubSettings settings) { } /** Get Quota Project ID from Client Context * */ + @Nullable private static String getQuotaProjectIdFromClientContext(ClientContext clientContext) { if (clientContext.getQuotaProjectId() != null) { return clientContext.getQuotaProjectId(); @@ -364,7 +365,7 @@ private static String getQuotaProjectIdFromClientContext(ClientContext clientCon return null; } - protected Builder(ClientContext clientContext) { + protected Builder(@Nullable ClientContext clientContext) { if (clientContext == null) { this.backgroundExecutorProvider = InstantiatingExecutorProvider.newBuilder().build(); this.transportChannelProvider = null; @@ -624,6 +625,7 @@ public B setApiKey(String apiKey) { /** * @deprecated Please use {@link #getBackgroundExecutorProvider()}. */ + @Nullable @Deprecated public ExecutorProvider getExecutorProvider() { return deprecatedExecutorProviderSet ? backgroundExecutorProvider : null; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java index 90c3ddcef324..60e3b9c3111b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TranslatingUnaryCallable.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import com.google.api.core.ApiFunction; import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; +import org.jspecify.annotations.NullMarked; /** * A UnaryCallable that translates request types and response types using the given transformers. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java index 0d44cb074e0b..1866092e28f9 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannel.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; import com.google.api.gax.core.BackgroundResource; +import org.jspecify.annotations.NullMarked; /** Class whose instances can issue RPCs on a particular transport. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java index b7581568ccd1..e7b5ea45dc9c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalExtensionOnly; import com.google.auth.Credentials; @@ -39,6 +37,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * Provides an interface to either build a TransportChannel or provide a fixed TransportChannel that diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java index ca65cbf40484..93bf6466249f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallSettings.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.InternalExtensionOnly; @@ -40,6 +38,8 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import java.util.Set; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A base settings class to configure a UnaryCallable. An instance of UnaryCallSettings is not @@ -110,7 +110,7 @@ public int hashCode() { } @Override - public boolean equals(Object obj) { + public boolean equals(@Nullable Object obj) { if (this == obj) { return true; } else if (obj == null) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java index 04c75cf50ad0..be0f1a8373f7 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/UnaryCallable.java @@ -29,9 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A UnaryCallable is an immutable object which is capable of making RPC calls to non-streaming API @@ -78,7 +78,8 @@ protected UnaryCallable() {} * @param context {@link ApiCallContext} to make the call with * @return {@link ApiFuture} for the call result */ - public abstract ApiFuture futureCall(RequestT request, ApiCallContext context); + public abstract ApiFuture futureCall( + RequestT request, @Nullable ApiCallContext context); /** * Same as {@link #futureCall(Object, ApiCallContext)}, with a null context. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java index 2b435c164290..bd794ec2603f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/Watchdog.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; @@ -52,6 +50,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * Prevents the streams from hanging indefinitely. This middleware garbage collects idle streams in diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java index ee3b7545e4d2..54b4259cdc7b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogProvider.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; import com.google.api.core.ApiClock; import com.google.api.core.ObsoleteApi; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; @NullMarked public interface WatchdogProvider { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java index b861edf04414..72f3e95b1f41 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogServerStreamingCallable.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.rpc; -import org.jspecify.annotations.NullMarked; - import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; +import org.jspecify.annotations.NullMarked; /** * A callable that uses a {@link Watchdog} to monitor streams. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java index bffa4825f922..d7269cfc74a2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/WatchdogTimeoutException.java @@ -30,6 +30,7 @@ package com.google.api.gax.rpc; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * The marker exception thrown when a timeout is exceeded. @@ -56,7 +57,7 @@ public Code getCode() { } @Override - public Object getTransportCode() { + public @Nullable Object getTransportCode() { return null; } }; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java index ed669529724c..fcecb85a2cc2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/ApiCallContextOptions.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.rpc.internal; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.ApiCallContext.Key; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; +import org.jspecify.annotations.NullMarked; /** * ApiCallContextOptions encapsulates additional call options to pass in a {@link ApiCallContext} diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java index 87688258a0e7..c672442a1ffd 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/EnvironmentProvider.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.rpc.internal; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalExtensionOnly; +import org.jspecify.annotations.NullMarked; /** Provides an interface to provide the environment variable values. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java index 3188a6a7bde8..0937790eb7e0 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/Headers.java @@ -30,13 +30,12 @@ package com.google.api.gax.rpc.internal; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; @NullMarked @InternalApi diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java index f99fb24c266b..1cf702ed23b3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/internal/QuotaProjectIdHidingCredentials.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.rpc.internal; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.util.Beta; import com.google.auth.Credentials; import com.google.common.collect.ImmutableMap; @@ -38,6 +36,8 @@ import java.net.URI; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * {@code QuotaProjectIdHidingCredentials} is intended to be used to wrap a {@link Credentials} to @@ -61,7 +61,7 @@ public String getAuthenticationType() { } @Override - public Map> getRequestMetadata(URI uri) throws IOException { + public Map> getRequestMetadata(@Nullable URI uri) throws IOException { ImmutableMap.Builder> metaBuilder = ImmutableMap.builder(); for (Map.Entry> entry : this.wrappedCredentials.getRequestMetadata(uri).entrySet()) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java index c5220bf47742..99f2cca9b53d 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/CertificateBasedAccess.java @@ -30,10 +30,9 @@ package com.google.api.gax.rpc.mtls; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.rpc.internal.EnvironmentProvider; +import org.jspecify.annotations.NullMarked; /** * Utility class for handling certificate-based access configurations. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java index c7ab64696f05..5408fde5d832 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/ContextAwareMetadataJson.java @@ -30,12 +30,11 @@ package com.google.api.gax.rpc.mtls; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.json.GenericJson; import com.google.api.client.util.Key; import com.google.common.collect.ImmutableList; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * Data class representing context_aware_metadata.json file. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java index ca8401b45bf2..26afbc83ab80 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/mtls/MtlsProvider.java @@ -30,8 +30,6 @@ package com.google.api.gax.rpc.mtls; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.json.JsonParser; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.SecurityUtils; @@ -46,6 +44,8 @@ import java.security.GeneralSecurityException; import java.security.KeyStore; import java.util.List; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Provider class for mutual TLS. It is used to configure the mutual TLS in the transport with the @@ -66,7 +66,7 @@ interface ProcessProvider { static class DefaultProcessProvider implements ProcessProvider { @Override - public Process createProcess(InputStream metadata) throws IOException { + public @Nullable Process createProcess(InputStream metadata) throws IOException { if (metadata == null) { return null; } @@ -126,7 +126,7 @@ public MtlsEndpointUsagePolicy getMtlsEndpointUsagePolicy() { } /** The mutual TLS key store created with the default client certificate on device. */ - public KeyStore getKeyStore() throws IOException { + public @Nullable KeyStore getKeyStore() throws IOException { try (InputStream stream = new FileInputStream(metadataPath)) { return getKeyStore(stream, processProvider); } catch (InterruptedException e) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java index 3ea94134588f..b0e0cbbcdedc 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toThreetenDuration; import com.google.api.core.InternalApi; import com.google.api.core.ObsoleteApi; +import org.jspecify.annotations.NullMarked; /** * Implementations of this class trace the logical flow of a google cloud client. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java index 94302840d5c2..a97ef001a051 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java @@ -30,8 +30,6 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.rpc.LibraryMetadata; import com.google.api.gax.tracing.ApiTracerFactory.OperationType; @@ -41,6 +39,7 @@ import java.util.Map; import java.util.function.Supplier; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A context object that contains information used to infer attributes that are common for all diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java index e7739a274e4a..6ff683aba929 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.core.InternalExtensionOnly; +import org.jspecify.annotations.NullMarked; /** * A factory to create new instances of {@link ApiTracer}s. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java index 96db9b07178c..049351f9f018 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java @@ -29,10 +29,9 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.core.ObsoleteApi; +import org.jspecify.annotations.NullMarked; /** * A base implementation of {@link ApiTracer} that does nothing. With the deprecation of Java 7 diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java index f35b620977ee..5a0865f20ea3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * Base factory that will build {@link ApiTracer}s that do nothing. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java index 0b95543d1413..118b2d89a334 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracer.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * A composite implementation of {@link ApiTracer} that delegates all tracing events to a list of diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java index 0c20bfd98a87..62cab0811d6e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/CompositeTracerFactory.java @@ -29,11 +29,10 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; +import org.jspecify.annotations.NullMarked; /** * A composite implementation of {@link ApiTracerFactory} that bundles multiple tracing factories diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java index e6ba25ff017f..c94b3256cb8f 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.DeadlineExceededException; import com.google.api.gax.rpc.WatchdogTimeoutException; @@ -48,6 +46,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.net.ssl.SSLHandshakeException; +import org.jspecify.annotations.NullMarked; @NullMarked public class ErrorTypeUtil { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java index 7ef8ac4054f5..63a09e06f0e3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.rpc.LibraryMetadata; import com.google.common.base.Strings; import io.opentelemetry.api.OpenTelemetry; @@ -41,6 +39,7 @@ import java.util.List; import java.util.Map; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This class takes an OpenTelemetry object, and creates instruments (meters, histograms etc.) from diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java index 97f859ee5ae0..51483728d5bb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracer.java @@ -30,8 +30,6 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.logging.LoggerProvider; import com.google.api.gax.logging.LoggingUtils; import com.google.common.annotations.VisibleForTesting; @@ -39,6 +37,7 @@ import com.google.rpc.ErrorInfo; import java.util.HashMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * An {@link ApiTracer} that logs actionable errors using {@link LoggingUtils} when an RPC attempt diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java index 19825e6a51b8..1c6c03a61557 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/LoggingTracerFactory.java @@ -30,11 +30,10 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.logging.LoggingUtils; import com.google.common.annotations.VisibleForTesting; +import org.jspecify.annotations.NullMarked; /** * A {@link ApiTracerFactory} that creates instances of {@link LoggingTracer}. This class is diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java index 5eba5bf2f9c0..72d805093824 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MethodName.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.StubSettings; import com.google.auto.value.AutoValue; +import org.jspecify.annotations.NullMarked; /** A value class to represent the name of the RPC method in an {@link ApiTracer}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java index 386c621c1e39..156a1ef5d3e4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsRecorder.java @@ -30,11 +30,10 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * Provides an interface for metrics recording. The implementer is expected to use an observability diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java index 839720a53fdf..53acdf7fcf52 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracer.java @@ -30,8 +30,6 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.BetaApi; @@ -45,6 +43,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import org.jspecify.annotations.NullMarked; /** * This class computes generic metrics that can be observed in the lifecycle of an RPC operation. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java index 42e688570746..cba06d3b48f2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/MetricsTracerFactory.java @@ -29,13 +29,12 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * A {@link ApiTracerFactory} to build instances of {@link MetricsTracer}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java index 343d696fb04a..3e3c91cc47f6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityAttributes.java @@ -30,10 +30,9 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; +import org.jspecify.annotations.NullMarked; /** * Utility class with common attribute names in app-centric observability. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java index 4d838501025f..130433339552 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.gax.rpc.ApiException; import com.google.api.gax.rpc.StatusCode; import com.google.common.base.Joiner; @@ -43,6 +41,7 @@ import java.util.Map; import java.util.concurrent.CancellationException; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; @NullMarked final class ObservabilityUtils { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java index 0b2a14190d64..2c912fb1bae6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsFactory.java @@ -29,9 +29,8 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import io.opentelemetry.api.OpenTelemetry; +import org.jspecify.annotations.NullMarked; /** * A {@link ApiTracerFactory} to build instances of {@link OpenTelemetryMetricsTracer}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java index d3037747be9d..3cd9ba53b523 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsRecorder.java @@ -30,8 +30,6 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.core.GaxProperties; @@ -43,6 +41,7 @@ import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.Meter; import java.util.Map; +import org.jspecify.annotations.NullMarked; /** * OpenTelemetry implementation of recording metrics. This implementation collections the diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java index e681ddc4c273..ca6748404d1b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryMetricsTracer.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; import com.google.common.base.Ticker; @@ -38,6 +36,8 @@ import java.util.Map; import java.util.concurrent.CancellationException; import java.util.concurrent.TimeUnit; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This class computes golden signal metrics that can be observed in the lifecycle of an RPC @@ -91,7 +91,7 @@ public void operationFailed(Throwable error) { recordMetric(error); } - private void recordMetric(Throwable error) { + private void recordMetric(@Nullable Throwable error) { Map responseAttributes = ObservabilityUtils.getResponseAttributes(error, transport); attributes.putAll(responseAttributes); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java index e668c83b9b92..036ae7f9e70a 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingFactory.java @@ -30,13 +30,13 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.util.Strings; import com.google.api.gax.rpc.LibraryMetadata; import com.google.common.annotations.VisibleForTesting; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.trace.Tracer; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A {@link ApiTracerFactory} to build instances of {@link OpenTelemetryTracingTracer}. @@ -75,7 +75,7 @@ public OpenTelemetryTracingFactory(OpenTelemetry openTelemetry) { */ @VisibleForTesting OpenTelemetryTracingFactory( - OpenTelemetry openTelemetry, Tracer tracer, ApiTracerContext apiTracerContext) { + OpenTelemetry openTelemetry, @Nullable Tracer tracer, ApiTracerContext apiTracerContext) { this.openTelemetry = openTelemetry; this.tracer = tracer; this.apiTracerContext = apiTracerContext; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java index b8554c5b2ec1..cb41da9ccbeb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpenTelemetryTracingTracer.java @@ -30,8 +30,6 @@ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.client.util.Strings; import com.google.api.core.InternalApi; import io.opentelemetry.api.trace.Span; @@ -41,6 +39,8 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CancellationException; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** An implementation of {@link ApiTracer} that uses OpenTelemetry to record traces. */ @NullMarked @@ -52,7 +52,7 @@ class OpenTelemetryTracingTracer implements ApiTracer { private final Map attemptAttributes; private final String attemptSpanName; private final ApiTracerContext apiTracerContext; - private Span attemptSpan; + private @Nullable Span attemptSpan; @Override public void injectTraceContext(java.util.Map carrier) { @@ -215,7 +215,7 @@ public void attemptPermanentFailure(Throwable error) { recordErrorAndEndAttempt(error); } - private void recordErrorAndEndAttempt(Throwable error) { + private void recordErrorAndEndAttempt(@Nullable Throwable error) { if (attemptSpan == null) { return; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java index 9c2d318462bd..10a31f248c73 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration; import com.google.api.core.BetaApi; @@ -52,6 +50,8 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Implementation of {@link ApiTracer} that uses OpenCensus. @@ -217,7 +217,7 @@ public class OpencensusTracer extends BaseApiTracer { private final Span span; private final OperationType operationType; - private volatile String lastConnectionId; + private volatile @Nullable String lastConnectionId; private volatile long currentAttemptId; private AtomicLong attemptSentMessages = new AtomicLong(0); private long attemptReceivedMessages = 0; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java index 8f62acd206d2..ca236a1b57d3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -41,6 +39,8 @@ import io.opencensus.trace.Tracing; import java.util.Map; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A {@link ApiTracerFactory} to build instances of {@link OpencensusTracer}. @@ -120,7 +120,7 @@ public ApiTracer newTracer(ApiTracer parent, SpanName spanName, OperationType op } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) { return true; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java index 0dd3e3769f01..a0ebd6a3d8f5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/SpanName.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.jspecify.annotations.NullMarked; /** A value class to represent the name of the operation in an {@link ApiTracer}. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java index 8380f4abebfc..64ad38b06678 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TraceFinisher.java @@ -29,12 +29,11 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFutureCallback; import com.google.common.base.Preconditions; import java.util.concurrent.CancellationException; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** An {@link ApiFutureCallback} to mark a started operation trace as finished. */ @NullMarked diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java index 8ddd70651290..c103c8423597 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -41,6 +39,7 @@ import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.util.concurrent.MoreExecutors; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This callable wraps a batching callable chain in a {@link ApiTracer}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java index 049fe290d46a..56b9203174d5 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -44,6 +42,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A wrapper callable that will wrap a callable chain in a trace. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java index 4938a1306e94..45a2af02e7c2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -42,6 +40,7 @@ import java.util.concurrent.atomic.AtomicReference; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A wrapper callable that will wrap a callable chain in a trace. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java index e1232808e60a..ea575452bc4e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.InternalApi; @@ -40,6 +38,7 @@ import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.util.concurrent.MoreExecutors; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * This callable wraps a {@link OperationCallable} in a {@link ApiTracer}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java index 3df93de1edb1..74cfc0b7ca34 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedOperationInitialCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutureCallback; import com.google.api.core.ApiFutures; @@ -38,6 +36,7 @@ import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.UnaryCallable; import com.google.common.util.concurrent.MoreExecutors; +import org.jspecify.annotations.NullMarked; /** * Traces the initial RPC of a long running operation. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java index 40a8144f171e..49444baf5e43 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedResponseObserver.java @@ -29,14 +29,13 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ResponseObserver; import com.google.api.gax.rpc.StreamController; import com.google.common.base.Preconditions; import java.util.concurrent.atomic.AtomicBoolean; import javax.annotation.Nonnull; +import org.jspecify.annotations.NullMarked; /** * A {@link ResponseObserver} to mark a started operation trace as finished. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java index b1e40cc5b4a5..5e7cd93f5f11 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.rpc.ApiCallContext; @@ -40,6 +38,7 @@ import com.google.common.base.Preconditions; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * A wrapper callable that will wrap a callable chain in a trace. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java index 9b3266282b31..41f787dc6157 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java @@ -29,8 +29,6 @@ */ package com.google.api.gax.tracing; -import org.jspecify.annotations.NullMarked; - import com.google.api.core.ApiFuture; import com.google.api.core.ApiFutures; import com.google.api.core.BetaApi; @@ -42,6 +40,7 @@ import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.util.concurrent.MoreExecutors; import javax.annotation.Nullable; +import org.jspecify.annotations.NullMarked; /** * This callable wraps a callable chain in a {@link ApiTracer}. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java index 7f96cf52d716..3dc2ef516843 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/util/TimeConversionUtils.java @@ -31,31 +31,32 @@ package com.google.api.gax.util; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked public class TimeConversionUtils { - public static java.time.Duration toJavaTimeDuration(org.threeten.bp.Duration source) { + public static java.time.@Nullable Duration toJavaTimeDuration(org.threeten.bp.Duration source) { if (source == null) { return null; } return java.time.Duration.ofSeconds(source.getSeconds(), source.getNano()); } - public static org.threeten.bp.Duration toThreetenDuration(java.time.Duration source) { + public static org.threeten.bp.@Nullable Duration toThreetenDuration(java.time.Duration source) { if (source == null) { return null; } return org.threeten.bp.Duration.ofSeconds(source.getSeconds(), source.getNano()); } - public static java.time.Instant toJavaTimeInstant(org.threeten.bp.Instant source) { + public static java.time.@Nullable Instant toJavaTimeInstant(org.threeten.bp.Instant source) { if (source == null) { return null; } return java.time.Instant.ofEpochSecond(source.getEpochSecond(), source.getNano()); } - public static org.threeten.bp.Instant toThreetenInstant(java.time.Instant source) { + public static org.threeten.bp.@Nullable Instant toThreetenInstant(java.time.Instant source) { if (source == null) { return null; } From f4e63af5714e2e86f4ffa60593d5b43d5ad56501 Mon Sep 17 00:00:00 2001 From: Nicole Lee Date: Fri, 17 Jul 2026 05:08:55 +0000 Subject: [PATCH 3/3] feat(gax): refactor javax to jspecify type-use null annotations --- .../com/google/api/gax/grpc/ChannelPool.java | 8 +- .../google/api/gax/grpc/GrpcCallContext.java | 60 ++++++------- .../InstantiatingGrpcChannelProvider.java | 84 ++++++++++--------- .../google/longrunning/OperationsClient.java | 10 ++- .../longrunning/OperationsSettings.java | 3 +- .../stub/OperationsStubSettings.java | 3 +- .../api/gax/httpjson/ApiMethodDescriptor.java | 12 ++- .../ForwardingHttpJsonClientCall.java | 2 +- .../api/gax/httpjson/HttpHeadersUtils.java | 3 +- .../api/gax/httpjson/HttpJsonCallContext.java | 60 ++++++------- .../api/gax/httpjson/HttpJsonCallOptions.java | 23 ++--- .../api/gax/httpjson/HttpJsonClientCall.java | 2 +- .../gax/httpjson/HttpJsonClientCallImpl.java | 4 +- .../gax/httpjson/HttpJsonDirectCallable.java | 3 +- .../api/gax/httpjson/HttpJsonMetadata.java | 8 +- .../api/gax/httpjson/HttpJsonStatusCode.java | 3 +- .../api/gax/httpjson/HttpRequestRunnable.java | 4 +- .../InstantiatingHttpJsonChannelProvider.java | 6 +- .../gax/httpjson/ManagedHttpJsonChannel.java | 6 +- .../longrunning/OperationsClient.java | 10 ++- .../longrunning/OperationsSettings.java | 3 +- .../stub/OperationsStubSettings.java | 3 +- .../gax-java/gax/javac.20260715_171737.args | 1 - .../google/api/gax/batching/BatchEntry.java | 5 +- .../com/google/api/gax/batching/Batcher.java | 2 +- .../google/api/gax/batching/BatcherImpl.java | 2 +- .../google/api/gax/batching/BatcherStats.java | 2 +- .../api/gax/batching/BatchingSettings.java | 14 ++-- .../batching/DynamicFlowControlSettings.java | 20 ++--- .../gax/batching/FlowControlEventStats.java | 8 +- .../api/gax/batching/FlowControlSettings.java | 8 +- .../api/gax/batching/FlowController.java | 32 +++---- .../gax/core/FixedCredentialsProvider.java | 5 +- .../gax/core/GoogleCredentialsProvider.java | 2 +- .../com/google/api/gax/logging/LogData.java | 32 +++---- .../api/gax/retrying/RetryingContext.java | 8 +- .../retrying/StreamResumptionStrategy.java | 5 +- .../google/api/gax/rpc/ApiCallContext.java | 32 +++---- .../com/google/api/gax/rpc/ClientContext.java | 23 ++--- .../google/api/gax/rpc/ClientSettings.java | 23 ++--- .../google/api/gax/rpc/EndpointContext.java | 38 +++------ .../com/google/api/gax/rpc/ErrorDetails.java | 32 +++---- .../api/gax/rpc/FixedHeaderProvider.java | 5 +- .../api/gax/rpc/FixedWatchdogProvider.java | 4 +- .../rpc/InstantiatingWatchdogProvider.java | 10 +-- .../google/api/gax/rpc/LibraryMetadata.java | 11 +-- .../com/google/api/gax/rpc/StubSettings.java | 37 ++++---- .../api/gax/rpc/TransportChannelProvider.java | 2 +- .../api/gax/tracing/ApiTracerContext.java | 15 ++-- .../google/api/gax/tracing/ErrorTypeUtil.java | 11 +-- .../tracing/GoldenSignalsMetricsRecorder.java | 2 +- .../api/gax/tracing/ObservabilityUtils.java | 2 +- .../gax/tracing/TracedBatchingCallable.java | 4 +- .../api/gax/tracing/TracedBidiCallable.java | 4 +- .../TracedClientStreamingCallable.java | 4 +- .../TracedServerStreamingCallable.java | 4 +- .../api/gax/tracing/TracedUnaryCallable.java | 6 +- 57 files changed, 317 insertions(+), 418 deletions(-) delete mode 100644 sdk-platform-java/gax-java/gax/javac.20260715_171737.args diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java index f76d550e8ba7..fab73a55dccf 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java @@ -56,8 +56,8 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.logging.Level; import java.util.logging.Logger; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A {@link ManagedChannel} that will send requests round-robin via a set of channels. @@ -80,8 +80,8 @@ class ChannelPool extends ManagedChannel { private final ChannelFactory channelFactory; private final FixedExecutorProvider backgroundExecutorProvider; - private ScheduledFuture refreshFuture = null; - private ScheduledFuture resizeFuture = null; + private @Nullable ScheduledFuture refreshFuture = null; + private @Nullable ScheduledFuture resizeFuture = null; private final Object entryWriteLock = new Object(); @VisibleForTesting final AtomicReference> entries = new AtomicReference<>(); @@ -623,7 +623,7 @@ public ClientCall newCall( /** ClientCall wrapper that makes sure to decrement the outstanding RPC count on completion. */ static class ReleasingClientCall extends SimpleForwardingClientCall { - @Nullable private CancellationException cancellationException; + private @Nullable CancellationException cancellationException; final Entry entry; private final AtomicBoolean wasClosed = new AtomicBoolean(); private final AtomicBoolean wasReleased = new AtomicBoolean(); diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java index b5dacde8ade1..ed7eea3a54de 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java @@ -65,8 +65,8 @@ import java.util.Objects; import java.util.Set; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * GrpcCallContext encapsulates context data used to make a grpc call. @@ -87,14 +87,14 @@ public final class GrpcCallContext implements ApiCallContext { public static final CallOptions.Key TRACER_KEY = CallOptions.Key.create("gax.tracer"); private final Channel channel; - @Nullable private final Credentials credentials; + private final @Nullable Credentials credentials; private final CallOptions callOptions; - @Nullable private final java.time.Duration timeout; - @Nullable private final java.time.Duration streamWaitTimeout; - @Nullable private final java.time.Duration streamIdleTimeout; - @Nullable private final Integer channelAffinity; - @Nullable private final RetrySettings retrySettings; - @Nullable private final ImmutableSet retryableCodes; + private final java.time.@Nullable Duration timeout; + private final java.time.@Nullable Duration streamWaitTimeout; + private final java.time.@Nullable Duration streamIdleTimeout; + private final @Nullable Integer channelAffinity; + private final @Nullable RetrySettings retrySettings; + private final @Nullable ImmutableSet retryableCodes; private final ImmutableMap> extraHeaders; private final ApiCallContextOptions options; private final EndpointContext endpointContext; @@ -137,12 +137,12 @@ public static GrpcCallContext of(Channel channel, CallOptions callOptions) { } private GrpcCallContext( - Channel channel, + @Nullable Channel channel, @Nullable Credentials credentials, CallOptions callOptions, - @Nullable java.time.Duration timeout, - @Nullable java.time.Duration streamWaitTimeout, - @Nullable java.time.Duration streamIdleTimeout, + java.time.@Nullable Duration timeout, + java.time.@Nullable Duration streamWaitTimeout, + java.time.@Nullable Duration streamIdleTimeout, @Nullable Integer channelAffinity, ImmutableMap> extraHeaders, ApiCallContextOptions options, @@ -259,12 +259,12 @@ public GrpcCallContext withEndpointContext(EndpointContext endpointContext) { /** This method is obsolete. Use {@link #withTimeoutDuration(java.time.Duration)} instead. */ @Override @ObsoleteApi("Use withTimeoutDuration(java.time.Duration) instead") - public GrpcCallContext withTimeout(@Nullable org.threeten.bp.Duration timeout) { + public GrpcCallContext withTimeout(org.threeten.bp.@Nullable Duration timeout) { return withTimeoutDuration(toJavaTimeDuration(timeout)); } @Override - public GrpcCallContext withTimeoutDuration(@Nullable java.time.Duration timeout) { + public GrpcCallContext withTimeoutDuration(java.time.@Nullable Duration timeout) { // Default RetrySettings use 0 for RPC timeout. Treat that as disabled timeouts. if (timeout != null && (timeout.isZero() || timeout.isNegative())) { timeout = null; @@ -291,17 +291,14 @@ public GrpcCallContext withTimeoutDuration(@Nullable java.time.Duration timeout) isDirectPath); } - /** This method is obsolete. Use {@link #getTimeoutDuration()} instead. */ - @Nullable @Override @ObsoleteApi("Use getTimeoutDuration() instead") - public org.threeten.bp.Duration getTimeout() { + public org.threeten.bp.@Nullable Duration getTimeout() { return toThreetenDuration(getTimeoutDuration()); } - @Nullable @Override - public java.time.Duration getTimeoutDuration() { + public java.time.@Nullable Duration getTimeoutDuration() { return timeout; } @@ -312,13 +309,13 @@ public java.time.Duration getTimeoutDuration() { @Override @ObsoleteApi("Use withStreamWaitTimeoutDuration(java.time.Duration) instead") public GrpcCallContext withStreamWaitTimeout( - @Nullable org.threeten.bp.Duration streamWaitTimeout) { + org.threeten.bp.@Nullable Duration streamWaitTimeout) { return withStreamWaitTimeoutDuration(toJavaTimeDuration(streamWaitTimeout)); } @Override public GrpcCallContext withStreamWaitTimeoutDuration( - @Nullable java.time.Duration streamWaitTimeout) { + java.time.@Nullable Duration streamWaitTimeout) { if (streamWaitTimeout != null) { Preconditions.checkArgument( streamWaitTimeout.compareTo(java.time.Duration.ZERO) >= 0, "Invalid timeout: < 0 s"); @@ -347,13 +344,13 @@ public GrpcCallContext withStreamWaitTimeoutDuration( @Override @ObsoleteApi("Use withStreamIdleTimeoutDuration(java.time.Duration) instead") public GrpcCallContext withStreamIdleTimeout( - @Nullable org.threeten.bp.Duration streamIdleTimeout) { + org.threeten.bp.@Nullable Duration streamIdleTimeout) { return withStreamIdleTimeoutDuration(toJavaTimeDuration(streamIdleTimeout)); } @Override public GrpcCallContext withStreamIdleTimeoutDuration( - @Nullable java.time.Duration streamIdleTimeout) { + java.time.@Nullable Duration streamIdleTimeout) { if (streamIdleTimeout != null) { Preconditions.checkArgument( streamIdleTimeout.compareTo(java.time.Duration.ZERO) >= 0, "Invalid timeout: < 0 s"); @@ -575,9 +572,8 @@ public CallOptions getCallOptions() { /** This method is obsolete. Use {@link #getStreamWaitTimeoutDuration()} instead. */ @Override - @Nullable @ObsoleteApi("Use getStreamWaitTimeoutDuration() instead") - public org.threeten.bp.Duration getStreamWaitTimeout() { + public org.threeten.bp.@Nullable Duration getStreamWaitTimeout() { return toThreetenDuration(getStreamWaitTimeoutDuration()); } @@ -587,16 +583,14 @@ public org.threeten.bp.Duration getStreamWaitTimeout() { * @see ApiCallContext#withStreamWaitTimeoutDuration(java.time.Duration) */ @Override - @Nullable - public java.time.Duration getStreamWaitTimeoutDuration() { + public java.time.@Nullable Duration getStreamWaitTimeoutDuration() { return streamWaitTimeout; } /** This method is obsolete. Use {@link #getStreamIdleTimeoutDuration()} instead. */ @Override - @Nullable @ObsoleteApi("Use getStreamIdleTimeoutDuration() instead") - public org.threeten.bp.Duration getStreamIdleTimeout() { + public org.threeten.bp.@Nullable Duration getStreamIdleTimeout() { return toThreetenDuration(getStreamIdleTimeoutDuration()); } @@ -606,14 +600,12 @@ public org.threeten.bp.Duration getStreamIdleTimeout() { * @see ApiCallContext#withStreamIdleTimeoutDuration(java.time.Duration) */ @Override - @Nullable - public java.time.Duration getStreamIdleTimeoutDuration() { + public java.time.@Nullable Duration getStreamIdleTimeoutDuration() { return streamIdleTimeout; } /** The channel affinity for this context. */ - @Nullable - public Integer getChannelAffinity() { + public @Nullable Integer getChannelAffinity() { return channelAffinity; } @@ -771,7 +763,7 @@ public int hashCode() { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) { return true; } diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java index 286ae47a69aa..5f7e6297c1f6 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java @@ -82,9 +82,9 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import javax.annotation.Nullable; import javax.net.ssl.KeyManagerFactory; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * InstantiatingGrpcChannelProvider is a TransportChannelProvider which constructs a gRPC @@ -131,7 +131,7 @@ public final class InstantiatingGrpcChannelProvider implements TransportChannelP private final int processorCount; private final Executor executor; - @Nullable private final ScheduledExecutorService backgroundExecutor; + private final @Nullable ScheduledExecutorService backgroundExecutor; private final HeaderProvider headerProvider; private final boolean useS2A; private final String endpoint; @@ -140,33 +140,33 @@ public final class InstantiatingGrpcChannelProvider implements TransportChannelP // during initial rollout for DirectPath. This provider will be removed once the DirectPath // environment is not used. private final EnvironmentProvider envProvider; - @Nullable private final GrpcInterceptorProvider interceptorProvider; - @Nullable private final Integer maxInboundMessageSize; - @Nullable private final Integer maxInboundMetadataSize; - @Nullable private final java.time.Duration keepAliveTime; - @Nullable private final java.time.Duration keepAliveTimeout; - @Nullable private final Boolean keepAliveWithoutCalls; + private final @Nullable GrpcInterceptorProvider interceptorProvider; + private final @Nullable Integer maxInboundMessageSize; + private final @Nullable Integer maxInboundMetadataSize; + private final java.time.@Nullable Duration keepAliveTime; + private final java.time.@Nullable Duration keepAliveTimeout; + private final @Nullable Boolean keepAliveWithoutCalls; private final ChannelPoolSettings channelPoolSettings; - @Nullable private final Credentials credentials; - @Nullable private final CallCredentials altsCallCredentials; - @Nullable private final CallCredentials mtlsS2ACallCredentials; - @Nullable private final ChannelPrimer channelPrimer; - @Nullable private final Boolean attemptDirectPath; - @Nullable private final Boolean attemptDirectPathXds; - @Nullable private final Boolean allowNonDefaultServiceAccount; + private final @Nullable Credentials credentials; + private final @Nullable CallCredentials altsCallCredentials; + private final @Nullable CallCredentials mtlsS2ACallCredentials; + private final @Nullable ChannelPrimer channelPrimer; + private final @Nullable Boolean attemptDirectPath; + private final @Nullable Boolean attemptDirectPathXds; + private final @Nullable Boolean allowNonDefaultServiceAccount; @VisibleForTesting final ImmutableMap directPathServiceConfig; - @Nullable private final MtlsProvider mtlsProvider; + private final @Nullable MtlsProvider mtlsProvider; private final CertificateBasedAccess certificateBasedAccess; - @Nullable private final SecureSessionAgent s2aConfigProvider; + private final @Nullable SecureSessionAgent s2aConfigProvider; private final List allowedHardBoundTokenTypes; @VisibleForTesting final Map headersWithDuplicatesRemoved = new HashMap<>(); - @Nullable - private final ApiFunction channelConfigurator; + private final @Nullable ApiFunction + channelConfigurator; // This is initialized once for the lifetime of the application. This enables re-using // channels to S2A. - private static volatile ChannelCredentials s2aChannelCredentials; + private static @Nullable volatile ChannelCredentials s2aChannelCredentials; /** * Resets the s2aChannelCredentials of the {@link InstantiatingGrpcChannelProvider} class for @@ -541,6 +541,7 @@ boolean canUseDirectPathWithUniverseDomain() { return endpoint.contains(Credentials.GOOGLE_DEFAULT_UNIVERSE); } + @Nullable @VisibleForTesting ChannelCredentials createMtlsChannelCredentials() throws IOException, GeneralSecurityException { if (mtlsProvider == null) { @@ -567,7 +568,7 @@ ChannelCredentials createMtlsChannelCredentials() throws IOException, GeneralSec * @param s2aChannelCredentials the credentials to be used when connecting to the S2A. * @return {@code ChannelCredentials} instance. */ - ChannelCredentials buildS2AChannelCredentials( + @Nullable ChannelCredentials buildS2AChannelCredentials( String s2aAddress, ChannelCredentials s2aChannelCredentials) { try { // Load the S2A API. @@ -608,6 +609,7 @@ ChannelCredentials buildS2AChannelCredentials( * @return {@link ChannelCredentials} to use to create an mtls connection between client and S2A * @throws IOException on error */ + @Nullable @VisibleForTesting ChannelCredentials createMtlsToS2AChannelCredentials( File trustBundle, File privateKey, File certChain) throws IOException { @@ -628,7 +630,7 @@ ChannelCredentials createMtlsToS2AChannelCredentials( * @return {@link ChannelCredentials} to use to create a plaintext connection between client and * S2A */ - ChannelCredentials createPlaintextToS2AChannelCredentials(String plaintextAddress) { + @Nullable ChannelCredentials createPlaintextToS2AChannelCredentials(String plaintextAddress) { if (Strings.isNullOrEmpty(plaintextAddress)) { return null; } @@ -950,24 +952,24 @@ public static final class Builder { private boolean useS2A; private EnvironmentProvider envProvider; private SecureSessionAgent s2aConfigProvider = SecureSessionAgent.create(); - @Nullable private MtlsProvider mtlsProvider; + private @Nullable MtlsProvider mtlsProvider; private CertificateBasedAccess certificateBasedAccess; - @Nullable private GrpcInterceptorProvider interceptorProvider; - @Nullable private Integer maxInboundMessageSize; - @Nullable private Integer maxInboundMetadataSize; - @Nullable private java.time.Duration keepAliveTime; - @Nullable private java.time.Duration keepAliveTimeout; - @Nullable private Boolean keepAliveWithoutCalls; - @Nullable private ApiFunction channelConfigurator; - @Nullable private Credentials credentials; - @Nullable private CallCredentials altsCallCredentials; - @Nullable private CallCredentials mtlsS2ACallCredentials; - @Nullable private ChannelPrimer channelPrimer; + private @Nullable GrpcInterceptorProvider interceptorProvider; + private @Nullable Integer maxInboundMessageSize; + private @Nullable Integer maxInboundMetadataSize; + private java.time.@Nullable Duration keepAliveTime; + private java.time.@Nullable Duration keepAliveTimeout; + private @Nullable Boolean keepAliveWithoutCalls; + private @Nullable ApiFunction channelConfigurator; + private @Nullable Credentials credentials; + private @Nullable CallCredentials altsCallCredentials; + private @Nullable CallCredentials mtlsS2ACallCredentials; + private @Nullable ChannelPrimer channelPrimer; private ChannelPoolSettings channelPoolSettings; - @Nullable private Boolean attemptDirectPath; - @Nullable private Boolean attemptDirectPathXds; - @Nullable private Boolean allowNonDefaultServiceAccount; - @Nullable private ImmutableMap directPathServiceConfig; + private @Nullable Boolean attemptDirectPath; + private @Nullable Boolean attemptDirectPathXds; + private @Nullable Boolean allowNonDefaultServiceAccount; + private @Nullable ImmutableMap directPathServiceConfig; private List allowedHardBoundTokenTypes; private Builder() { @@ -1363,7 +1365,7 @@ boolean isDirectPathBoundTokenEnabled() { CallCredentials createHardBoundTokensCallCredentials( ComputeEngineCredentials.GoogleAuthTransport googleAuthTransport, - ComputeEngineCredentials.BindingEnforcement bindingEnforcement) { + ComputeEngineCredentials.@Nullable BindingEnforcement bindingEnforcement) { ComputeEngineCredentials.Builder credsBuilder = ((ComputeEngineCredentials) credentials).toBuilder(); // We only set scopes and HTTP transport factory from the original credentials because @@ -1439,8 +1441,8 @@ public Builder setChannelConfigurator( return this; } - @Nullable - public ApiFunction getChannelConfigurator() { + public @Nullable ApiFunction + getChannelConfigurator() { return channelConfigurator; } } diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java index a14f9dc3af04..c06736f5ae07 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsClient.java @@ -47,6 +47,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Service Description: Manages long-running operations with an API service. @@ -111,7 +112,7 @@ */ @NullMarked public class OperationsClient implements BackgroundResource { - private final OperationsSettings settings; + private final @Nullable OperationsSettings settings; private final OperationsStub stub; /** @@ -619,8 +620,8 @@ public static class ListOperationsPage ListOperationsRequest, ListOperationsResponse, Operation, ListOperationsPage> { private ListOperationsPage( - PageContext context, - ListOperationsResponse response) { + @Nullable PageContext context, + @Nullable ListOperationsResponse response) { super(context, response); } @@ -651,7 +652,8 @@ public static class ListOperationsFixedSizeCollection ListOperationsPage, ListOperationsFixedSizeCollection> { - private ListOperationsFixedSizeCollection(List pages, int collectionSize) { + private ListOperationsFixedSizeCollection( + @Nullable List pages, int collectionSize) { super(pages, collectionSize); } diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java index e3a5f4215459..1d4683679309 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/OperationsSettings.java @@ -42,6 +42,7 @@ import com.google.protobuf.Empty; import java.io.IOException; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Settings class to configure an instance of {@link OperationsClient}. */ @NullMarked @@ -117,7 +118,7 @@ protected Builder() throws IOException { this((ClientContext) null); } - protected Builder(ClientContext clientContext) { + protected Builder(@Nullable ClientContext clientContext) { super(OperationsStubSettings.newBuilder(clientContext)); } diff --git a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java index 6443430311a7..59eebe3fac9b 100644 --- a/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java +++ b/sdk-platform-java/gax-java/gax-grpc/src/main/java/com/google/longrunning/stub/OperationsStubSettings.java @@ -64,6 +64,7 @@ import com.google.protobuf.Empty; import java.io.IOException; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Settings class to configure an instance of {@link OperationsStub}. */ @NullMarked @@ -260,7 +261,7 @@ protected Builder() { this((ClientContext) null); } - protected Builder(ClientContext clientContext) { + protected Builder(@Nullable ClientContext clientContext) { super(clientContext); getOperationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java index a03314c6f9b1..0878c3e5b848 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ApiMethodDescriptor.java @@ -30,8 +30,8 @@ package com.google.api.gax.httpjson; import com.google.auto.value.AutoValue; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @AutoValue /* Method descriptor for messages to be transmitted over HTTP. */ @@ -52,14 +52,12 @@ public enum MethodType { public abstract HttpResponseParser getResponseParser(); /** Return the HTTP method for this request message type. */ - @Nullable - public abstract String getHttpMethod(); + public abstract @Nullable String getHttpMethod(); - @Nullable - public abstract OperationSnapshotFactory getOperationSnapshotFactory(); + public abstract @Nullable OperationSnapshotFactory + getOperationSnapshotFactory(); - @Nullable - public abstract PollingRequestFactory getPollingRequestFactory(); + public abstract @Nullable PollingRequestFactory getPollingRequestFactory(); public abstract MethodType getType(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java index 27311df4919f..f1bea5a1688a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ForwardingHttpJsonClientCall.java @@ -29,8 +29,8 @@ */ package com.google.api.gax.httpjson; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A {@link HttpJsonClientCall} which forwards all of its methods to another {@link diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java index 54bc59c76d8f..66f89451225f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpHeadersUtils.java @@ -37,12 +37,13 @@ import java.util.List; import java.util.Map; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** This class is for internal use only and is public for technical reasons. */ @NullMarked @InternalApi public class HttpHeadersUtils { - public static String getUserAgentValue(Map headersMap) { + public static @Nullable String getUserAgentValue(Map headersMap) { for (Map.Entry entry : headersMap.entrySet()) { if ("user-agent".equalsIgnoreCase(entry.getKey())) { return entry.getValue(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java index 7c48b22af5b0..941dc646f14a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java @@ -56,8 +56,8 @@ import java.util.Objects; import java.util.Set; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * HttpJsonCallContext encapsulates context data used to make an http-json call. @@ -73,14 +73,14 @@ public final class HttpJsonCallContext implements ApiCallContext { HttpJsonStatusCode.of(StatusCode.Code.UNAUTHENTICATED); private final HttpJsonChannel channel; private final HttpJsonCallOptions callOptions; - @Nullable private final java.time.Duration timeout; - @Nullable private final java.time.Duration streamWaitTimeout; - @Nullable private final java.time.Duration streamIdleTimeout; + private final java.time.@Nullable Duration timeout; + private final java.time.@Nullable Duration streamWaitTimeout; + private final java.time.@Nullable Duration streamIdleTimeout; private final ImmutableMap> extraHeaders; private final ApiCallContextOptions options; private final ApiTracer tracer; - @Nullable private final RetrySettings retrySettings; - @Nullable private final ImmutableSet retryableCodes; + private final @Nullable RetrySettings retrySettings; + private final @Nullable ImmutableSet retryableCodes; private final EndpointContext endpointContext; /** Returns an empty instance. */ @@ -115,16 +115,16 @@ public static HttpJsonCallContext of(HttpJsonChannel channel, HttpJsonCallOption } private HttpJsonCallContext( - HttpJsonChannel channel, + @Nullable HttpJsonChannel channel, HttpJsonCallOptions callOptions, - java.time.Duration timeout, - java.time.Duration streamWaitTimeout, - java.time.Duration streamIdleTimeout, + java.time.@Nullable Duration timeout, + java.time.@Nullable Duration streamWaitTimeout, + java.time.@Nullable Duration streamIdleTimeout, ImmutableMap> extraHeaders, ApiCallContextOptions options, - ApiTracer tracer, - RetrySettings defaultRetrySettings, - Set defaultRetryableCodes, + @Nullable ApiTracer tracer, + @Nullable RetrySettings defaultRetrySettings, + @Nullable Set defaultRetryableCodes, @Nullable EndpointContext endpointContext) { this.channel = channel; this.callOptions = callOptions; @@ -305,16 +305,14 @@ public HttpJsonCallContext withTimeoutDuration(java.time.Duration timeout) { } /** This method is obsolete. Use {@link #getTimeoutDuration()} instead. */ - @Nullable @Override @ObsoleteApi("Use getTimeoutDuration instead") - public org.threeten.bp.Duration getTimeout() { + public org.threeten.bp.@Nullable Duration getTimeout() { return toThreetenDuration(getTimeoutDuration()); } - @Nullable @Override - public java.time.Duration getTimeoutDuration() { + public java.time.@Nullable Duration getTimeoutDuration() { return timeout; } @@ -325,13 +323,13 @@ public java.time.Duration getTimeoutDuration() { @Override @ObsoleteApi("Use withStreamWaitTimeoutDuration(java.time.Duration) instead") public HttpJsonCallContext withStreamWaitTimeout( - @Nullable org.threeten.bp.Duration streamWaitTimeout) { + org.threeten.bp.@Nullable Duration streamWaitTimeout) { return withStreamWaitTimeoutDuration(toJavaTimeDuration(streamWaitTimeout)); } @Override public HttpJsonCallContext withStreamWaitTimeoutDuration( - @Nullable java.time.Duration streamWaitTimeout) { + java.time.@Nullable Duration streamWaitTimeout) { if (streamWaitTimeout != null) { Preconditions.checkArgument( streamWaitTimeout.compareTo(java.time.Duration.ZERO) >= 0, "Invalid timeout: < 0 s"); @@ -353,9 +351,8 @@ public HttpJsonCallContext withStreamWaitTimeoutDuration( /** This method is obsolete. Use {@link #getStreamWaitTimeoutDuration()} instead. */ @Override - @Nullable @ObsoleteApi("Use getStreamWaitTimeoutDuration() instead") - public org.threeten.bp.Duration getStreamWaitTimeout() { + public org.threeten.bp.@Nullable Duration getStreamWaitTimeout() { return toThreetenDuration(getStreamWaitTimeoutDuration()); } @@ -365,8 +362,7 @@ public org.threeten.bp.Duration getStreamWaitTimeout() { * @see ApiCallContext#withStreamWaitTimeoutDuration(java.time.Duration) */ @Override - @Nullable - public java.time.Duration getStreamWaitTimeoutDuration() { + public java.time.@Nullable Duration getStreamWaitTimeoutDuration() { return streamWaitTimeout; } @@ -377,13 +373,13 @@ public java.time.Duration getStreamWaitTimeoutDuration() { @Override @ObsoleteApi("Use withStreamIdleTimeoutDuration(java.time.Duration) instead") public HttpJsonCallContext withStreamIdleTimeout( - @Nullable org.threeten.bp.Duration streamIdleTimeout) { + org.threeten.bp.@Nullable Duration streamIdleTimeout) { return withStreamIdleTimeoutDuration(toJavaTimeDuration(streamIdleTimeout)); } @Override public HttpJsonCallContext withStreamIdleTimeoutDuration( - @Nullable java.time.Duration streamIdleTimeout) { + java.time.@Nullable Duration streamIdleTimeout) { if (streamIdleTimeout != null) { Preconditions.checkArgument( streamIdleTimeout.compareTo(java.time.Duration.ZERO) >= 0, "Invalid timeout: < 0 s"); @@ -405,9 +401,8 @@ public HttpJsonCallContext withStreamIdleTimeoutDuration( /** This method is obsolete. Use {@link #getStreamIdleTimeoutDuration()} instead. */ @Override - @Nullable @ObsoleteApi("Use getStreamIdleTimeoutDuration() instead") - public org.threeten.bp.Duration getStreamIdleTimeout() { + public org.threeten.bp.@Nullable Duration getStreamIdleTimeout() { return toThreetenDuration(getStreamIdleTimeoutDuration()); } @@ -417,8 +412,7 @@ public org.threeten.bp.Duration getStreamIdleTimeout() { * @see ApiCallContext#withStreamIdleTimeoutDuration(java.time.Duration) */ @Override - @Nullable - public java.time.Duration getStreamIdleTimeoutDuration() { + public java.time.@Nullable Duration getStreamIdleTimeoutDuration() { return streamIdleTimeout; } @@ -506,14 +500,12 @@ public HttpJsonCallOptions getCallOptions() { } @Deprecated - @Nullable - public org.threeten.bp.Instant getDeadline() { + public org.threeten.bp.@Nullable Instant getDeadline() { return getCallOptions() != null ? getCallOptions().getDeadline() : null; } @Deprecated - @Nullable - public Credentials getCredentials() { + public @Nullable Credentials getCredentials() { return getCallOptions() != null ? getCallOptions().getCredentials() : null; } @@ -626,7 +618,7 @@ public HttpJsonCallContext withTracer(@Nonnull ApiTracer newTracer) { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) { return true; } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java index 0bc069b67007..aac7a69c590d 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallOptions.java @@ -39,8 +39,8 @@ import com.google.auth.Credentials; import com.google.auto.value.AutoValue; import com.google.protobuf.TypeRegistry; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Options for an http-json call, including deadline and credentials. */ @NullMarked @@ -49,33 +49,26 @@ public abstract class HttpJsonCallOptions { public static final HttpJsonCallOptions DEFAULT = newBuilder().build(); /** This method is obsolete. Use {@link #getTimeoutDuration()} instead. */ - @Nullable @ObsoleteApi("Use getTimeoutDuration() instead") - public final org.threeten.bp.Duration getTimeout() { + public final org.threeten.bp.@Nullable Duration getTimeout() { return toThreetenDuration(getTimeoutDuration()); } - @Nullable - public abstract java.time.Duration getTimeoutDuration(); + public abstract java.time.@Nullable Duration getTimeoutDuration(); /** This method is obsolete. Use {@link #getDeadlineInstant()} instead. */ - @Nullable @ObsoleteApi("Use getDeadlineInstant() instead") - public final org.threeten.bp.Instant getDeadline() { + public final org.threeten.bp.@Nullable Instant getDeadline() { return toThreetenInstant(getDeadlineInstant()); } - @Nullable - public abstract java.time.Instant getDeadlineInstant(); + public abstract java.time.@Nullable Instant getDeadlineInstant(); - @Nullable - public abstract Credentials getCredentials(); + public abstract @Nullable Credentials getCredentials(); - @Nullable - public abstract TypeRegistry getTypeRegistry(); + public abstract @Nullable TypeRegistry getTypeRegistry(); - @Nullable - public abstract ApiTracer getTracer(); + public abstract @Nullable ApiTracer getTracer(); public abstract Builder toBuilder(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java index 5006dbbccdc0..fef0f62fd445 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCall.java @@ -29,8 +29,8 @@ */ package com.google.api.gax.httpjson; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; // This class mimics the structure and behavior of the corresponding ClientCall from gRPC package as // closely as possible. diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java index 4d8ad21f7a2b..a89e2e02a0dc 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonClientCallImpl.java @@ -47,8 +47,8 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This class serves as main implementation of {@link HttpJsonClientCall} for REST transport and is @@ -111,6 +111,7 @@ final class HttpJsonClientCallImpl // // Response-specific data (received from server). // + @Nullable @GuardedBy("lock") private HttpRequestRunnable requestRunnable; @@ -127,6 +128,7 @@ final class HttpJsonClientCallImpl // can be cancelled if a response (either an error or valid payload) has been // received before the timeout. This value may be null if the RPC does not have a // timeout. + @Nullable @GuardedBy("lock") private volatile ScheduledFuture timeoutFuture; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java index 6784291a4f8e..5601fadec554 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonDirectCallable.java @@ -35,6 +35,7 @@ import com.google.common.base.Preconditions; import com.google.protobuf.TypeRegistry; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * {@code HttpJsonDirectCallable} creates HTTP calls. @@ -51,7 +52,7 @@ class HttpJsonDirectCallable extends UnaryCallable descriptor, TypeRegistry typeRegistry) { + ApiMethodDescriptor descriptor, @Nullable TypeRegistry typeRegistry) { this.descriptor = descriptor; this.typeRegistry = typeRegistry; } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java index 374e9b3fb62e..493539b3de2a 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonMetadata.java @@ -35,8 +35,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked @AutoValue @@ -44,11 +44,9 @@ public abstract class HttpJsonMetadata { public abstract Map getHeaders(); - @Nullable - public abstract String getStatusMessage(); + public abstract @Nullable String getStatusMessage(); - @Nullable - public abstract Throwable getException(); + public abstract @Nullable Throwable getException(); public abstract Builder toBuilder(); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java index 2ea9d6652e4b..45628fd90f3f 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonStatusCode.java @@ -33,6 +33,7 @@ import com.google.api.gax.rpc.StatusCode; import java.util.Objects; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** A failure code specific to an HTTP call. */ @NullMarked @@ -151,7 +152,7 @@ private HttpJsonStatusCode(int httpStatus, Code statusCode) { } @Override - public boolean equals(Object o) { + public boolean equals(@Nullable Object o) { if (this == o) { return true; } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java index 1d9f00f9066c..7a20affb9386 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpRequestRunnable.java @@ -56,8 +56,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** A runnable object that creates and executes an HTTP request. */ @NullMarked @@ -312,7 +312,7 @@ public abstract static class Builder { public abstract Builder setStatusCode(int newStatusCode); - public abstract Builder setResponseContent(InputStream newResponseContent); + public abstract Builder setResponseContent(@Nullable InputStream newResponseContent); public abstract Builder setTrailers(HttpJsonMetadata newTrailers); diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java index 06eed05a53e5..4cffc99cea59 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/InstantiatingHttpJsonChannelProvider.java @@ -50,8 +50,8 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.logging.Level; import java.util.logging.Logger; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * InstantiatingHttpJsonChannelProvider is a TransportChannelProvider which constructs a {@link @@ -77,7 +77,7 @@ public final class InstantiatingHttpJsonChannelProvider implements TransportChan private final HttpJsonInterceptorProvider interceptorProvider; private final String endpoint; private final HttpTransport httpTransport; - @Nullable private final MtlsProvider mtlsProvider; + private final @Nullable MtlsProvider mtlsProvider; private final CertificateBasedAccess certificateBasedAccess; private InstantiatingHttpJsonChannelProvider( @@ -192,7 +192,7 @@ public TransportChannelProvider withCredentials(Credentials credentials) { "InstantiatingHttpJsonChannelProvider doesn't need credentials"); } - HttpTransport createHttpTransport() throws IOException, GeneralSecurityException { + @Nullable HttpTransport createHttpTransport() throws IOException, GeneralSecurityException { if (mtlsProvider == null) { return null; } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java index cae63ee1b9e3..8e24eafcce97 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/ManagedHttpJsonChannel.java @@ -41,8 +41,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Implementation of HttpJsonChannel which can issue http-json calls. */ @NullMarked @@ -64,9 +64,9 @@ String getEndpoint() { } private ManagedHttpJsonChannel( - Executor executor, + @Nullable Executor executor, boolean usingDefaultExecutor, - String endpoint, + @Nullable String endpoint, @Nullable HttpTransport httpTransport) { this.executor = executor; this.usingDefaultExecutor = usingDefaultExecutor; diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java index 56b0bc082d98..568bc0373d22 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsClient.java @@ -52,6 +52,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -122,7 +123,7 @@ */ @NullMarked public class OperationsClient implements BackgroundResource { - private final OperationsSettings settings; + private final @Nullable OperationsSettings settings; private final OperationsStub stub; /** Constructs an instance of OperationsClient with default settings. */ @@ -604,8 +605,8 @@ public static class ListOperationsPage ListOperationsRequest, ListOperationsResponse, Operation, ListOperationsPage> { private ListOperationsPage( - PageContext context, - ListOperationsResponse response) { + @Nullable PageContext context, + @Nullable ListOperationsResponse response) { super(context, response); } @@ -636,7 +637,8 @@ public static class ListOperationsFixedSizeCollection ListOperationsPage, ListOperationsFixedSizeCollection> { - private ListOperationsFixedSizeCollection(List pages, int collectionSize) { + private ListOperationsFixedSizeCollection( + @Nullable List pages, int collectionSize) { super(pages, collectionSize); } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java index 28c3827a0454..6765cae65899 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/OperationsSettings.java @@ -52,6 +52,7 @@ import java.io.IOException; import java.util.List; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -173,7 +174,7 @@ protected Builder() throws IOException { this(((ClientContext) null)); } - protected Builder(ClientContext clientContext) { + protected Builder(@Nullable ClientContext clientContext) { super(OperationsStubSettings.newBuilder(clientContext)); } diff --git a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java index a02de436ca7a..5122a8d60863 100644 --- a/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java +++ b/sdk-platform-java/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/longrunning/stub/OperationsStubSettings.java @@ -66,6 +66,7 @@ import java.io.IOException; import java.util.List; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** @@ -310,7 +311,7 @@ protected Builder() { this(((ClientContext) null)); } - protected Builder(ClientContext clientContext) { + protected Builder(@Nullable ClientContext clientContext) { super(clientContext); listOperationsSettings = PagedCallSettings.newBuilder(LIST_OPERATIONS_PAGE_STR_FACT); diff --git a/sdk-platform-java/gax-java/gax/javac.20260715_171737.args b/sdk-platform-java/gax-java/gax/javac.20260715_171737.args deleted file mode 100644 index 63ca25128e68..000000000000 --- a/sdk-platform-java/gax-java/gax/javac.20260715_171737.args +++ /dev/null @@ -1 +0,0 @@ -@/tmp/org.codehaus.plexus.compiler.javac.JavacCompiler7653064300311673901arguments diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java index cc943ceda37e..0cf420cb2edb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchEntry.java @@ -32,8 +32,8 @@ import com.google.api.core.InternalApi; import com.google.api.core.SettableApiFuture; import com.google.auto.value.AutoValue; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This class contains the element and its corresponding unresolved future, which would be resolved @@ -54,8 +54,7 @@ public static BatchEntry cr return new AutoValue_BatchEntry<>(element, resultFuture); } - @Nullable - public abstract ElementT getElement(); + public abstract @Nullable ElementT getElement(); public abstract SettableApiFuture getResultFuture(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java index d38e07d41f00..1b8479c376b4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/Batcher.java @@ -34,8 +34,8 @@ import com.google.api.gax.rpc.ApiCallContext; import java.time.Duration; import java.util.concurrent.TimeoutException; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Represents a batching context where individual elements will be accumulated and flushed in a diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java index c10a543da446..14c2e0ca12da 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherImpl.java @@ -65,8 +65,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Queues up the elements until {@link #flush()} is called; once batching is over, returned future diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java index 6c81cc6a045d..16407ae5f5a8 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatcherStats.java @@ -38,8 +38,8 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Keeps the statistics about failed operations(both at RPC and ElementT) in {@link Batcher}. This diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java index 7f2f7102aaaf..7cbb131903d6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/BatchingSettings.java @@ -37,8 +37,8 @@ import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import java.time.Duration; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Represents the batching settings to use for an API method that is capable of batching. @@ -97,23 +97,19 @@ @AutoValue public abstract class BatchingSettings { /** Get the element count threshold to use for batching. */ - @Nullable - public abstract Long getElementCountThreshold(); + public abstract @Nullable Long getElementCountThreshold(); /** Get the request byte threshold to use for batching. */ - @Nullable - public abstract Long getRequestByteThreshold(); + public abstract @Nullable Long getRequestByteThreshold(); /** This method is obsolete. Use {@link #getDelayThresholdDuration() } instead */ - @Nullable @ObsoleteApi("Use getDelayThresholdDuration() instead") - public org.threeten.bp.Duration getDelayThreshold() { + public org.threeten.bp.@Nullable Duration getDelayThreshold() { return toThreetenDuration(getDelayThresholdDuration()); } /** Get the delay threshold to use for batching. */ - @Nullable - public abstract java.time.Duration getDelayThresholdDuration(); + public abstract java.time.@Nullable Duration getDelayThresholdDuration(); /** Returns the Boolean object to indicate if the batching is enabled. Default to true */ public abstract Boolean getIsEnabled(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java index 764f5a203f29..50a4473bc044 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/DynamicFlowControlSettings.java @@ -33,8 +33,8 @@ import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Settings for dynamic flow control */ @NullMarked @@ -43,40 +43,34 @@ public abstract class DynamicFlowControlSettings { /** Number of outstanding elements that {@link FlowController} allows when it's initiated. */ - @Nullable - public abstract Long getInitialOutstandingElementCount(); + public abstract @Nullable Long getInitialOutstandingElementCount(); /** Number of outstanding bytes that {@link FlowController} allows when it's initiated. */ - @Nullable - public abstract Long getInitialOutstandingRequestBytes(); + public abstract @Nullable Long getInitialOutstandingRequestBytes(); /** * Maximum number of outstanding elements {@link FlowController} allows before enforcing flow * control. */ - @Nullable - public abstract Long getMaxOutstandingElementCount(); + public abstract @Nullable Long getMaxOutstandingElementCount(); /** * Maximum number of outstanding bytes {@link FlowController} allows before enforcing flow * control. */ - @Nullable - public abstract Long getMaxOutstandingRequestBytes(); + public abstract @Nullable Long getMaxOutstandingRequestBytes(); /** * Minimum number of outstanding elements {@link FlowController} allows before enforcing flow * control. */ - @Nullable - public abstract Long getMinOutstandingElementCount(); + public abstract @Nullable Long getMinOutstandingElementCount(); /** * Minimum number of outstanding bytes {@link FlowController} allows before enforcing flow * control. */ - @Nullable - public abstract Long getMinOutstandingRequestBytes(); + public abstract @Nullable Long getMinOutstandingRequestBytes(); /** * @see FlowControlSettings#getLimitExceededBehavior() diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java index 54c04dcec480..ea0f09817296 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlEventStats.java @@ -36,8 +36,8 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import java.util.concurrent.TimeUnit; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Record the statistics of flow control events. @@ -126,13 +126,11 @@ public long getTimestampMs() { return timestampMs; } - @Nullable - public FlowControlException getException() { + public @Nullable FlowControlException getException() { return exception; } - @Nullable - public Long getThrottledTime(TimeUnit timeUnit) { + public @Nullable Long getThrottledTime(TimeUnit timeUnit) { return throttledTimeMs == null ? null : timeUnit.convert(throttledTimeMs, TimeUnit.MILLISECONDS); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java index a83a4275b6a3..81ca495ea6e2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowControlSettings.java @@ -33,8 +33,8 @@ import com.google.api.gax.batching.FlowController.LimitExceededBehavior; import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Settings for {@link FlowController}. */ @NullMarked @@ -45,12 +45,10 @@ public static FlowControlSettings getDefaultInstance() { } /** Maximum number of outstanding elements to keep in memory before enforcing flow control. */ - @Nullable - public abstract Long getMaxOutstandingElementCount(); + public abstract @Nullable Long getMaxOutstandingElementCount(); /** Maximum number of outstanding bytes to keep in memory before enforcing flow control. */ - @Nullable - public abstract Long getMaxOutstandingRequestBytes(); + public abstract @Nullable Long getMaxOutstandingRequestBytes(); /** * The behavior of {@link FlowController} when the specified limits are exceeded. Defaults to diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java index e3eac9327114..3f282b0db7e6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/batching/FlowController.java @@ -34,8 +34,8 @@ import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; import java.util.concurrent.TimeUnit; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** Provides flow control capability. */ @NullMarked @@ -139,12 +139,12 @@ public enum LimitExceededBehavior { Ignore, } - @Nullable private final Semaphore64 outstandingElementCount; - @Nullable private final Semaphore64 outstandingByteCount; - @Nullable private final Long maxElementCountLimit; - @Nullable private final Long maxRequestBytesLimit; - @Nullable private final Long minElementCountLimit; - @Nullable private final Long minRequestBytesLimit; + private final @Nullable Semaphore64 outstandingElementCount; + private final @Nullable Semaphore64 outstandingByteCount; + private final @Nullable Long maxElementCountLimit; + private final @Nullable Long maxRequestBytesLimit; + private final @Nullable Long minElementCountLimit; + private final @Nullable Long minRequestBytesLimit; private final LimitExceededBehavior limitExceededBehavior; private final Object updateLimitLock; @@ -317,38 +317,32 @@ LimitExceededBehavior getLimitExceededBehavior() { } @InternalApi("For internal use by google-cloud-java clients only") - @Nullable - public Long getMaxElementCountLimit() { + public @Nullable Long getMaxElementCountLimit() { return maxElementCountLimit; } @InternalApi("For internal use by google-cloud-java clients only") - @Nullable - public Long getMaxRequestBytesLimit() { + public @Nullable Long getMaxRequestBytesLimit() { return maxRequestBytesLimit; } @InternalApi("For google-cloud-java client use only") - @Nullable - public Long getMinElementCountLimit() { + public @Nullable Long getMinElementCountLimit() { return minElementCountLimit; } @InternalApi("For google-cloud-java client use only") - @Nullable - public Long getMinRequestBytesLimit() { + public @Nullable Long getMinRequestBytesLimit() { return minRequestBytesLimit; } @InternalApi("For google-cloud-java client use only") - @Nullable - public Long getCurrentElementCountLimit() { + public @Nullable Long getCurrentElementCountLimit() { return outstandingElementCount == null ? null : outstandingElementCount.getPermitLimit(); } @InternalApi("For google-cloud-java client use only") - @Nullable - public Long getCurrentRequestBytesLimit() { + public @Nullable Long getCurrentRequestBytesLimit() { return outstandingByteCount == null ? null : outstandingByteCount.getPermitLimit(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java index 4bb96520dbf4..69a4964bcb88 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/FixedCredentialsProvider.java @@ -31,8 +31,8 @@ import com.google.auth.Credentials; import com.google.auto.value.AutoValue; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** FixedCredentialsProvider is a CredentialsProvider which always provides the same credentials. */ @NullMarked @@ -40,8 +40,7 @@ public abstract class FixedCredentialsProvider implements CredentialsProvider { @Override - @Nullable - public abstract Credentials getCredentials(); + public abstract @Nullable Credentials getCredentials(); /** Creates a FixedCredentialsProvider. */ public static FixedCredentialsProvider create(Credentials credentials) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java index 47c8e3dd61f4..1e0320800a28 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/core/GoogleCredentialsProvider.java @@ -39,8 +39,8 @@ import com.google.common.collect.ImmutableList; import java.io.IOException; import java.util.List; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * GoogleCredentialsProvider acquires credentials using Application Default Credentials. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java index 45aeebd6fa81..0d41a137f7f3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/logging/LogData.java @@ -35,8 +35,8 @@ import com.google.gson.Gson; import java.util.HashMap; import java.util.Map; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked @InternalApi @@ -44,35 +44,25 @@ public abstract class LogData { private static final Gson gson = new Gson(); - @Nullable - public abstract String serviceName(); + public abstract @Nullable String serviceName(); - @Nullable - public abstract String rpcName(); + public abstract @Nullable String rpcName(); - @Nullable - public abstract String requestId(); + public abstract @Nullable String requestId(); - @Nullable - public abstract Map requestHeaders(); + public abstract @Nullable Map requestHeaders(); - @Nullable - public abstract Map requestPayload(); + public abstract @Nullable Map requestPayload(); - @Nullable - public abstract String responseStatus(); + public abstract @Nullable String responseStatus(); - @Nullable - public abstract Map responseHeaders(); + public abstract @Nullable Map responseHeaders(); - @Nullable - public abstract Map responsePayload(); + public abstract @Nullable Map responsePayload(); - @Nullable - public abstract String httpMethod(); + public abstract @Nullable String httpMethod(); - @Nullable - public abstract String httpUrl(); + public abstract @Nullable String httpUrl(); public static Builder builder() { return new AutoValue_LogData.Builder(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java index adcf449145d6..9ad7d72ba154 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/RetryingContext.java @@ -34,8 +34,8 @@ import com.google.api.gax.tracing.ApiTracer; import java.util.Set; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Context for a retryable operation. @@ -53,13 +53,11 @@ public interface RetryingContext { * Returns the {@link RetrySettings} to use with this context, or null if the default * {@link RetrySettings} should be used. */ - @Nullable - RetrySettings getRetrySettings(); + @Nullable RetrySettings getRetrySettings(); /** * Returns the retryable codes to use with this context, or null if the default * retryable codes should be used. */ - @Nullable - Set getRetryableCodes(); + @Nullable Set getRetryableCodes(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java index 3cd71b53b73f..163abaaeada6 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/retrying/StreamResumptionStrategy.java @@ -30,8 +30,8 @@ package com.google.api.gax.retrying; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This is part of the server streaming retry api. Its implementers are responsible for tracking the @@ -70,8 +70,7 @@ public interface StreamResumptionStrategy { * * @return A request that can be used to resume the stream. */ - @Nullable - RequestT getResumeRequest(RequestT originalRequest); + @Nullable RequestT getResumeRequest(RequestT originalRequest); /** If a resume request can be created. */ boolean canResume(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java index cc5f56194639..67b5e5b285d1 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ApiCallContext.java @@ -42,8 +42,8 @@ import java.util.Map; import java.util.Set; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Context for an API call. @@ -70,7 +70,7 @@ public interface ApiCallContext extends RetryingContext { /** This method is obsolete. Use {@link #withTimeoutDuration(java.time.Duration)} instead. */ @ObsoleteApi("Use withTimeoutDuration(java.time.Duration) instead") - ApiCallContext withTimeout(@Nullable org.threeten.bp.Duration timeout); + ApiCallContext withTimeout(org.threeten.bp.@Nullable Duration timeout); /** * Returns a new ApiCallContext with the given timeout set. @@ -84,23 +84,21 @@ public interface ApiCallContext extends RetryingContext { *

    If a method has default {@link com.google.api.gax.retrying.RetrySettings}, the max attempts * and/or total timeout is still respected when scheduling each RPC attempt. */ - ApiCallContext withTimeoutDuration(@Nullable java.time.Duration timeout); + ApiCallContext withTimeoutDuration(java.time.@Nullable Duration timeout); /** This method is obsolete. Use {@link #getTimeoutDuration()} instead. */ - @Nullable @ObsoleteApi("Use getTimeoutDuration() instead") - org.threeten.bp.Duration getTimeout(); + org.threeten.bp.@Nullable Duration getTimeout(); /** Returns the configured per-RPC timeout. */ - @Nullable - java.time.Duration getTimeoutDuration(); + java.time.@Nullable Duration getTimeoutDuration(); /** * This method is obsolete. Use {@link #withStreamWaitTimeoutDuration(java.time.Duration)} * instead. */ @ObsoleteApi("Use withStreamWaitTimeoutDuration(java.time.Duration) instead") - ApiCallContext withStreamWaitTimeout(@Nullable org.threeten.bp.Duration streamWaitTimeout); + ApiCallContext withStreamWaitTimeout(org.threeten.bp.@Nullable Duration streamWaitTimeout); /** * Returns a new ApiCallContext with the given stream timeout set. @@ -119,27 +117,25 @@ public interface ApiCallContext extends RetryingContext { *

    Please note that this timeout is best effort and the maximum resolution is configured in * {@link StubSettings#getStreamWatchdogCheckIntervalDuration()}. */ - ApiCallContext withStreamWaitTimeoutDuration(@Nullable java.time.Duration streamWaitTimeout); + ApiCallContext withStreamWaitTimeoutDuration(java.time.@Nullable Duration streamWaitTimeout); /** This method is obsolete. Use {@link #getStreamWaitTimeoutDuration()} instead. */ - @Nullable @ObsoleteApi("Use getStreamWaitTimeoutDuration() instead") - org.threeten.bp.Duration getStreamWaitTimeout(); + org.threeten.bp.@Nullable Duration getStreamWaitTimeout(); /** * Return the stream wait timeout set for this context. * * @see #withStreamWaitTimeoutDuration(java.time.Duration) */ - @Nullable - java.time.Duration getStreamWaitTimeoutDuration(); + java.time.@Nullable Duration getStreamWaitTimeoutDuration(); /** * This method is obsolete. Use {@link #withStreamIdleTimeoutDuration(java.time.Duration)} * instead. */ @ObsoleteApi("Use withStreamIdleTimeoutDuration(java.time.Duration) instead") - ApiCallContext withStreamIdleTimeout(@Nullable org.threeten.bp.Duration streamIdleTimeout); + ApiCallContext withStreamIdleTimeout(org.threeten.bp.@Nullable Duration streamIdleTimeout); /** * Returns a new ApiCallContext with the given stream idle timeout set. @@ -159,20 +155,18 @@ public interface ApiCallContext extends RetryingContext { *

    Please note that this timeout is best effort and the maximum resolution is configured in * {@link StubSettings#getStreamWatchdogCheckIntervalDuration()}. */ - ApiCallContext withStreamIdleTimeoutDuration(@Nullable java.time.Duration streamIdleTimeout); + ApiCallContext withStreamIdleTimeoutDuration(java.time.@Nullable Duration streamIdleTimeout); /** This method is obsolete. Use {@link #getStreamIdleTimeoutDuration()} instead. */ - @Nullable @ObsoleteApi("Use getStreamIdleTimeoutDuration() instead") - org.threeten.bp.Duration getStreamIdleTimeout(); + org.threeten.bp.@Nullable Duration getStreamIdleTimeout(); /** * The stream idle timeout set for this context. * * @see #withStreamIdleTimeoutDuration(java.time.Duration) */ - @Nullable - java.time.Duration getStreamIdleTimeoutDuration(); + java.time.@Nullable Duration getStreamIdleTimeoutDuration(); /** * The {@link ApiTracer} that was previously set for this context. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java index f4678bdc1cb5..85e9b6863714 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java @@ -65,8 +65,8 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Encapsulates client state, including executor, credentials, and transport channel. @@ -91,11 +91,9 @@ public abstract class ClientContext { */ public abstract ScheduledExecutorService getExecutor(); - @Nullable - public abstract Credentials getCredentials(); + public abstract @Nullable Credentials getCredentials(); - @Nullable - public abstract TransportChannel getTransportChannel(); + public abstract @Nullable TransportChannel getTransportChannel(); public abstract Map getHeaders(); @@ -105,8 +103,7 @@ public abstract class ClientContext { public abstract ApiCallContext getDefaultCallContext(); - @Nullable - public abstract Watchdog getStreamWatchdog(); + public abstract @Nullable Watchdog getStreamWatchdog(); /** This method is obsolete. Use {@link #getStreamWatchdogCheckIntervalDuration()} instead. */ @Nonnull @@ -118,14 +115,11 @@ public final org.threeten.bp.Duration getStreamWatchdogCheckInterval() { @Nonnull public abstract java.time.Duration getStreamWatchdogCheckIntervalDuration(); - @Nullable - public abstract String getUniverseDomain(); + public abstract @Nullable String getUniverseDomain(); - @Nullable - public abstract String getEndpoint(); + public abstract @Nullable String getEndpoint(); - @Nullable - public abstract String getQuotaProjectId(); + public abstract @Nullable String getQuotaProjectId(); /** Package-Private as this is to be shared to StubSettings */ abstract EndpointContext getEndpointContext(); @@ -139,8 +133,7 @@ public final org.threeten.bp.Duration getStreamWatchdogCheckInterval() { * Gets the API audience used when creating a Client that uses {@link * com.google.auth.oauth2.GdchCredentials} */ - @Nullable - public abstract String getGdchApiAudience(); + public abstract @Nullable String getGdchApiAudience(); /** Create a new ClientContext with default values */ public static Builder newBuilder() { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java index 1bff71ea3870..c8da3e25df7b 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientSettings.java @@ -40,8 +40,8 @@ import java.io.IOException; import java.util.concurrent.Executor; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A base settings class to configure a client class. @@ -111,8 +111,7 @@ public final String getQuotaProjectId() { return stubSettings.getQuotaProjectId(); } - @Nullable - public final WatchdogProvider getWatchdogProvider() { + public final @Nullable WatchdogProvider getWatchdogProvider() { return stubSettings.getStreamWatchdogProvider(); } @@ -170,7 +169,7 @@ protected Builder(ClientSettings settings) { } /** Create a builder from a StubSettings object. */ - protected Builder(@Nullable StubSettings.Builder stubSettings) { + protected Builder(StubSettings.@Nullable Builder stubSettings) { this.stubSettings = stubSettings; } @@ -291,11 +290,11 @@ public B setWatchdogProvider(@Nullable WatchdogProvider watchdogProvider) { * instead. */ @ObsoleteApi("Use setWatchdogCheckIntervalDuration(java.time.Duration) instead") - public B setWatchdogCheckInterval(@Nullable org.threeten.bp.Duration checkInterval) { + public B setWatchdogCheckInterval(org.threeten.bp.@Nullable Duration checkInterval) { return setWatchdogCheckIntervalDuration(toJavaTimeDuration(checkInterval)); } - public B setWatchdogCheckIntervalDuration(@Nullable java.time.Duration checkInterval) { + public B setWatchdogCheckIntervalDuration(java.time.@Nullable Duration checkInterval) { stubSettings.setStreamWatchdogCheckIntervalDuration(checkInterval); return self(); } @@ -384,8 +383,7 @@ public String getQuotaProjectId() { return stubSettings.getQuotaProjectId(); } - @Nullable - public WatchdogProvider getWatchdogProvider() { + public @Nullable WatchdogProvider getWatchdogProvider() { return stubSettings.getStreamWatchdogProvider(); } @@ -395,20 +393,17 @@ public String getApiKey() { } /** This method is obsolete. Use {@link #getWatchdogCheckIntervalDuration()} instead */ - @Nullable @ObsoleteApi("Use getWatchdogCheckIntervalDuration() instead") - public org.threeten.bp.Duration getWatchdogCheckInterval() { + public org.threeten.bp.@Nullable Duration getWatchdogCheckInterval() { return stubSettings.getStreamWatchdogCheckInterval(); } - @Nullable - public java.time.Duration getWatchdogCheckIntervalDuration() { + public java.time.@Nullable Duration getWatchdogCheckIntervalDuration() { return stubSettings.getStreamWatchdogCheckIntervalDuration(); } /** Gets the GDCH API audience that was previously set in this Builder */ - @Nullable - public String getGdchApiAudience() { + public @Nullable String getGdchApiAudience() { return stubSettings.getGdchApiAudience(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java index 74e081cbe15a..52abf534b148 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java @@ -44,8 +44,8 @@ import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * EndpointContext is an internal class used by the client library to resolve the endpoint. It is @@ -89,8 +89,7 @@ public static EndpointContext getDefaultInstance() { * `{ServiceName}.googleapis.com`. For example, speech.googleapis.com would have a ServiceName of * speech and cloudasset.googleapis.com would have a ServiceName of cloudasset. */ - @Nullable - public abstract String serviceName(); + public abstract @Nullable String serviceName(); /** * Universe Domain is the domain for Google Cloud Services. It follows the format of @@ -98,34 +97,29 @@ public static EndpointContext getDefaultInstance() { * Domain value of `googleapis.com` and cloudasset.test.com would have a Universe Domain of * `test.com`. If this value is not set, this will default to `googleapis.com`. */ - @Nullable - public abstract String universeDomain(); + public abstract @Nullable String universeDomain(); /** * ClientSettingsEndpoint is the endpoint value set via the ClientSettings/StubSettings classes. */ - @Nullable - public abstract String clientSettingsEndpoint(); + public abstract @Nullable String clientSettingsEndpoint(); /** * TransportChannelProviderEndpoint is the endpoint value set via the TransportChannelProvider * class. */ - @Nullable - public abstract String transportChannelProviderEndpoint(); + public abstract @Nullable String transportChannelProviderEndpoint(); abstract boolean useS2A(); @Nullable abstract EnvironmentProvider envProvider(); - @Nullable - public abstract String mtlsEndpoint(); + public abstract @Nullable String mtlsEndpoint(); public abstract boolean switchToMtlsEndpointAllowed(); - @Nullable - public abstract MtlsProvider mtlsProvider(); + public abstract @Nullable MtlsProvider mtlsProvider(); @Nullable abstract CertificateBasedAccess certificateBasedAccess(); @@ -136,14 +130,11 @@ public static EndpointContext getDefaultInstance() { public abstract String resolvedEndpoint(); - @Nullable - public abstract String resolvedServerAddress(); + public abstract @Nullable String resolvedServerAddress(); - @Nullable - public abstract Integer resolvedServerPort(); + public abstract @Nullable Integer resolvedServerPort(); - @Nullable - String getUrlDomain() { + @Nullable String getUrlDomain() { if (!Strings.isNullOrEmpty(serviceName()) && !Strings.isNullOrEmpty(resolvedUniverseDomain())) { return serviceName() + "." + resolvedUniverseDomain(); } @@ -405,8 +396,7 @@ boolean shouldUseS2A() { return mtlsEndpoint().contains(Credentials.GOOGLE_DEFAULT_UNIVERSE); } - @Nullable - private String parseServerAddress(String endpoint) { + private @Nullable String parseServerAddress(String endpoint) { if (endpoint.isEmpty()) { return endpoint; } @@ -417,8 +407,7 @@ private String parseServerAddress(String endpoint) { return hostAndPort.getHost(); } - @Nullable - private Integer parseServerPort(String endpoint) { + private @Nullable Integer parseServerPort(String endpoint) { if (endpoint.isEmpty()) { return null; } @@ -429,8 +418,7 @@ private Integer parseServerPort(String endpoint) { return hostAndPort.getPort(); } - @Nullable - private HostAndPort parseServerHostAndPort(String endpoint) { + private @Nullable HostAndPort parseServerHostAndPort(String endpoint) { String hostPort = endpoint; if (hostPort.contains("://")) { // Strip the scheme if present. HostAndPort doesn't support schemes. diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java index 847c810bc692..8d8fe0306520 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/ErrorDetails.java @@ -45,8 +45,8 @@ import com.google.rpc.ResourceInfo; import com.google.rpc.RetryInfo; import java.util.List; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** This class contains a list of standard error messages that returns from server. */ @NullMarked @@ -57,8 +57,7 @@ public abstract class ErrorDetails { * This is the most important and special error message. It describes the cause of the error with * structured details that both humans and applications can depend on. */ - @Nullable - public ErrorInfo getErrorInfo() { + public @Nullable ErrorInfo getErrorInfo() { return unpack(ErrorInfo.class); } @@ -66,26 +65,22 @@ public ErrorInfo getErrorInfo() { * Describes when the clients can retry a failed request. Clients could ignore the recommendation * here or retry when this information is missing from error responses. */ - @Nullable - public RetryInfo getRetryInfo() { + public @Nullable RetryInfo getRetryInfo() { return unpack(RetryInfo.class); } /** Describes additional debugging info. */ - @Nullable - public DebugInfo getDebugInfo() { + public @Nullable DebugInfo getDebugInfo() { return unpack(DebugInfo.class); } /** Describes how a quota check failed. */ - @Nullable - public QuotaFailure getQuotaFailure() { + public @Nullable QuotaFailure getQuotaFailure() { return unpack(QuotaFailure.class); } /** Describes what preconditions have failed. */ - @Nullable - public PreconditionFailure getPreconditionFailure() { + public @Nullable PreconditionFailure getPreconditionFailure() { return unpack(PreconditionFailure.class); } @@ -93,8 +88,7 @@ public PreconditionFailure getPreconditionFailure() { * Describes violations in a client request. This error type focuses on the syntactic aspects of * the request. */ - @Nullable - public BadRequest getBadRequest() { + public @Nullable BadRequest getBadRequest() { return unpack(BadRequest.class); } @@ -102,20 +96,17 @@ public BadRequest getBadRequest() { * Contains metadata about the request that clients can attach when filing a bug or providing * other forms of feedback. */ - @Nullable - public RequestInfo getRequestInfo() { + public @Nullable RequestInfo getRequestInfo() { return unpack(RequestInfo.class); } /** Describes the resource that is being accessed. */ - @Nullable - public ResourceInfo getResourceInfo() { + public @Nullable ResourceInfo getResourceInfo() { return unpack(ResourceInfo.class); } /** Provides links to documentation or for performing an out-of-band action. */ - @Nullable - public Help getHelp() { + public @Nullable Help getHelp() { return unpack(Help.class); } @@ -123,8 +114,7 @@ public Help getHelp() { * Provides a localized error message that is safe to return to the user which can be attached to * an RPC error */ - @Nullable - public LocalizedMessage getLocalizedMessage() { + public @Nullable LocalizedMessage getLocalizedMessage() { return unpack(LocalizedMessage.class); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java index 8c86df85dbca..086f1f8734b4 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedHeaderProvider.java @@ -36,8 +36,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** An instance of HeaderProvider that always provides the same headers. */ @NullMarked @@ -47,8 +47,7 @@ public abstract class FixedHeaderProvider implements HeaderProvider, Serializabl private static final long serialVersionUID = -4881534091594970538L; @Override - @Nullable - public abstract Map getHeaders(); + public abstract @Nullable Map getHeaders(); /** Creates a FixedHeaderProvider. */ public static FixedHeaderProvider create(Map headers) { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java index d9da3520e5e2..c4c82c40bc73 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/FixedWatchdogProvider.java @@ -35,8 +35,8 @@ import java.time.Duration; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A watchdog provider which always returns the same watchdog instance provided to the provider @@ -48,7 +48,7 @@ @NullMarked @InternalApi public final class FixedWatchdogProvider implements WatchdogProvider { - @Nullable private final Watchdog watchdog; + private final @Nullable Watchdog watchdog; public static WatchdogProvider create(Watchdog watchdog) { return new FixedWatchdogProvider(watchdog); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java index 4ca704972af7..81747896ffe2 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/InstantiatingWatchdogProvider.java @@ -37,8 +37,8 @@ import com.google.common.base.Preconditions; import java.util.concurrent.ScheduledExecutorService; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A watchdog provider which instantiates a new provider on every request. @@ -49,9 +49,9 @@ @NullMarked @InternalApi public final class InstantiatingWatchdogProvider implements WatchdogProvider { - @Nullable private final ApiClock clock; - @Nullable private final ScheduledExecutorService executor; - @Nullable private final java.time.Duration checkInterval; + private final @Nullable ApiClock clock; + private final @Nullable ScheduledExecutorService executor; + private final java.time.@Nullable Duration checkInterval; public static WatchdogProvider create() { return new InstantiatingWatchdogProvider(null, null, null); @@ -60,7 +60,7 @@ public static WatchdogProvider create() { private InstantiatingWatchdogProvider( @Nullable ApiClock clock, @Nullable ScheduledExecutorService executor, - @Nullable java.time.Duration checkInterval) { + java.time.@Nullable Duration checkInterval) { this.clock = clock; this.executor = executor; this.checkInterval = checkInterval; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java index 774c6cd709df..8f2811e730f3 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/LibraryMetadata.java @@ -33,8 +33,8 @@ import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.auto.value.AutoValue; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A context object that contains information about the GAPIC library. @@ -54,8 +54,7 @@ public abstract class LibraryMetadata { * * @return the repository, or {@code null} if not set */ - @Nullable - public abstract String repository(); + public abstract @Nullable String repository(); /** * Returns the artifact name of the client library. @@ -64,8 +63,7 @@ public abstract class LibraryMetadata { * * @return the artifact name, or {@code null} if not set */ - @Nullable - public abstract String artifactName(); + public abstract @Nullable String artifactName(); /** * Returns the version of the client library. @@ -74,8 +72,7 @@ public abstract class LibraryMetadata { * * @return the version, or {@code null} if not set */ - @Nullable - public abstract String version(); + public abstract @Nullable String version(); public static LibraryMetadata empty() { return newBuilder().build(); diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java index ffab13c4d79e..4837453b16df 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java @@ -52,8 +52,8 @@ import java.io.IOException; import java.util.concurrent.Executor; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A base settings class to configure a client stub class. @@ -77,8 +77,8 @@ public abstract class StubSettings> { private final TransportChannelProvider transportChannelProvider; private final ApiClock clock; private final String quotaProjectId; - @Nullable private final String gdchApiAudience; - @Nullable private final WatchdogProvider streamWatchdogProvider; + private final @Nullable String gdchApiAudience; + private final @Nullable WatchdogProvider streamWatchdogProvider; @Nonnull private final java.time.Duration streamWatchdogCheckInterval; @Nonnull private final ApiTracerFactory tracerFactory; // Track if deprecated setExecutorProvider is called @@ -214,8 +214,7 @@ public final String getQuotaProjectId() { return quotaProjectId; } - @Nullable - public final WatchdogProvider getStreamWatchdogProvider() { + public final @Nullable WatchdogProvider getStreamWatchdogProvider() { return streamWatchdogProvider; } @@ -242,8 +241,7 @@ public ApiTracerFactory getTracerFactory() { } /** Gets the GDCH API audience to be used with {@link com.google.auth.oauth2.GdchCredentials} */ - @Nullable - public final String getGdchApiAudience() { + public final @Nullable String getGdchApiAudience() { return gdchApiAudience; } @@ -293,20 +291,20 @@ public abstract static class Builder< private CredentialsProvider credentialsProvider; private HeaderProvider headerProvider; private HeaderProvider internalHeaderProvider; - @Nullable private TransportChannelProvider transportChannelProvider; + private @Nullable TransportChannelProvider transportChannelProvider; private ApiClock clock; - @Nullable private String clientSettingsEndpoint; - @Nullable private String transportChannelProviderEndpoint; - @Nullable private String mtlsEndpoint; - @Nullable private String quotaProjectId; - @Nullable private String gdchApiAudience; - @Nullable private WatchdogProvider streamWatchdogProvider; + private @Nullable String clientSettingsEndpoint; + private @Nullable String transportChannelProviderEndpoint; + private @Nullable String mtlsEndpoint; + private @Nullable String quotaProjectId; + private @Nullable String gdchApiAudience; + private @Nullable WatchdogProvider streamWatchdogProvider; @Nonnull private java.time.Duration streamWatchdogCheckInterval; @Nonnull private ApiTracerFactory tracerFactory; private boolean deprecatedExecutorProviderSet; - @Nullable private String universeDomain; + private @Nullable String universeDomain; private final EndpointContext endpointContext; - @Nullable private String apiKey; + private @Nullable String apiKey; /** * Indicate when creating transport whether it is allowed to use mTLS endpoint instead of the @@ -348,8 +346,8 @@ protected Builder(StubSettings settings) { } /** Get Quota Project ID from Client Context * */ - @Nullable - private static String getQuotaProjectIdFromClientContext(ClientContext clientContext) { + private static @Nullable String getQuotaProjectIdFromClientContext( + ClientContext clientContext) { if (clientContext.getQuotaProjectId() != null) { return clientContext.getQuotaProjectId(); } @@ -657,8 +655,7 @@ protected HeaderProvider getInternalHeaderProvider() { } /** Gets the {@link WatchdogProvider }that was previously set on this Builder. */ - @Nullable - public WatchdogProvider getStreamWatchdogProvider() { + public @Nullable WatchdogProvider getStreamWatchdogProvider() { return streamWatchdogProvider; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java index e7b5ea45dc9c..9f77bbb866de 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/rpc/TransportChannelProvider.java @@ -36,8 +36,8 @@ import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * Provides an interface to either build a TransportChannel or provide a fixed TransportChannel that diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java index a97ef001a051..d3bed2868fdf 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ApiTracerContext.java @@ -32,14 +32,15 @@ import com.google.api.core.InternalApi; import com.google.api.gax.rpc.LibraryMetadata; +import com.google.api.gax.rpc.ResourceNameExtractor; import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.auto.value.AutoValue; import com.google.common.base.Strings; import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A context object that contains information used to infer attributes that are common for all @@ -99,8 +100,7 @@ public enum Transport { * * @return the RPC system name, or {@code null} if the transport is not set */ - @Nullable - String rpcSystemName() { + @Nullable String rpcSystemName() { if (transport() == null) { return null; } @@ -167,15 +167,13 @@ String rpcSystemName() { @Nullable abstract String urlDomain(); - @Nullable - protected abstract Supplier destinationResourceIdSupplier(); + protected abstract @Nullable Supplier destinationResourceIdSupplier(); /** * The destination resource id of the request (e.g. * //pubsub.googleapis.com/projects/p/locations/l/topics/t). */ - @Nullable - String destinationResourceId() { + @Nullable String destinationResourceId() { Supplier supplier = destinationResourceIdSupplier(); if (supplier == null) { return null; @@ -191,8 +189,7 @@ String destinationResourceId() { } ApiTracerContext withResourceNameExtractor( - @Nullable RequestT request, - @Nullable com.google.api.gax.rpc.ResourceNameExtractor extractor) { + @Nullable RequestT request, @Nullable ResourceNameExtractor extractor) { if (extractor == null || request == null) { return this; } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java index c94b3256cb8f..88507cf27c38 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ErrorTypeUtil.java @@ -44,9 +44,9 @@ import java.security.GeneralSecurityException; import java.util.Set; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.net.ssl.SSLHandshakeException; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked public class ErrorTypeUtil { @@ -165,8 +165,7 @@ private static Throwable getRealCause(Throwable t) { * Attempts to extract a specific error type (reason, code, or client error) but returns null if * it cannot be specifically classified. */ - @Nullable - private static String extractKnownErrorType(Throwable error) { + private static @Nullable String extractKnownErrorType(Throwable error) { // 1. Extract error info reason if (error instanceof ApiException) { String reason = ((ApiException) error).getReason(); @@ -198,8 +197,7 @@ private static String extractKnownErrorType(Throwable error) { * @param apiException The ApiException to extract the error code from. * @return A string representing the error code, or null if no specific code can be determined. */ - @Nullable - private static String extractServerErrorCode(ApiException apiException) { + private static @Nullable String extractServerErrorCode(ApiException apiException) { if (apiException.getStatusCode() != null) { Object transportCode = apiException.getStatusCode().getTransportCode(); if (transportCode != null) { @@ -216,8 +214,7 @@ private static String extractServerErrorCode(ApiException apiException) { * @param error The Throwable to analyze. * @return A string representing the client-side error type, or null if not matched. */ - @Nullable - private static String getClientSideError(Throwable error) { + private static @Nullable String getClientSideError(Throwable error) { if (isClientTimeout(error)) { return ErrorType.CLIENT_TIMEOUT.toString(); } diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java index 63a09e06f0e3..e41f77c9e2be 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/GoldenSignalsMetricsRecorder.java @@ -38,8 +38,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This class takes an OpenTelemetry object, and creates instruments (meters, histograms etc.) from diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java index 130433339552..2fc7981e2bbb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/ObservabilityUtils.java @@ -40,8 +40,8 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.CancellationException; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; @NullMarked final class ObservabilityUtils { diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java index c103c8423597..3bc558997acb 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBatchingCallable.java @@ -38,8 +38,8 @@ import com.google.api.gax.rpc.UnaryCallable; import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.util.concurrent.MoreExecutors; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This callable wraps a batching callable chain in a {@link ApiTracer}. @@ -53,7 +53,7 @@ public class TracedBatchingCallable extends UnaryCallable { private final ApiTracerFactory tracerFactory; private final SpanName spanName; - @Nullable private final ApiTracerContext apiTracerContext; + private final @Nullable ApiTracerContext apiTracerContext; private final BatchingDescriptor batchingDescriptor; private final UnaryCallable innerCallable; diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java index 56b9203174d5..a9b9dd94207c 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedBidiCallable.java @@ -41,8 +41,8 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.atomic.AtomicBoolean; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A wrapper callable that will wrap a callable chain in a trace. @@ -57,7 +57,7 @@ public class TracedBidiCallable @Nonnull private final ApiTracerFactory tracerFactory; @Nonnull private final SpanName spanName; - @Nullable private final ApiTracerContext apiTracerContext; + private final @Nullable ApiTracerContext apiTracerContext; @Nonnull private final BidiStreamingCallable innerCallable; public TracedBidiCallable( diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java index 45a2af02e7c2..38660188d960 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedClientStreamingCallable.java @@ -39,8 +39,8 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.atomic.AtomicReference; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A wrapper callable that will wrap a callable chain in a trace. @@ -58,7 +58,7 @@ public class TracedClientStreamingCallable private final ClientStreamingCallable innerCallable; private final ApiTracerFactory tracerFactory; private final SpanName spanName; - @Nullable private final ApiTracerContext apiTracerContext; + private final @Nullable ApiTracerContext apiTracerContext; public TracedClientStreamingCallable( @Nonnull ClientStreamingCallable innerCallable, diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java index 5e7cd93f5f11..309cba351b2e 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedServerStreamingCallable.java @@ -37,8 +37,8 @@ import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.base.Preconditions; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * A wrapper callable that will wrap a callable chain in a trace. @@ -53,7 +53,7 @@ public final class TracedServerStreamingCallable @Nonnull private final ApiTracerFactory tracerFactory; @Nonnull private final SpanName spanName; - @Nullable private final ApiTracerContext apiTracerContext; + private final @Nullable ApiTracerContext apiTracerContext; @Nonnull private final ServerStreamingCallable innerCallable; public TracedServerStreamingCallable( diff --git a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java index 41f787dc6157..1fee2a492c59 100644 --- a/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java +++ b/sdk-platform-java/gax-java/gax/src/main/java/com/google/api/gax/tracing/TracedUnaryCallable.java @@ -39,8 +39,8 @@ import com.google.api.gax.rpc.UnaryCallable; import com.google.api.gax.tracing.ApiTracerFactory.OperationType; import com.google.common.util.concurrent.MoreExecutors; -import javax.annotation.Nullable; import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; /** * This callable wraps a callable chain in a {@link ApiTracer}. @@ -54,8 +54,8 @@ public class TracedUnaryCallable extends UnaryCallable innerCallable; private final ApiTracerFactory tracerFactory; private final SpanName spanName; - @Nullable private final ApiTracerContext apiTracerContext; - @Nullable private final ResourceNameExtractor resourceNameExtractor; + private final @Nullable ApiTracerContext apiTracerContext; + private final @Nullable ResourceNameExtractor resourceNameExtractor; @ObsoleteApi("Use constructor with ApiTracerContext instead") public TracedUnaryCallable(