some browsers don't make the file input high enough
check the right variable
check for edge case

return value of that method is used as index of a char array so check for edge case where Math.abs(Long.MIN_VALUE) == Long.MIN_VALUE which is negative
don't recreate those objects over and over