# The following classes have nullability annotations directly in their source
# which should be validated for correctness and completeness. (N.B. Classes
# with annotations in stub files under ojluni/annotations/sdk/nullability/
# should also be validated, but are not listed here.)
java.math.BigInteger
org.json.JSONObject
