-
Notifications
You must be signed in to change notification settings - Fork 224
Open
Labels
kind/bugSomething isn't workingSomething isn't working
Description

Description
Running mvn clean install
with Java 11 fails during the following test:
DaprPreviewClientGrpcTest.getJobShouldReturnResponseWithDueTimeSetWhenResponseHasDueTime
The error is due to parsing an ISO-8601 datetime string with microseconds and a timezone offset.
Steps to Reproduce
-
Set Java version:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 java -version
Output:
openjdk version "11.0.27" 2025-04-15
-
Run:
mvn clean install
-
Observe the test failure.
Error Log
------------------------------------------------------------------------------- Test set: io.dapr.client.DaprPreviewClientGrpcTest ------------------------------------------------------------------------------- Tests run: 39, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.393 s <<< FAILURE! -- in io.dapr.client.DaprPreviewClientGrpcTest io.dapr.client.DaprPreviewClientGrpcTest.getJobShouldReturnResponseWithDueTimeSetWhenResponseHasDueTime -- Time elapsed: 0.009 s <<< ERROR! java.time.format.DateTimeParseException: Text '2025-07-12T21:30:10.720884+05:30' could not be parsed at index 26 at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2046) at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948) at java.base/java.time.Instant.parse(Instant.java:395) at io.dapr.client.DaprClientImpl.lambda$getJob$57(DaprClientImpl.java:1378) at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:172) at io.dapr.client.DaprClientImpl$1.onNext(DaprClientImpl.java:1508) at io.dapr.client.DaprPreviewClientGrpcTest.lambda$getJobShouldReturnResponseWithDueTimeSetWhenResponseHasDueTime$46(DaprPreviewClientGrpcTest.java:899) at org.mockito.internal.stubbing.StubbedInvocationMatcher.answer(StubbedInvocationMatcher.java:42) at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:103) at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29) at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:34) at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:82) at org.mockito.internal.creation.bytebuddy.MockMethodAdvice.handle(MockMethodAdvice.java:151) at io.dapr.v1.DaprGrpc$DaprStub.getJobAlpha1(DaprGrpc.java:3166) at io.dapr.client.DaprClientImpl.lambda$getJob$55(DaprClientImpl.java:1363) at io.dapr.client.DaprClientImpl.lambda$createMono$60(DaprClientImpl.java:1491) at io.dapr.exceptions.DaprException.lambda$wrap$1(DaprException.java:277) at io.dapr.client.DaprClientImpl.lambda$createMono$61(DaprClientImpl.java:1492) at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:58) at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) at reactor.core.publisher.Mono.subscribe(Mono.java:4444) at reactor.core.publisher.Mono.block(Mono.java:1709) at io.dapr.client.DaprPreviewClientGrpcTest.getJobShouldReturnResponseWithDueTimeSetWhenResponseHasDueTime(DaprPreviewClientGrpcTest.java:908) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) at reactor.core.publisher.Mono.block(Mono.java:1710) ... 4 more
Environment
Setting | Value |
---|---|
Java Version | OpenJDK 11.0.27 (Ubuntu) |
Maven Version | mvn --version (latest) |
Dapr SDK Version | 1.16.0-SNAPSHOT |
OS | Ubuntu 22.04 |
Command | mvn clean install |
Root Cause
The timestamp string:
2025-07-12T21:30:10.720884+05:30
contains both microseconds and a timezone offset, which Instant.parse()
does not support.
Instant.parse()
expects the datetime in UTC format like:
2025-07-12T21:30:10.720884Z
Suggested Fix
Replace:
Instant.parse(dateString);
With:
OffsetDateTime.parse(dateString, DateTimeFormatter.ISO_OFFSET_DATE_TIME).toInstant();
This change will correctly parse the datetime string with offset and microseconds.
Metadata
Metadata
Assignees
Labels
kind/bugSomething isn't workingSomething isn't working