You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Flink Jira Bot (Jira)" <ji...@apache.org> on 2022/01/05 10:40:00 UTC

[jira] [Updated] (FLINK-6024) Need more fine-grained info for "InvalidProgramException: This type (...) cannot be used as key"

     [ https://issues.apache.org/jira/browse/FLINK-6024?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Flink Jira Bot updated FLINK-6024:
----------------------------------
      Labels: auto-deprioritized-major auto-deprioritized-minor  (was: auto-deprioritized-major stale-minor)
    Priority: Not a Priority  (was: Minor)

This issue was labeled "stale-minor" 7 days ago and has not received any updates so it is being deprioritized. If this ticket is actually Minor, please raise the priority and ask a committer to assign you the issue or revive the public discussion.


> Need more fine-grained info for "InvalidProgramException: This type (...) cannot be used as key"
> ------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-6024
>                 URL: https://issues.apache.org/jira/browse/FLINK-6024
>             Project: Flink
>          Issue Type: Improvement
>          Components: API / Type Serialization System
>    Affects Versions: 1.2.0
>            Reporter: Luke Hutchison
>            Priority: Not a Priority
>              Labels: auto-deprioritized-major, auto-deprioritized-minor
>
> I got this very confusing exception:
> {noformat}
> InvalidProgramException: This type (MyType) cannot be used as key
> {noformat}
> I dug through the code, and could not find what was causing this. The help text for type.isKeyType(), in Keys.java:329, right before the exception is thrown, says: "Checks whether this type can be used as a key. As a bare minimum, types have to be hashable and comparable to be keys." However, this didn't solve the problem.
> I discovered that in my case, the error was occurring because I added a new constructor to the type, and I didn't have a default constructor. This is probably quite a common thing to happen for POJOs, so the error message should give some detail saying that this is the problem.
> Other things that can cause this to fail, including that the class is not public, or the constructor is not public, or the key field is not public, or that the key field is not a serializable type, or the key is not Comparable, or the key is not hashable, should be given in the error message instead, depending on the actual cause of the problem.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)