raminqaf commented on code in PR #15601: URL: https://github.com/apache/kafka/pull/15601#discussion_r1607786468
########## streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamKStreamJoin.java: ########## @@ -187,17 +157,25 @@ public void process(final Record<K, V1> record) { context().forward(record.withValue(joiner.apply(record.key(), record.value(), null))); } else { sharedTimeTracker.updatedMinTime(inputRecordTimestamp); - outerJoinStore.ifPresent(store -> store.put( - TimestampedKeyAndJoinSide.make(isLeftSide, record.key(), inputRecordTimestamp), - LeftOrRightValue.make(isLeftSide, record.value()))); + putInOuterJoinStore(record); } } } } + protected abstract TimestampedKeyAndJoinSide<K> makeThisKey(final K key, final long inputRecordTimestamp); + + protected abstract LeftOrRightValue<VLeft, VRight> makeThisValue(final VThis thisValue); + + protected abstract TimestampedKeyAndJoinSide<K> makeOtherKey(final K key, final long timestamp); + + protected abstract VThis getThisValue(final LeftOrRightValue<? extends VLeft, ? extends VRight> leftOrRightValue); + + protected abstract VOther getOtherValue(final LeftOrRightValue<? extends VLeft, ? extends VRight> leftOrRightValue); + private void emitNonJoinedOuterRecords( - final KeyValueStore<TimestampedKeyAndJoinSide<K>, LeftOrRightValue<V1, V2>> store, - final Record<K, V1> record) { + final KeyValueStore<TimestampedKeyAndJoinSide<K>, LeftOrRightValue<VLeft, VRight>> store, + final Record<K, ?> record) { Review Comment: Good catch! Avoiding the wildcard here makes it easier to read and understand. I have changed it! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org