I am running into some issues with the Storm Compatibility layer when dealing with split streams. Specifically, the situation tested in "FlinkTopologyBuilderTest.testFieldsGroupingOnMultipleSpoutOutputStreams()"
The topology builder creates a SplitStreamKeySelector, which internally uses an array key selector. The type of the stream is, however, not "array", but "SplitStreamType". With my changes to the KeyedStream and the state handling, there are now more checks for consistency, and this now throws an exception. From an initial look, it seems absolutely correct that this fails, because it attempts to build a program where a POJO stream is accessed as an array selector (generically via the java.util.Array class at runtime), which would fail. Is this a bug in the Storm API and simply is untested at runtime (client time can only produce such a program in the first place because all types are raw and no generic checks can be performed), or is there something else going on implicitly behind the scenes? Thanks for helping me out, Stephan