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.
---