Alan created FLINK-18909:
----------------------------
Summary: SequenceGenerator doesn't work as expected
Key: FLINK-18909
URL: https://issues.apache.org/jira/browse/FLINK-18909
Project: Flink
Issue Type: Bug
Components: API / DataStream
Affects Versions: 1.11.1
Reporter: Alan
When using a
org.apache.flink.streaming.api.functions.source.datagen.SequenceGenerator
with 0 and Long.MaxValue the following exception is rasied:
<<snip>>
new SequenceGenerator(0, Long.MAX_VALUE);
Caused by: java.lang.IllegalArgumentExceptionCaused by:
java.lang.IllegalArgumentException at
org.apache.flink.util.Preconditions.checkArgument(Preconditions.java:123) at
org.apache.flink.streaming.api.functions.source.datagen.SequenceGenerator.safeDivide(SequenceGenerator.java:110)
at
org.apache.flink.streaming.api.functions.source.datagen.SequenceGenerator.open(SequenceGenerator.java:83)
at
org.apache.flink.streaming.api.functions.source.datagen.DataGeneratorSource.initializeState(DataGeneratorSource.java:64)
This is because the Long overflows. in the check:
long totalNoOfElements = Math.abs(end - start + 1);
Which is incorrect. - this code should use BigInteger.
Using
new SequenceGenerator(0, Long.MAX_VALUE-1);
Still fails on the following check:
Caused by: java.lang.IllegalArgumentExceptionCaused by:
java.lang.IllegalArgumentException at
org.apache.flink.util.Preconditions.checkArgument(Preconditions.java:123) at
org.apache.flink.streaming.api.functions.source.datagen.SequenceGenerator.safeDivide(SequenceGenerator.java:111)
at
org.apache.flink.streaming.api.functions.source.datagen.SequenceGenerator.open(SequenceGenerator.java:83)
at
org.apache.flink.streaming.api.functions.source.datagen.DataGeneratorSource.initializeState(DataGeneratorSource.java:64)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)