Ok it may be the ElasticSearch connector causing the issue?

If I use PrintSinkFunction then I get no error and my stats print as
expected.

On Wed, 2 Feb 2022 at 03:01, Francesco Guardiani <france...@ververica.com>
wrote:

> Hi,
> your hash code and equals seems correct. Can you post a minimum stream
> pipeline reproducer using this class?
>
> FG
>
> On Tue, Feb 1, 2022 at 8:39 PM John Smith <java.dev....@gmail.com> wrote:
>
>> Hi, getting java.lang.IllegalArgumentException: Key group 39 is not in
>> KeyGroupRange{startKeyGroup=96, endKeyGroup=103}. Unless you're directly
>> using low level state access APIs, this is most likely caused by
>> non-deterministic shuffle key (hashCode and equals implementation).
>>
>> This is my class, is my hashCode deterministic?
>>
>> public final class MyEventCountKey {
>>     private final String countDateTime;
>>     private final String domain;
>>     private final String event;
>>
>>     public MyEventCountKey(final String countDateTime, final String domain, 
>> final String event) {
>>         this.countDateTime = countDateTime;
>>         this.domain = domain;
>>         this.event = event;
>>     }
>>
>>     public String getCountDateTime() {
>>         return countDateTime;
>>     }
>>
>>     public String getDomain() {
>>         return domain;
>>     }
>>
>>     public String getEven() {
>>         return event;
>>     }
>>
>>     @Override
>>     public String toString() {
>>         return countDateTime + "|" + domain + "|" + event;
>>     }
>>
>>     @Override
>>     public boolean equals(Object o) {
>>         if (this == o) return true;
>>         if (o == null || getClass() != o.getClass()) return false;
>>         MyEventCountKey that = (MyEventCountKey) o;
>>         return countDateTime.equals(that.countDateTime) &&
>>                 domain.equals(that.domain) &&
>>                 event.equals(that.event);
>>     }
>>
>>     @Override
>>     public int hashCode() {
>>         final int prime = 31;
>>         int result = 1;
>>         result = prime * result + countDateTime.hashCode();
>>         result = prime * result + domain.hashCode();
>>         result = prime * result +  event.hashCode();
>>         return result;
>>     }
>> }
>>
>>

Reply via email to