Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/1566#discussion_r51997124 --- Diff: flink-core/src/main/java/org/apache/flink/api/java/typeutils/ObjectArrayTypeInfo.java --- @@ -72,15 +77,59 @@ public int getTotalFields() { @Override public boolean isKeyType() { - return false; + return true; } @SuppressWarnings("unchecked") @Override public TypeSerializer<T> createSerializer(ExecutionConfig executionConfig) { return (TypeSerializer<T>) new GenericArraySerializer<C>( - componentInfo.getTypeClass(), - componentInfo.createSerializer(executionConfig)); + componentInfo.getTypeClass(), + componentInfo.createSerializer(executionConfig)); + } + + @SuppressWarnings("unchecked") + private TypeComparator<? super Object> getBaseComparatorInfo(TypeInformation<? extends Object> componentInfo, boolean sortOrderAscending, ExecutionConfig executionConfig) { --- End diff -- Why are you extracting for certain types the element comparator (for example the ObjectArrayTypeInfo) and for other you create the `TypeComparator` (for example the `CompositeTypeInfo`)? I don't get it. Why do you need the `getBaseComparatorInfo` method at all? Simply check in `createComparator` the different subtypes and then create the `TypeComparator`.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---