Hi,

We just stumbled upon an issue with KStream.transform() where we had a
runtime error with this code:

```
DeduplicationTransformer<X, Y, , > transformer = new
DeduplicationTransformer<>(...);
stream.transform(() -> transformer, ...)
```

The error was:
Failed to process stream task 0_0 due to the following error:
java.lang.IllegalStateException: This should not happen as timestamp()
should only be called while a record is processed

Whereas simply inlining the creation of the Transformer works perfectly:

```
stream.transform(() -> new DeduplicationTransformer<>(...), ...)
```

Is this behavior expected?


Is that why transform() takes a lazy function, to access some global
state when needed at execution? (and breaking referential
transparency)


Thanks,

Stéphane

Reply via email to