1515class OutputStreamObserverImpl implements OutputStreamObserver {
1616 private final ActorRef outputActor ;
1717 private final AccumulatorOuterClass .KeyedWindow keyedWindow ;
18- private final Instant latestWatermark = Instant .ofEpochMilli (-1 );
18+ private Instant latestWatermark = Instant .ofEpochMilli (-1 );
1919
2020 public OutputStreamObserverImpl (
2121 ActorRef outputActor ,
@@ -26,14 +26,17 @@ public OutputStreamObserverImpl(
2626
2727 private AccumulatorOuterClass .AccumulatorResponse buildResponse (Message message ) {
2828 AccumulatorOuterClass .AccumulatorResponse .Builder responseBuilder = AccumulatorOuterClass .AccumulatorResponse .newBuilder ();
29+ if (message .getWatermark ().isAfter (latestWatermark )) {
30+ this .latestWatermark = message .getWatermark ();
31+ }
2932 // set the window using the actor metadata.
3033 responseBuilder .setWindow (AccumulatorOuterClass .KeyedWindow .newBuilder ()
3134 .setStart (Timestamp .newBuilder ()
3235 .setSeconds (0 )
33- .setNanos (0 ))
36+ .setNanos (0 ). build () )
3437 .setEnd (Timestamp .newBuilder ()
3538 .setSeconds (this .latestWatermark .getEpochSecond ())
36- .setNanos (this .latestWatermark .getNano ()))
39+ .setNanos (this .latestWatermark .getNano ()). build () )
3740 .setSlot ("slot-0" )
3841 .addAllKeys (this .keyedWindow .getKeysList ())
3942 .build ());
@@ -47,11 +50,11 @@ private AccumulatorOuterClass.AccumulatorResponse buildResponse(Message message)
4750 .setEventTime (Timestamp
4851 .newBuilder ()
4952 .setSeconds (message .getEventTime ().getEpochSecond ())
50- .setNanos (message .getEventTime ().getNano ()))
53+ .setNanos (message .getEventTime ().getNano ()). build () )
5154 .setWatermark (Timestamp
5255 .newBuilder ()
5356 .setSeconds (message .getWatermark ().getEpochSecond ())
54- .setNanos (message .getWatermark ().getNano ()))
57+ .setNanos (message .getWatermark ().getNano ()). build () )
5558 .putAllHeaders (message .getHeaders ())
5659 .addAllKeys (message .getKeys ()
5760 == null ? new ArrayList <>() : Arrays .asList (message .getKeys ()))
0 commit comments