William Slacum created HIVE-11544:
-------------------------------------
Summary: LazyInteger should avoid throwing NumberFormatException
Key: HIVE-11544
URL: https://issues.apache.org/jira/browse/HIVE-11544
Project: Hive
Issue Type: Improvement
Components: Serializers/Deserializers
Affects Versions: 1.2.0, 0.14.0
Reporter: William Slacum
Priority: Minor
{{LazyInteger#parseInt}} will throw a {{NumberFormatException}} under these
conditions:
# bytes are null
# radix is invalid
# length is 0
# the string is '+' or '-'
# {{LazyInteger#parse}} throws a {{NumberFormatException}}
Most of the time, such as in {{LazyInteger#init}} and {{LazyByte#init}}, the
exception is caught, swallowed, and {{isNull}} is set to {{true}}.
This is generally a bad workflow, as exception creation is a performance
bottleneck, and potentially repeating for many rows in a query can have a
drastic performance consequence.
It would be better if this method returned an {{Optional<Integer>}}, which
would provide similar functionality with a higher throughput rate.
I've tested against 0.14.0, and saw that the logic is unchanged in 1.2.0, so
I've marked those as affected. Any version in between would also suffer from
this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)