Liron Levy created ORC-1291: ------------------------------- Summary: NullPointerException in TypeDescription Key: ORC-1291 URL: https://issues.apache.org/jira/browse/ORC-1291 Project: ORC Issue Type: Bug Components: Java Affects Versions: 1.8.0 Reporter: Liron Levy
There's a null pointer exception in the cases where TypeDescription does not have children. For example: {code:java} val orcSchema1 = TypeDescription.createStruct() .addField("a", TypeDescription.createString()) .addField("b", TypeDescription.createDouble()) .addField("c", TypeDescription.createBoolean()) println(orcSchema1.hashCode()) {code} This will throw: java.lang.NullPointerException: Cannot invoke "java.util.List.hashCode()" because "this.children" is null As you can see version 1.7 had this code: {code:java} @Override public int hashCode() { long result = category.ordinal() * 4241 + maxLength + precision * 13 + scale; if (children != null) { for(TypeDescription child: children) { result = result * 6959 + child.hashCode(); } } return (int) result; } {code} while version 1.8 has this: {code:java} @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + category.hashCode(); result = prime * result + children.hashCode(); result = prime * result + maxLength; result = prime * result + precision; result = prime * result + scale; return result; } {code} Primitive type description do not have children which means that hashCode cannot work on any TypeDescription (as it will surely have primitive types somewhere). -- This message was sent by Atlassian Jira (v8.20.10#820010)