The StateTTL feature introduced the class org.apache.flink.api.common.state.TimeCharacteristic which clashes with org.apache.flink.streaming.api.TimeCharacteristic.
This is a problem for two reasons:
1. Users get confused because the mistakenly import org.apache.flink.api.common.state.TimeCharacteristic.
2. When using the StateTTL feature, users need to spell out the package name for org.apache.flink.api.common.state.TimeCharacteristic because the other class is most likely already imported.
Since org.apache.flink.streaming.api.TimeCharacteristic is one of the most used classes of the DataStream API, we should make sure that users can use it without import problems.
These error are hard to spot and confusing for many users.
I see two ways to resolve the issue:
1. drop org.apache.flink.api.common.state.TimeCharacteristic and use org.apache.flink.streaming.api.TimeCharacteristic throwing an exception if an incorrect characteristic is used.
2. rename the class org.apache.flink.api.common.state.TimeCharacteristic to some other name.