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)