Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/978#discussion_r147842797 --- Diff: exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/MiniPlanUnitTestBase.java --- @@ -360,7 +366,7 @@ public T columnsToRead(String ... columnsToRead) { */ public class JsonScanBuilder extends ScanPopBuider<JsonScanBuilder> { List<String> jsonBatches = null; - List<String> inputPaths = Collections.EMPTY_LIST; + List<String> inputPaths = Collections.emptyList(); --- End diff -- This is a subtle point. Using the constant creates the expression: ``` public static final List EMPTY_LIST = new EmptyList<>(); // Definition List<String> inputPaths = EMPTY_LIST; // Original code ``` The above is not type-friendly: we are setting a typed list (`inputPaths`) to an untyped constant (`EMPTY_LIST`). The revised code uses Java's parameterized methods to work around the type ambiguity: ``` public static final <T> List<T> emptyList() ... // Definition List<String> inputPaths = Collections.emptyList(); // Type-safe assignment ``` Functionally, the two expressions are identical. But, the original was type-unsafe and generated a compiler warning. The new one is type-safe and resolves the warning.
---